[gst-devel] mplex issue
Mark Nauwelaerts
manauw at skynet.be
Sun Jan 3 18:48:21 CET 2010
Charles-Henri d'Adhémar wrote:
> Hello All !
>
> I am starting to play with gstreamer as a replacement for many tools I
> used for a while.
> As my first post on this list I would like to thank and congratulate
> you all for this amazing software ! I hope this is the right place for
> asking end-user/developper questions ...
>
> I have an issue with mplex while trying to extract a video and audio
> from a DVD and put them into a single mpeg file, without any
> transcoding. Here is the gst-launch pipeline I use :
>
> gst-launch -v dvdreadsrc ! dvddemux name=demuxer demuxer.current_audio
> ! queue ! mplex name=muxer ! filesink location=test.mpeg
> demuxer.current_video ! queue ! muxer.
>
> The pipeline is in preroll status but never goes to playing :
>
> [chicha at grogro Bureau]$ LC_ALL=C gst-launch -v dvdreadsrc ! dvddemux
> name=demuxer demuxer.current_audio ! queue ! mplex name=muxer !
> filesink location=test.mpeg demuxer.current_video ! queue ! muxer.
>
> (gst-launch-0.10:2396): GLib-WARNING **: g_set_prgname() called multiple times
> Setting pipeline to PAUSED ...
> libdvdread: Using libdvdcss version 1.2.10 for DVD access
>
> libdvdread: Attempting to retrieve all CSS keys
> libdvdread: This can take a _long_ time, please be patient
>
> libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000157
> libdvdread: Elapsed time 0
> libdvdread: Get key for /VIDEO_TS/VTS_01_0.VOB at 0x000001d9
> libdvdread: Elapsed time 0
> libdvdread: Get key for /VIDEO_TS/VTS_01_1.VOB at 0x0001350e
> libdvdread: Elapsed time 0
> ......
> libdvdread: Found 12 VTS's
> libdvdread: Elapsed time 0
> Pipeline is PREROLLING ...
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:current_video: caps
> = video/mpeg, mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:current_audio: caps
> = audio/x-ac3
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:current_subpicture:
> caps = video/x-dvd-subpicture
> /GstPipeline:pipeline0/GstDVDDemux:demuxer.GstPad:sink: caps =
> video/mpeg, mpegversion=(int)2, systemstream=(boolean)true
> /GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/mpeg,
> mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/mpeg,
> mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstMplex:muxer.GstPad:src: caps = video/mpeg,
> systemstream=(boolean)true
> /GstPipeline:pipeline0/GstMplex:muxer.GstPad:video_0: caps =
> video/mpeg, mpegversion=(int)2, systemstream=(boolean)false
> /GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/x-ac3
> /GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/x-ac3
> /GstPipeline:pipeline0/GstMplex:muxer.GstPad:audio_0: caps = audio/x-ac3
>
> What I do not understand is that when I extract just the video or just
> the audio it works. Also playing the dvd sound + video to a pulsesink
> + xvimagesink works like a charm.
>
> I am sure I am missing something, but what ?
> Thank you very much for your help !
IIRC, the mplex backend library performs some moderately large initial (audio?)
buffering, which might cause a deadlock. Have you already tried setting some
larger limits on the queue's (e.g. queue max-size-buffers=0 max-size-bytes=0
max-size-time=4000000000).
There is a more or less cryptic comment regarding this in the mplex element
documentation.
Mark.
More information about the gstreamer-devel
mailing list