mp4 file repair - UPDATE 1

William Salibrici bsalibrici at
Thu Nov 9 14:09:39 UTC 2017

Hi Nicola,
Thank you for your reply.
Yes I am using GStreamer to create my mp4 recording.
I will look into your suggestion.
I checked the Gstreamer documentation for a qtmoovrecover example pipeline but there isn’t one there.
Can you send me an example pipeline?



From: gstreamer-devel [mailto:gstreamer-devel-bounces at] On Behalf Of Mailing List SVR
Sent: Thursday, November 09, 2017 2:54 AM
To: gstreamer-devel at
Subject: Re: mp4 file repair - UPDATE 1


if you are using GStreamer to create your mp4 recording you can set moov-recovery-file property on qtmux and  then use qtmoovrecover element if the recording is unexpectedly interrupted to recover it,


Il 08/11/2017 19:43, William Salibrici ha scritto:
I am creating mp4 recordings in a known format.
Below is the discover tool result [short version] for a test recording:

  container: Quicktime
    audio: MPEG-4 AAC
    video: H.264 (Constrained Baseline Profile)

  Duration: 0:00:48.000000000
  Seekable: yes
      audio codec: MPEG-4 AAC audio
      bitrate: 21346
      language code: en
      datetime: 2017-10-25T15:04:50Z
      container format: ISO MP4/M4A
      video codec: H.264 / AVC
      maximum bitrate: 5222160

The problem is that sometimes I will get a recording that was not finalized so the data is there but the recording is unreadable.
However, the audio and video formats are known.
The question is this: does anyone know of a repair tool that can go over the existing data in the recording file and create the proper moov atom at the end of the file?
Thank you for your help,



I failed to clarify in my first post that I’m interested to know if anyone in the gstreamer development community has done any kind of mp4 file repair using gstreamer elements or gstreamer source code. I can google for repair tools but that’s not what I want.

I need some c/c++ code to do this repair. I can dig into the mp4mux and discoverer source code to see what’s going on but that’s a pretty big task. I’m thinking if anyone has already done some work in this area I could avoid reinventing the wheel so to speak.

Sorry about that.
Thanks again for any help,



gstreamer-devel mailing list

gstreamer-devel at<mailto:gstreamer-devel at>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list