having trouble with a pipeline that splits (demux) and then joins (mux)

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

having trouble with a pipeline that splits (demux) and then joins (mux)

Brian Dilley
I'm learning GStreamer and wondering why the following doesn't work:


filesrc location=/some/test.flv caps=video/x-flv ! flvdemux name=d d. ! queue ! mux. d. ! queue ! mux. flvmux name=mux ! filesink location=/some/output.flv


I'm confused because the flvdemux creates identical pads (caps-wise) to what the flvmux accepts... yet it fails saying that it was unable to connect them.

I've tried this as well with no luck: filesrc location=/some/test.flv caps=video/x-flv ! flvdemux name=d d.audio_00 ! queue ! mux. d.video_00 ! queue ! mux. flvmux name=mux ! filesink location=/some/output.flv


what am i missing here?


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: having trouble with a pipeline that splits (demux) and then joins (mux)

scottca
not familiar with flv but generally you have to put a parser after a demux.
Also you can test your demux by adding auto(video/audio)sinks before adding
the mux to your pipelineto see that that half is working. Fake sink works
well too for testing. You may need a converter before going to your device.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: having trouble with a pipeline that splits (demux) and then joins (mux)

David Ing
In reply to this post by Brian Dilley
At first glance this looks like this should work.  It might be a thread deadlocking issue:  When faced with issues like this I start adding queues all around my pipeline and it gets past the deadlock.

If you use a --gst-debug-level=3 parameter you might catch a hint about the underlying problem.  If you observe a failure of state transition (e.g. the pipeline won't switch from READY to PAUSED) then I have seen that happen when using the mingw build of gstreamer (it happens rarely in specific cases) in which case you should try using the MSVC binaries on Windows or switching to Linux.

On Mon, Sep 30, 2019 at 9:07 PM Brian Dilley <[hidden email]> wrote:
I'm learning GStreamer and wondering why the following doesn't work:


filesrc location=/some/test.flv caps=video/x-flv ! flvdemux name=d d. ! queue ! mux. d. ! queue ! mux. flvmux name=mux ! filesink location=/some/output.flv


I'm confused because the flvdemux creates identical pads (caps-wise) to what the flvmux accepts... yet it fails saying that it was unable to connect them.

I've tried this as well with no luck: filesrc location=/some/test.flv caps=video/x-flv ! flvdemux name=d d.audio_00 ! queue ! mux. d.video_00 ! queue ! mux. flvmux name=mux ! filesink location=/some/output.flv


what am i missing here?

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: having trouble with a pipeline that splits (demux) and then joins (mux)

scottca
I'm experience similar issues... in my case I got it close to working using
Identity Elements on each Demux pad and then using their "handoff" signals
to monitor the elementary stream packets. Was printing minimal text to
screen and was streaming in/out everything except for Sync 264... but when I
removed the g_prints it stops working.... so the behavior sounds like a
timing or thread deadlock thing.
basically in my pipeline: for each demux pad (klv,264,mpeg) I put a
Identity-parse-queue- then connect to the mux pad. For the Async Klv data it
has no PTS so I am resetting it with the last known video PTS time... and
that seemed to help. But still having issues.




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel