I'm developing an embedded camera that records
video in .MOV format. I have two qt muxers, ffmux_mov qtmux I'm using this pipeline gst-launch my_v4lsrc num-buffers=300 ! \ video/x-raw-yuv,format=\(fourcc\)I420,width=680,height=480,framerate=\(fraction\)30/1 ! \ my_h264encoder \ name=video \ alsasrc num-buffers=10 ! \ audio/x-raw-int,rate=16000,channels=2,width=16,depth=16 ! \ queue name=audio \ ffmux_mov name=mux ! \ filesink location=test_ffmux_mov.mov \ video.src ! video/x-h264,width=640,height=480,framerate=\(fraction\)30/1 ! mux.video_0 \ audio.src ! mux.audio_0 The .mov produced is working flawlessly. But because the media used for recording is an SD card, the user can remove while the camera is still in recording. I saw that the qtmux plugin has the feature to save some temporary data in order to try to recover the .mov. But if I use the qtmux plugin in my pipline (exactly the same, just swap ffmux_mov with qtmux and use _00 on the pad name) won't produce a working .mov at all. Or to be hoest the .mov is playing with VLC and QT+Perian, but not in QT alone as Apple produces. I'd like to know how to fix the unfinished .mov file or how to use qtmux in order to have a working .mov. Thak You Overkill ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Hi, Am 24.06.2010 16:16, schrieb Overkill: > I'm developing an embedded camera that records > video in .MOV format. I have two qt muxers, > > ffmux_mov > > qtmux > > I'm using this pipeline > > gst-launch my_v4lsrc num-buffers=300 ! \ > video/x-raw-yuv,format=\(fourcc\)I420,width=680,height=480,framerate=\(fraction\)30/1 > ! \ > my_h264encoder \ > name=video \ > alsasrc num-buffers=10 ! \ > audio/x-raw-int,rate=16000,channels=2,width=16,depth=16 ! \ > queue name=audio \ > ffmux_mov name=mux ! \ > filesink location=test_ffmux_mov.mov \ > video.src ! video/x-h264,width=640,height=480,framerate=\(fraction\)30/1 > ! mux.video_0 \ > audio.src ! mux.audio_0 > > The .mov produced is working flawlessly. > But because the media used for recording is an SD card, > the user can remove while the camera is still in recording. > I saw that the qtmux plugin has the feature to save some temporary > data in order to try to recover the .mov. > But if I use the qtmux plugin in my pipline (exactly the same, > just swap ffmux_mov with qtmux and use _00 on the pad name) > won't produce a working .mov at all. Or to be hoest the .mov is > playing with VLC and QT+Perian, but not in QT alone as Apple produces. > > I'd like to know how to fix the unfinished .mov file or how to > use qtmux in order to have a working .mov. Maybe file a bug with that info. Someone can compare the files produced by both variants and cehck what is the difference. You could also run qtdump or something simmilar and see if you can spot something obvious. Stefan > > Thak You > > Overkill > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Overkill
Am 24.06.2010 16:16, schrieb Overkill:
> I'm developing an embedded camera that records > video in .MOV format. I have two qt muxers, > > ffmux_mov > > qtmux > > I'm using this pipeline > > gst-launch my_v4lsrc num-buffers=300 ! \ > video/x-raw-yuv,format=\(fourcc\)I420,width=680,height=480,framerate=\(fraction\)30/1 > ! \ > my_h264encoder \ > name=video \ > alsasrc num-buffers=10 ! \ > audio/x-raw-int,rate=16000,channels=2,width=16,depth=16 ! \ > queue name=audio \ > ffmux_mov name=mux ! \ > filesink location=test_ffmux_mov.mov \ > video.src ! video/x-h264,width=640,height=480,framerate=\(fraction\)30/1 > ! mux.video_0 \ > audio.src ! mux.audio_0 > > The .mov produced is working flawlessly. > But because the media used for recording is an SD card, > the user can remove while the camera is still in recording. > I saw that the qtmux plugin has the feature to save some temporary > data in order to try to recover the .mov. > But if I use the qtmux plugin in my pipline (exactly the same, > just swap ffmux_mov with qtmux and use _00 on the pad name) > won't produce a working .mov at all. Or to be hoest the .mov is > playing with VLC and QT+Perian, but not in QT alone as Apple produces. > > I'd like to know how to fix the unfinished .mov file or how to > use qtmux in order to have a working .mov. Please also see the thread "Mov file generated does not play on QT player" and check that your h264encoder output the proper format (it might has an issue as normaly you would not need a caps filter between encoder and muxer). Stefan > > Thak You > > Overkill > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > gstreamer-devel mailing list > [hidden email] > https://lists.sourceforge.net/lists/listinfo/gstreamer-devel ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
I guess it may be the way qtmux writes the header info . If it writes the header info at the end of the file then there should be a proper way to close the file i.e. by sending EOS event . Because if closing of file is done without sending EOS event then qtmux may not write the header info to the file.
And ffmux_mov is writing the header info at the beginning of the file so that does not require the notification of the EOS event.
On Sat, Jun 26, 2010 at 1:02 AM, Stefan Kost <[hidden email]> wrote:
-- Regards, Sudarshan Bisht ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Overkill
I made an .avi file wit my system then I extract the
media inside of it and made two .mov, one with qtmux and one with ffmux_mov. This is for have the same media content and only the containter different. You may find the two files here: http://ivanonline.xoom.it/RB_06280941_ff.mov http://ivanonline.xoom.it/RB_06280941_qt.mov You may wget them :) The one produced with ffmux is perfect. The file with qtmux is not playable with QuickTime and VLC is able to play it. I try a binary compare but the differencies seems too much for me.... Also using qtdump can't tells me more. I'm not an expert. I'd like to use qtmux because the feature to recover an .mov if the file is unfinished. I've tried this and the file is working under VLC. But if the file produced by qtmux is not playble in QuickTime, so by now I can't use it... I need help in order to understand what's wrong and try to fix it. Thank you!!! Overkill!!! ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
I made an .avi file wit my system then I extract the ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Overkill
On Mon, Jun 28, 2010 at 9:07 AM, Overkill <[hidden email]> wrote: I made an .avi file wit my system then I extract the What pipeline is used?
Taking a look at qtdump + hexdump I can see that the 2 files have different 'avcC' atoms (among other smaller differences). This makes me wonder why, maybe we can figure out from your pipelines.
-- Thiago Sousa Santos ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Overkill
> What pipeline is used?
------------------------------------------------- To record the .avi file gst-launch -v my_embedded_v4lsrc ! \ my_embedded_264enc width=720 height=400 \ name=video \ alsasrc ! \ audio/x-raw-int,rate=16000,channels=2,width=16,depth=16,signed=true ! \ queue name=audio \ avimux name=mux ! \ filesink location=test.avi \ video.src ! mux.video_0 \ audio.src ! mux.audio_0 ------------------------------------------------- To made the mov with ffmux_mov, i made an avi_to_ff.sh Call avi_to_ff.sh <avifile> #!/bin/sh of=`ls "$1" | sed s/.avi/_ff.mov/` echo "playing $1" echo "Making $of" gst-launch -v filesrc blocksize=131250 location=$1 \ ! avidemux name=dmx \ ffmux_mov name=mux ! filesink location="$of" \ dmx.video_00 ! queue ! mux.video_0 \ dmx.audio_00 ! queue ! mux.audio_0 ------------------------------------------------- To made the mov with qtmux, i made an avi_to_qt.sh Call avi_to_qt.sh <avifile> #!/bin/sh of=`ls "$1" | sed s/.avi/_qt.mov/` echo "playing $1" echo "Making $of" gst-launch -v filesrc blocksize=131250 location=$1 \ ! avidemux name=dmx \ qtmux name=mux ! filesink location="$of" \ dmx.video_00 ! queue ! mux.video_00 \ dmx.audio_00 ! queue ! mux.audio_00 I'm using an embedded hardware, that's why I use my_embedded v4lsrc and 264enc. The simulation with PC using videotestsrc and x264enc is working fine. So I suppose some (missed?) information out of my encoder that ffmux_mov can rebuild while qtmov not. But it's only my humble opinion.... Thanks a lot ***** By The Overkill !!! ***** ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
On Mon, Jul 5, 2010 at 8:06 AM, Overkill <[hidden email]> wrote: > What pipeline is used? You should be using the --eos-on-shutdown (or simply -e) here to allow the muxer to properly finish the file.
You could check at the mp4 specs for the avcC atom syntax, that's where mp4mux puts the 'codec_data' field from the caps. And then compare what your encoder produces with what x264enc does.
Otherwise you can open a bug in bugzilla.gnome.org with the input from your hardware elements and describe this problem over there. To get the input you can use gdppay element in something like:
gst-launch my_embedded_v4l2src num-buffers=50 ! my_embedded_264enc ! gdppay ! filesink location=input.gdp
-- Thiago Sousa Santos ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
In reply to this post by Overkill
>> To record the .avi file
>> >> gst-launch -v my_embedded_v4lsrc ! \ >> my_embedded_264enc width=720 height=400 \ >> name=video \ >> alsasrc ! \ >> audio/x-raw-int,rate=16000,channels=2,width=16,depth=16,signed=true ! \ >> queue name=audio \ >> avimux name=mux ! \ >> filesink location=test.avi \ >> video.src ! mux.video_0 \ >> audio.src ! mux.audio_0 >> >> > You should be using the --eos-on-shutdown (or simply -e) here to allow the > muxer to properly finish the file. > Yes, off course I forgot it here, not when I use it. I use also num-buffers property on both audio and video source, otherwise no muxer will produce a working file :) > You could check at the mp4 specs for the avcC atom syntax, that's where > mp4mux puts the 'codec_data' field from the caps. And then compare what your > encoder produces with what x264enc does. > > Otherwise you can open a bug in bugzilla.gnome.org with the input from your > hardware elements and describe this problem over there. > > To get the input you can use gdppay element in something like: > > gst-launch my_embedded_v4l2src num-buffers=50 ! my_embedded_264enc ! gdppay > ! filesink location=input.gdp I think I will open the bug. Thank you! ***** By The Overkill !!! ***** ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ gstreamer-devel mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |