tee pipeline

horai ivo.hora at seznam.cz
Sun Nov 10 07:22:30 UTC 2019


Dear all,

For verifying select-stream feature, I found an example here (containing
server and client side, but I rather use stable repository rtsp server):
https://github.com/James-Holland
It works pretty fine when modifying server pipeline this way:
 gst_rtsp_media_factory_set_launch (factory1, "( "
          "rpicamsrc preview=false bitrate=2000000 ! video/x-h264,
width=1640,height=922,framerate=30/1 ! h264parse ! rtph264pay
config-interval=1 name=pay0 pt=96"
          "videotestsrc ! video/x-raw,width=900,height=900,framerate=2/1 ! "
          "x264enc ! rtph264pay name=pay1 pt=96"
          "videotestsrc ! video/x-raw,width=1400,height=1480,framerate=1/1 !
"
          "x264enc ! rtph264pay name=pay2 pt=96"
          ")");

I also used https://github.com/James-Holland client example and modified
parse_launch() pipeline this way:
rtspsrc name=rtspsrc0
location=\"rtsp://user:password@192.168.0.103:8554/test\" latency=0
protocols=7 ! queue ! capsfilter caps=\"application/x-rtp,media=video\" !
rtph264depay name=depay ! h264parse ! vaapih264dec ! autovideosink

I can comfortably select stream 0,1,2.
BUT ...
I cannot select stream when using this pipeline on server side, as it always
freezes on single image frame:
rpicamsrc preview=false bitrate=1000000 ! video/x-raw,
width=1280,height=720,framerate=30/1 ! tee name=t t. ! queue ! omxh264enc
target-bitrate=1000000 control-rate=variable ! video/x-h264,width=1280,
height=720, framerate=30/1, profile=(string)high ! rtph264pay
config-interval=1 name=pay0 pt=96 t. ! queue ! videoconvert ! videoscale !
video/x-raw, width=640,height=480 ! omxh264enc target-bitrate=1000000
control-rate=variable ! video/x-h264,width=640, height=480, framerate=30/1,
profile=(string)high ! rtph264pay config-interval=1 name=pay1 pt=96

The only way I am able to run both streams from tee pipeline on client side
is in a case that I run payload0 stream on client from command line this
way:
gst-launch-1.0 -v rtspsrc
location="rtsp://user:password@192.168.0.103:8554/test" latency=0 !
rtph264depay ! h264parse ! vaapih264dec ! autovideosink
And then I run payload1 stream on client with this example:
https://github.com/James-Holland/rtspclient with parse_launch pipeline:
rtspsrc name=rtspsrc0
location=\"rtsp://user:password@192.168.0.103:8554/test\" latency=0
protocols=7 ! queue ! capsfilter caps=\"application/x-rtp,media=video\" !
rtph264depay name=depay ! h264parse ! vaapih264dec ! autovideosink

It looks like I am missing some initial negotiation when select-stream
handler is triggered as it cannot start the stream.

Please, could anyone help me resolve this issue?
Thank you
Ivo







--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list