Simple AV pipeline stuck in prerolling state (mp4/h264/aac)

Mandeep Sandhu mandeepsandhu.chd at gmail.com
Mon Nov 19 02:17:16 PST 2012


Hi All,

I have pretty basic question. I'm trying to create a simple pipeline
for playing an mp4 (h264/aac) file as follows:

$ gst-launch-0.10 filesrc location=/path/to/video.mp4 ! qtdemux
name=qtd ! ffdec_h264 ! autovideosink async-handling=true qtd. !
ffdec_aac ! autoaudiosink

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...

This opens up a window to show the first frame of the video and
remains paused there. If the audio sink is removed from the pipeline,
then the video plays fine.

I know I can use other bins like playbin/decodebin2 to play the file,
but I'm trying out individual elements for my own understanding's
sake.

I understand that PREROLLING means that the pipeline is 'preparing'
itself for processing the data. So what is stopping the audio sink
from getting it (I presume thats the element causing the pipeline
stall)?

I have read on some forums that setting "async-handling=true" in the
video sync will fix this problem. However that did not help (or maybe
I'm not setting it at the right place).

Also, this is slightly unrelated, the syntax for setting up a pipeline
(with individual elements) for audio AND video seems a little weird.
The way to do it, as I understand from other people's examples, is to
give a name to the demux element and then specify that name in the
video sink with a dot suffix and then construct the audio pipeline
from there. Is this how it's supposed to be done? Is there a doc which
explains this more clearly?

Thanks for your time.

Regards,
-mandeep


More information about the gstreamer-devel mailing list