<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"Times New Roman \,serif";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">I came to that conclusion myself after reading the inspect data sheet for the
</span><span style="color:#1F497D">qtmoovrecover element.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">I noticed that it has no pads and has an internal pipeline.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Thanks for your confirmation – I will give it try.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D">Bill<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:windowtext">From:</span></b><span style="color:windowtext"> gstreamer-devel [mailto:gstreamer-devel-bounces@lists.freedesktop.org]
<b>On Behalf Of </b>Mailing List SVR<br>
<b>Sent:</b> Thursday, November 09, 2017 9:51 AM<br>
<b>To:</b> gstreamer-devel@lists.freedesktop.org<br>
<b>Subject:</b> Re: mp4 file repair - UPDATE 1<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">Il 09/11/2017 15:09, William Salibrici ha scritto:<span style="font-size:12.0pt"><o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D">Hi Nicola,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Thank you for your reply.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Yes I am using GStreamer to create my mp4 recording.
</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">I will look into your suggestion.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">I checked the Gstreamer documentation for a qtmoovrecover example pipeline but there isn’t one there.</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Can you send me an example pipeline?</span><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif"><br>
very simple:<br>
<br>
gst-launch-1.0 qtmoovrecover recovery-input=...  broken-input=... fixed-output=....<br>
<br>
Nicola<br>
<br>
<br>
<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Regards, </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">--Bill</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"> </span><o:p></o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="color:windowtext">From:</span></b><span style="color:windowtext"> gstreamer-devel [<a href="mailto:gstreamer-devel-bounces@lists.freedesktop.org">mailto:gstreamer-devel-bounces@lists.freedesktop.org</a>]
<b>On Behalf Of </b>Mailing List SVR<br>
<b>Sent:</b> Thursday, November 09, 2017 2:54 AM<br>
<b>To:</b> <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<b>Subject:</b> Re: mp4 file repair - UPDATE 1</span><o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"> <o:p></o:p></p>
<div>
<p class="MsoNormal">Hi,<br>
<br>
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,<br>
<br>
Nicola<br>
<br>
Il 08/11/2017 19:43, William Salibrici ha scritto:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<p class="MsoNormal">I am creating mp4 recordings in a known format.<o:p></o:p></p>
<p class="MsoNormal">Below is the discover tool result [short version] for a test recording:<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Topology:<o:p></o:p></p>
<p class="MsoNormal">  container: Quicktime<o:p></o:p></p>
<p class="MsoNormal">    audio: MPEG-4 AAC<o:p></o:p></p>
<p class="MsoNormal">    video: H.264 (Constrained Baseline Profile)<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Properties:<o:p></o:p></p>
<p class="MsoNormal">  Duration: 0:00:48.000000000<o:p></o:p></p>
<p class="MsoNormal">  Seekable: yes<o:p></o:p></p>
<p class="MsoNormal">  Tags:<o:p></o:p></p>
<p class="MsoNormal">      audio codec: MPEG-4 AAC audio<o:p></o:p></p>
<p class="MsoNormal">      bitrate: 21346<o:p></o:p></p>
<p class="MsoNormal">      language code: en<o:p></o:p></p>
<p class="MsoNormal">      datetime: 2017-10-25T15:04:50Z<o:p></o:p></p>
<p class="MsoNormal">      container format: ISO MP4/M4A<o:p></o:p></p>
<p class="MsoNormal">      video codec: H.264 / AVC<o:p></o:p></p>
<p class="MsoNormal">      maximum bitrate: 5222160<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">The problem is that sometimes I will get a recording that was not finalized so the data is there but the recording is unreadable.<o:p></o:p></p>
<p class="MsoNormal">However, the audio and video formats are known.<o:p></o:p></p>
<p class="MsoNormal">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?<o:p></o:p></p>
<p class="MsoNormal">Thank you for your help,<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">--Bill<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">UPDATE 1 -><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">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. <o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">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.<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Sorry about that.<o:p></o:p></p>
<p class="MsoNormal">Thanks again for any help,<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal">Bill<o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman ,serif",serif"><br>
<br>
<br>
<br>
</span><o:p></o:p></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>gstreamer-devel mailing list<o:p></o:p></pre>
<pre><a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><o:p></o:p></pre>
<pre><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman ,serif",serif"> </span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif"><br>
<br>
<br>
<o:p></o:p></span></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>gstreamer-devel mailing list<o:p></o:p></pre>
<pre><a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><o:p></o:p></pre>
<pre><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><span style="font-size:12.0pt;font-family:"Times New Roman",serif"><o:p> </o:p></span></p>
</div>
</body>
</html>