<div dir="ltr"><div class="gmail_default" style="font-family:'courier new',monospace">Hi Thiago,</div><div class="gmail_default" style="font-family:'courier new',monospace"><br></div><div class="gmail_default" style="font-family:'courier new',monospace">
Thanks for the reply. I'm not sure why your pipeline would work, but it gave me an error. I'm using gst-launch-0.10 version 0.10.31. I tried this on Windows and Linux, but neither of them worked.</div><div class="gmail_default" style="font-family:'courier new',monospace">
<br></div><div class="gmail_default"><div class="gmail_default"><font face="courier new, monospace">>> gst-launch.exe -vvv -e videotestsrc ! mp4mux ! filesink</font></div><div class="gmail_default"><font face="courier new, monospace">0:00:00.631905000  8912   00540540 ERROR           GST_PIPELINE grammar.tab.c:713:gst_parse_perform_link: could not link videotestsrc0 to mp4mux0</font></div>
<div class="gmail_default"><font face="courier new, monospace">WARNING: erroneous pipeline: could not link videotestsrc0 to mp4mux0</font></div><div class="gmail_default"><font face="courier new, monospace"><br></font></div>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 22, 2013 at 9:22 AM, Thiago Sousa Santos <span dir="ltr"><<a href="mailto:thiago.sousa.santos@collabora.com" target="_blank">thiago.sousa.santos@collabora.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Sun, 2013-04-21 at 14:44 -0700, k l wrote:<br>
> I have a pipeline that streams a webcam to an mp4 sink. I have the<br>
> pipeline as the following:<br>
><br>
><br>
> gst-launch -v --eos-on-shutdown souphttpsrc<br>
> location="<a href="http://192.168.0.20:81/video.cgi" target="_blank">http://192.168.0.20:81/video.cgi</a>" do-timestamp=true<br>
> is_live=true timeout=5 ! multipartdemux ! jpegdec ! x264enc ! mp4mux<br>
> faststart=true ! filesink location="hi.mp4"<br>
><br>
><br>
><br>
> This would just stuck without producing any content. I debugged with<br>
> fakesink, the below is the output [1].<br>
><br>
><br>
> If I removed the faststart flag, it did produce a mp4 with contents.<br>
> But it's not playable, due to the reason that (I think) the metadata<br>
> was not written to the end of the file with me shutting the pipeline<br>
> down with ctrl-c. Here's a comparison at the end of the file it<br>
> produced, with one that's from a valid mp4 file[2].<br>
><br>
><br>
> I could use a non-faststart mp4mux. But I don't know how to shutdown<br>
> the pipeline gracefully in gst-launch so that the metadata is written<br>
> to the end of the file. I've tried starting gst-launch with -e option<br>
> but no difference.<br>
><br>
<br>
</div>It works here for me with a simpler pipeline.<br>
videotestsrc ! mp4mux ! filesink<br>
<br>
Both with and without the faststart option. For mp4mux to finish the<br>
file correctly (in both modes) it must receive the EOS event to know<br>
that it can write the headers.<br>
<br>
You should check that the EOS event is being pushed to the pipeline and<br>
that it reaches mp4mux. gst-launch will print some text about pushing<br>
EOS once you press ctrl-c. When that happens, be sure to wait and not<br>
press ctrl-c again, that will abort gst-launch without properly waiting<br>
for EOS.<br>
<br>
--<br>
Thiago<br>
<div><div class="h5"><br>
><br>
> Please help. Let me know if I need to further clarify my question.<br>
><br>
><br>
> K.<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
> [1] fakesink's output with "faststart" option on<br>
><br>
><br>
> Setting pipeline to PAUSED ...<br>
> Pipeline is live and does not need PREROLL ...<br>
> Setting pipeline to PLAYING ...<br>
> New clock: GstSystemClock<br>
> /GstPipeline:pipeline0/GstJpegDec:jpegdec0.GstPad:sink: caps =<br>
> image/jpeg<br>
> /GstPipeline:pipeline0/GstJpegDec:jpegdec0.GstPad:src: caps =<br>
> video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480,<br>
> framerate=(fraction)0/1<br>
> /GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:src: caps =<br>
> video/x-h264, width=(int)640, height=(int)480,<br>
> framerate=(fraction)0/1, pixel-aspect-ratio=(fracti<br>
> on)1/1,<br>
> codec_data=(buffer)014d4016ffe10016674d4016dc0a03db0110000003001773594000f162f801000468eb8cb2, stream-format=(string)avc, alignment=(string)au<br>
> /GstPipeline:pipeline0/GstX264Enc:x264enc0.GstPad:sink: caps =<br>
> video/x-raw-yuv, format=(fourcc)I420, width=(int)640, height=(int)480,<br>
> framerate=(fraction)0/1<br>
> /GstPipeline:pipeline0/GstMP4Mux:mp4mux0.GstPad:video_00: caps =<br>
> video/x-h264, width=(int)640, height=(int)480,<br>
> framerate=(fraction)0/1, pixel-aspect-ratio=(fra<br>
> ction)1/1,<br>
> codec_data=(buffer)014d4016ffe10016674d4016dc0a03db0110000003001773594000f162f801000468eb8cb2, stream-format=(string)avc, alignment=(string)au<br>
> /GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps =<br>
> video/quicktime, variant=(string)iso<br>
> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "preroll<br>
> ******* "<br>
> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "event<br>
> ******* E (type: 118, taglist, container-format=(string)Multipart;)<br>
> 025356A8"<br>
> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "event<br>
> ******* E (type: 102, GstEventNewsegment, update=(boolean)false,<br>
> rate=(double)1, applied-r<br>
> ate=(double)1, format=(GstFormat)GST_FORMAT_BYTES, start=(gint64)0,<br>
> stop=(gint64)-1, position=(gint64)0;) 0252CB00"<br>
> /GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain<br>
> ******* < (    0 bytes, timestamp: none, duration: none, offset: -1,<br>
> offset_end: -1, flags<br>
> : 0) 025374D8"<br>
><br>
><br>
> [2] Comparison at the end of the produced mp4 file<br>
><br>
><br>
> -------------<br>
> Produced without mp4mux's faststart option:<br>
> -------------<br>
> (...more data)<br>
> 03d1c30: 977d c867 8550 59c7 1a7b 0732 876e 77e4  .}.g.PY..{.2.nw.<br>
> 03d1c40: e787 e43a 73cf 2b59 be3f 4208 9b67 6073  ...:s.+Y.?B..g`s<br>
> 03d1c50: e04f 5d4c 601f 0967 0cc4 70fa e3d3 302d  .O]L`..g..p...0-<br>
> 03d1c60: d3e7 eb90 f27c c784 c979 4979 5ca4 ba78  .....|...yIy\..x<br>
> 03d1c70: a9b8 5f36 e748 4a50 7cf6 32b0 a5e9 fed3  .._6.HJP|.2.....<br>
> 03d1c80: df77 dc95 b558 9c4c c9c5 c67c efda cc0f  .w...X.L...|....<br>
> 03d1c90: 5b09 38a5 f83e 35e0 c719 a1e3 c469 0393  [.8..>5......i..<br>
> 03d1ca0: 869b e78c 35eb 4488 348e 2348 4bfb 6b11  ....5.D.4.#HK.k.<br>
> 03d1cb0: ba7b 3188 762e e2d1 c93b e73f e9a4 27b3  .{1.v....;.?..'.<br>
> 03d1cc0: 3866 6684 cdb8 4bec 60c5 9342 940b fd75  8ff...K.`..B...u<br>
> 03d1cd0: 7b75 b27d 1764 750a 2089 5ec3 7d5a df13  {u.}.du. .^.}Z..<br>
> 03d1ce0: 610d 4580 21b4 8504 15be 6799 dd2b cad8  a.E.!.....g..+..<br>
> 03d1cf0: 114a 4c0b 5d21 3f79 5db0 3b42 6598 3ba7  .JL.]!?y].;Be.;.<br>
> 03d1d00: 734e 798c 570b 6620 2da9 59a5 6c12 98ed  sNy.W.f -.Y.l...<br>
> 03d1d10: 1fed 4585 f74e a214 afba 7de0 c086 a7e0  ..E..N....}.....<br>
> 03d1d20: 0a                                       .<br>
><br>
><br>
> -----------------<br>
> A valid mp4 file (note the "Xmeta" thingy)<br>
> -----------------<br>
> ...(more data)<br>
> 00687a0: 0000 b300 0000 0100 0000 bc00 0000 0100  ................<br>
> 00687b0: 0000 0000 0000 1473 7473 7300 0000 0000  .......stss.....<br>
> 00687c0: 0000 0100 0000 0100 0000 1c73 7473 6300  ...........stsc.<br>
> 00687d0: 0000 0000 0000 0100 0000 0100 0000 1200  ................<br>
> 00687e0: 0000 0100 0000 5c73 7473 7a00 0000 0000  ......\stsz.....<br>
> 00687f0: 0000 0000 0000 1200 009e 2200 00a3 b200  ..........".....<br>
> 0068800: 0063 5f00 005c a300 0057 6d00 0059 4900  .c_..\...Wm..YI.<br>
> 0068810: 005a cf00 0060 4700 0056 b300 0056 b200  .Z...`G..V...V..<br>
> 0068820: 0054 3f00 0058 4d00 004e a600 0054 6700  .T?..XM..N...Tg.<br>
> 0068830: 0057 7f00 004b 9600 0045 2c00 0031 f900  .W...K...E,..1..<br>
> 0068840: 0000 1473 7463 6f00 0000 0000 0000 0100  ...stco.........<br>
> 0068850: 0000 3000 0000 6075 6474 6100 0000 586d  ..0...`udta...Xm<br>
> 0068860: 6574 6100 0000 0000 0000 2168 646c 7200  eta.......!hdlr.<br>
> 0068870: 0000 0000 0000 006d 6469 7261 7070 6c00  .......mdirappl.<br>
> 0068880: 0000 0000 0000 0000 0000 002b 696c 7374  ...........+ilst<br>
> 0068890: 0000 0023 a974 6f6f 0000 001b 6461 7461  ...#.too....data<br>
> 00688a0: 0000 0001 0000 0000 4c61 7666 3533 2e32  ........Lavf53.2<br>
> 00688b0: 322e 300a                                2.0.<br>
><br>
><br>
</div></div>> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
<br>
<br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div><br></div>