<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;">I believe you're referring to this one:<div><br></div><div><div style="display: block;"><div style="-webkit-user-select: all; -webkit-user-drag: element; display: inline-block;" class="apple-rich-link" draggable="true" role="link" data-url="https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/gst/isomp4/atomsrecovery.c#L54"><a style="border-radius:10px;font-family:-apple-system, Helvetica, Arial, sans-serif;display:block;-webkit-user-select:none;width:300px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;" class="lp-rich-link" rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/gst/isomp4/atomsrecovery.c#L54" dir="ltr" role="button" draggable="false" width="300"><table style="table-layout:fixed;border-collapse:collapse;width:300px;background-color:#E5E6E9;font-family:-apple-system, Helvetica, Arial, sans-serif;" class="lp-rich-link-emailBaseTable" cellpadding="0" cellspacing="0" border="0" width="300"><tbody><tr><td vertical-align="center"><table bgcolor="#E5E6E9" cellpadding="0" cellspacing="0" width="300" style="font-family:-apple-system, Helvetica, Arial, sans-serif;table-layout:fixed;background-color:rgba(229, 230, 233, 1);" class="lp-rich-link-captionBar"><tbody><tr><td style="padding:8px 0px 8px 0px;" class="lp-rich-link-captionBar-textStackItem"><div style="max-width:100%;margin:0px 16px 0px 16px;overflow:hidden;" class="lp-rich-link-captionBar-textStack"><div style="word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-topCaption-leading"><a rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/gst/isomp4/atomsrecovery.c#L54" style="text-decoration: none" draggable="false"><font color="#272727" style="color: rgba(0, 0, 0, 0.847059);">gst/isomp4/atomsrecovery.c · master · GStreamer / gst-plugins-good · GitLab</font></a></div><div style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;" class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/gst/isomp4/atomsrecovery.c#L54" style="text-decoration: none" draggable="false"><font color="#808080" style="color: rgba(0, 0, 0, 0.498039);">gitlab.freedesktop.org</font></a></div></div></td><td style="padding:6px 12px 6px 0px;" class="lp-rich-link-captionBar-rightIconItem" width="36"><a rel="nofollow" href="https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/blob/master/gst/isomp4/atomsrecovery.c#L54" draggable="false"><img style="pointer-events:none !important;display:inline-block;width:36px;height:36px;border-radius:3px;" width="36" height="36" draggable="false" class="lp-rich-link-captionBar-rightIcon" alt="gst-logo-small.png" src="cid:E1B4D7F9-AB98-48EB-A4E9-778DDEA0CDBD"></a></td></tr></tbody></table></td></tr></tbody></table></a></div></div><br><div><br></div><div><pre class="code highlight" lang="c"><span id="LC43" lang="c" data-testid="content" class="line">/*</span>
<span id="LC44" lang="c" data-testid="content" class="line"><span class="hljs-comment"> *</span><span class="hljs-comment"> This module contains </span><span class="hljs-comment">functions</span><span class="hljs-comment"> for serializing partial </span><span class="hljs-comment">information from</span></span>
<span id="LC45" lang="c" data-testid="content" class="line"><span class="hljs-comment"> *</span><span class="hljs-comment"> a mux in </span><span class="hljs-comment">progress (by qtmux elements).</span><span class="hljs-comment"> This enables reconstruction </span><span class="hljs-comment">of the</span></span>
<span id="LC46" lang="c" data-testid="content" class="line"><span class="hljs-comment"> *</span><span class="hljs-comment"> moov box if </span><span class="hljs-comment">a</span><span class="hljs-comment"> crash happens and </span><span class="hljs-comment">thus</span><span class="hljs-comment"> recovering the movie </span><span class="hljs-comment">file.</span></span>
<span id="LC47" lang="c" data-testid="content" class="line"> *</span>
<span id="LC48" lang="c" data-testid="content" class="line"> * Usage:</span>
<span id="LC49" lang="c" data-testid="content" class="line"> * 1) pipeline: ...yourelements ! qtmux moov-recovery-file=path.mrf ! \</span>
<span id="LC50" lang="c" data-testid="content" class="line"> * filesink location=moovie.mov</span>
<span id="LC51" lang="c" data-testid="content" class="line"> *</span>
<span id="LC52" lang="c" data-testid="content" class="line"> * 2) CRASH!</span>
<span id="LC53" lang="c" data-testid="content" class="line"> *</span>
<span id="LC54" lang="c" data-testid="content" class="line hll"> * 3) gst-launch-1.0 qtmoovrecover recovery-input=path.mrf broken-input=moovie.mov \</span>
<span id="LC55" lang="c" data-testid="content" class="line"> fixed-output=recovered.mov</span>
</pre></div><div><br><blockquote type="cite"><div>On 6 Sep 2023, at 21:53, James via gstreamer-devel <gstreamer-devel@lists.freedesktop.org> wrote:</div><br class="Apple-interchange-newline"><div><div>If one aborts recording an mp4 file the mov atom is faulty or missing and the recording wont play.<br>When I first started to play with gstreamer I saw and glossed over a simple pipeline to restore the atom. I can't find it again.<br>Looking at untrunc the task is complex, and I don't know enough to invent a pipeline. Has anybody seen the tutorial or can think up a solution?<br>Thanks<br>James<br></div></div></blockquote></div><br></div></body></html>