GNOME Bugzilla – Bug 719548
Stalling gstreamer pipeline - mpeg audio?
Last modified: 2013-12-16 08:33:08 UTC
Created attachment 263114 [details] dotfile graph from Transmageddon When trying to take a webm file and re-encode the video and remux the audio the pipeline just stalls for me in Transmageddon. I seem to be able to reproduce with gst-launch: gst-launch-1.0 filesrc location="/home/cschalle/Videos/A_Digital_Media_Primer_For_Geeks-360p.webm" ! decodebin name=decode ! deinterlace ! videoconvert ! videoflip ! queue ! videoconvert ! videoscale ! videoconvert ! videorate ! theoraenc ! theoraparse ! oggmux name=mux ! filesink location="/home/cschalle/Videos/test.ogg" decode. ! queue ! vorbisparse ! mux.
Ok, first pipeline wrong, here is one that should be correct: gst-launch-1.0 filesrc location="/home/cschalle/Videos/A_Digital_Media_Primer_For_Geeks-360p.webm" ! matroskademux name=demux ! queue ! vp8dec ! deinterlace ! videoconvert ! videoflip ! videoconvert ! videoscale ! videoconvert ! videorate ! theoraenc ! oggmux name=mux ! filesink location="/home/cschalle/Videos/test.ogg" demux. ! queue ! vorbisparse ! mux.
This one works here: gst-launch-1.0 filesrc location=/media/data/Videos/Xiph/01\ -\ A\ Digital\ Media\ Primer\ For\ Geeks.webm ! decodebin name=decode ! queue ! deinterlace ! videoconvert ! queue ! videoconvert ! videoscale ! videoconvert ! videorate ! theoraenc ! queue ! oggmux name=mux ! fakesink decode. ! queue ! vorbisenc ! vorbisparse ! queue ! mux.audio_%u Problem is that decodebin does not output vorbis, but raw audio. And that gst_parse has this old bug that it chooses the wrong pad.
Created attachment 263116 [details] GST-DEBUG log from Transmageddon Transmageddon behaves a little differently than the gst-launch pipeline in the sense that a file is generated that is 6.7K big before stalling.
Yes, but regardless of the gst-launch line working, transmageddon doesn't. I was just trying to supply a gst-launch line to make debugging the issue transmageddon hits a littl easier.
Can you provide a simple testcase for this?
Well I tried and failed :) I will try to put together a simple python app.
ok, maybe have managed to make a testcase. This pipeline gets stuck in pre-roll for me: gst-launch-1.0 filesrc location="/home/cschalle/Videos/A_Digital_Media_Primer_For_Geeks-360p.ogv" ! decodebin name=decode ! queue ! avdeinterlace ! videoconvert ! videoscale ! videoconvert ! videorate ! mpeg2enc ! mpegpsmux name=mux ! filesink location="test.mpg" decode. ! queue ! lamemp3enc ! mpegaudioparse ! queue ! mux.
Ok, did some further testing. So this works: gst-launch-1.0 filesrc location="/home/cschalle/Videos/A_Digital_Media_Primer_For_Geeks-360p.ogv" ! decodebin name=decode ! queue ! deinterlace ! videoconvert ! videoscale ! videoconvert ! videorate ! mpeg2enc ! mpegpsmux name=mux ! filesink location="test.mpg" This doesn't: gst-launch-1.0 filesrc location="/home/cschalle/Videos/A_Digital_Media_Primer_For_Geeks-360p.ogv" ! decodebin name=decode ! queue ! lamemp3enc ! mpegaudioparse ! filesink location="/tmp/test.mpg"
(In reply to comment #8) > This doesn't: > gst-launch-1.0 filesrc > location="/home/cschalle/Videos/A_Digital_Media_Primer_For_Geeks-360p.ogv" ! > decodebin name=decode ! queue ! lamemp3enc ! mpegaudioparse ! filesink > location="/tmp/test.mpg" You forgot audioconvert before lamemp3enc, vorbis outputs float and lamemp3enc only accepts int.