Jetson Multistream

I have problems with multistream. i use this pipeline:

pipeline = gst_parse_launch(
“nvarguscamerasrc gainrange="1 16" ispdigitalgainrange="1 1" ! video/x-raw(memory:NVMM), format=NV12, width=3840, height=2160, framerate=30/1”
“! tee name=stream”
" stream. ! nvvidconv flip-method=2 !‘video/x-raw(memory:NVMM),width=640, height=480, framerate=30/1’"
“! nvv4l2h264enc insert-sps-pps=true bitrate=16000000 ! h264parse ! flvmux streamable=true ! queue ! rtmpsink location="rtmp://192.168.0.127/live/testX"”
" stream. ! nvvidconv flip-method=2 !‘video/x-raw(memory:NVMM),width=3840, height=2160, framerate=20/1’"
“! nvv4l2vp8enc !appsink sync=TRUE emit-signals=TRUE name=appsink-video”,
&error);

The camera starts but the stream does not start. There is also an issue with using nvtee instead of tee.
Tell me what could be the problem. Maybe I’m not configuring the pipeline correctly :(

You may add a queue in front of each subpipeline after tee (or after any demux):

stream. ! queue ! ...

Also the 2nd subpipeline uses framerate of 20 instead of 30. If this is intentional, you may try adding plugin videorate.

i tried to add queue elements for buffering, but i get errors like this:

(XX:15902): GStreamer-CRITICAL **: 16:41:40.149: gst_element_make_from_uri: assertion ‘gst_uri_is_valid (uri)’ failed

(XX:15902): GStreamer-CRITICAL **: 16:41:40.161: gst_element_make_from_uri: assertion ‘gst_uri_is_valid (uri)’ failed

(XX:15902): GStreamer-WARNING **: 16:41:40.163: Trying to link elements stream and queue0 that don’t share a common ancestor: queue0 hasn’t been added to a bin or pipeline, and stream is in pipeline1

(XX:15902): GStreamer-WARNING **: 16:41:40.163: Trying to link elements stream and queue1 that don’t share a common ancestor: queue1 hasn’t been added to a bin or pipeline, and stream is in pipeline1

You may try:

pipeline = gst_parse_launch(
"nvarguscamerasrc gainrange=\"1 16\" ispdigitalgainrange=\"1 1\" ! video/x-raw(memory:NVMM), format=NV12, width=3840, height=2160, framerate=30/1 ! tee name=stream "
"stream. ! queue ! nvvidconv flip-method=2 ! video/x-raw(memory:NVMM),width=640, height=480, framerate=30/1 ! nvv4l2h264enc insert-sps-pps=true bitrate=16000000 ! h264parse ! flvmux streamable=true ! queue ! rtmpsink location=\"rtmp://192.168.0.127/live/testX\" "
"stream. ! queue ! nvvidconv flip-method=2 ! videorate ! video/x-raw(memory:NVMM),width=3840, height=2160, framerate=20/1 ! nvv4l2vp8enc ! queue ! appsink sync=TRUE emit-signals=TRUE name=appsink-video ",
&error);

Yes
it works
Thanks a lot

but I don’t understand why it doesn’t work with nvtee and why you need to use videorate to change the framerate, and not !nvvidconv flip-method=2 ! video/x-raw(memory:NVMM),width=3840, height=2160, framerate=20/1

nvtee is not a NVMM version of tee. In recent gstreamer versions, tee supports NVMM memory.
nvvidconv can scale but doesn’t change framerate, it is videorate job to do that.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.