demuxing mp4 and queues
mathieu at centricular.com
Wed Mar 6 11:45:49 UTC 2019
This is a classical problem, and a good illustration why you usually need queues after elements
with N src pads, and before elements with N sink pads:
The demuxer is pushing to its source pads from the same thread, and if you have connected
these source pads with sync=true sinks, their chain function blocks until prerolling is done,
that is until each sink with sync=true has received a buffer. Adding queues decouples branches of
the pipeline, as they will start their own streaming thread.
On 3/5/19 11:11 PM, Wudo Balmus wrote:
> I'm trying to demux and playback an mp4 file with h.264 video and aac audio. This pipeline works fine:
> gst-launch-1.0 -v filesrc location=working.mp4 ! qtdemux name=a a. ! queue ! avdec_h264 ! videoconvert ! autovideosink a. ! queue ! avdec_aac ! autoaudiosink
> However when the queues are removed, it hangs, nothing is played back:
> gst-launch-1.0 -v filesrc location=working.mp4 ! qtdemux name=a a. ! avdec_h264 ! videoconvert ! autovideosink a. ! avdec_aac ! autoaudiosink
> It works fine without a queue when I just try to playback video without audio:
> gst-launch-1.0 -v filesrc location=working.mp4 ! qtdemux name=a a. ! avdec_h264 ! videoconvert ! autovideosink
> I'm trying to understand why queues are necessary in this scenario. Cannot qtdemux just write data to video/audio decoder without the queues?
> Best regards,
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gstreamer-devel