user2053794
user2053794

Reputation:

gstreamer pipeline to playback mp4 file on windows

video file is working perfectly with below pipeline.

.\gst-launch-1.0.exe playbin uri=file:///C:\\Users\\naseeb\\Downloads\\Gabbroo.mp4

But, i want to create pipeline myself using demux, decoder and sink. I created below pipeline

.\gst-launch-1.0.exe filesrc location=C:\\Users\\naseeb\\Downloads\\Gabbroo.mp4 ! qtdemux name=demux demux. ! queue ! mad ! audioconvert ! audioresample ! autoaudiosink demux. ! queue ! avdec_h264  ! autovideosink

but it is not working and failed with error mentioned below:

WARNING: from element /GstPipeline:pipeline0/GstQTDemux:demux: Delayed linking > failed. Additional debug info: ./grammar.y(506): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstQTDemux:demux: failed delayed linking some pad of GstQTDemux named demux to some pad of GstQueue named queue0 Redistribute latency... Redistribute latency... ERROR: from element /GstPipeline:pipeline0/GstQTDemux:demux: Internal data stream error. Additional debug info: qtdemux.c(5850): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstQTDemux:demux: streaming stopped, reason not-negotiated (-4)

I have searched lot and couldn't find what element i am missing in the pipeline to make it working.

Please suggest some solution.

Upvotes: 0

Views: 7213

Answers (1)

Florian Zwoch
Florian Zwoch

Reputation: 7373

  1. You may need audio and video parsers before the decoders. So try mpegaudioparse ! mad and h264parse ! avdec_h264.

  2. You most likely need a video converter between the decoder and the videosink. Try autovideoconvert ! autovideosink.

Upvotes: 1

Related Questions