Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
Jetson Orin NX 16G
• DeepStream Version
DS 7.0
• JetPack Version (valid for Jetson only)
JetPack 6.0 GA (L4T 36.3)
• Issue Type( questions, new requirements, bugs)
questions
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
An example that works as expected:
gst-launch-1.0 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_0 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_1 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_2 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_3 \
nvstreammux name=streammux batch-size=4 sync-inputs=1 max-latency=10000000000000000000 ! nvinfer name=nvinfer config-file-path="/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_infer_primary.txt" batch-size=4 interval=0 unique-id=1 ! nvdslogger ! nvvideoconvert ! capsfilter caps="video/x-raw(memory:NVMM), format=(string)RGBA" ! nvmultistreamtiler gpu-id=0 nvbuf-memory-type=0 rows=2 columns=2 width=1920 height=1080 qos=0 ! nvdsosd process-mode=0 display-clock=1 display-text=1 display-bbox=1 display-mask=1 ! nvvideoconvert ! capsfilter caps="video/x-raw(memory:NVMM), format=(string)I420" ! nvv4l2h264enc insert-sps-pps=true iframeinterval=5 control-rate=1 preset-level=1 maxperf-enable=false bitrate=4000000 ! h264parse config-interval=5 ! hlssink2 playlist-root="hls" location="out/ch%05d.ts" playlist-location="out/playlist.m3u8" playlist-length=12 target-duration=10 max-files=10
An example of the question:
gst-launch-1.0 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_0 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_1 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_2 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_3 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_4 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_5 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_6 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_7 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_8 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_9 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_10 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_11 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_12 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_13 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_14 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_15 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_16 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_17 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_18 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_19 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_20 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_21 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_22 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_23 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_24 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_25 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_26 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_27 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_28 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_29 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_30 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_31 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_32 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_33 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_34 \
nvurisrcbin uri="file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4" gpu-id=0 cudadec-memtype=0 ! nvvideoconvert ! streammux.sink_35 \
nvstreammux name=streammux batch-size=36 sync-inputs=1 max-latency=10000000000000000000 ! nvinfer name=nvinfer config-file-path="/opt/nvidia/deepstream/deepstream/samples/configs/deepstream-app/config_infer_primary.txt" batch-size=36 interval=0 unique-id=1 ! nvdslogger ! nvvideoconvert ! capsfilter caps="video/x-raw(memory:NVMM), format=(string)RGBA" ! nvmultistreamtiler gpu-id=0 nvbuf-memory-type=0 rows=6 columns=6 width=1920 height=1080 qos=0 ! nvdsosd process-mode=0 display-clock=1 display-text=1 display-bbox=1 display-mask=1 ! nvvideoconvert ! capsfilter caps="video/x-raw(memory:NVMM), format=(string)I420" ! nvv4l2h264enc insert-sps-pps=true iframeinterval=5 control-rate=1 preset-level=1 maxperf-enable=false bitrate=4000000 ! h264parse config-interval=5 ! hlssink2 playlist-root="hls" location="out/ch%05d.ts" playlist-location="out/playlist.m3u8" playlist-length=12 target-duration=10 max-files=10
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
We are considering a DeepStream application that can infer any number of multiple videos, arrange them in tiles, and then output the results in HLS format so that users can check them. Let’s say the frame rate of the input video is 30 FPS. For example, if we input 4 videos and infer them, the resulting video is displayed as expected.
**PERF : FPS_0 (30.00) FPS_1 (30.00) FPS_2 (29.99) FPS_3 (29.99)
As an extreme example, if we input 36 videos and perform batch inference, the hardware processing resources will naturally not be able to keep up and all the videos cannot be processed at 30 FPS (that is totally no problem). In my environment, it was about 10 FPS.
**PERF : FPS_0 (10.20) FPS_1 (10.20) FPS_2 (10.20) FPS_3 (10.20) FPS_4 (10.20) FPS_5 (10.20) FPS_6 (10.20) FPS_7 (10.20) FPS_8 (10.20) FPS_9 (10.20) FPS_10 (10.20) FPS_11 (10.20) FPS_12 (10.20) FPS_13 (10.20) FPS_14 (10.20) FPS_15 (10.20) FPS_16 (10.20) FPS_17 (10.20) FPS_18 (10.20) FPS_19 (10.20) FPS_20 (10.20) FPS_21 (10.20) FPS_22 (10.20) FPS_23 (10.20) FPS_24 (10.20) FPS_25 (10.20) FPS_26 (10.20) FPS_27 (10.20) FPS_28 (10.20) FPS_29 (10.20) FPS_30 (10.20) FPS_31 (10.20) FPS_32 (10.20) FPS_33 (10.20) FPS_34 (10.20) FPS_35 (10.20)
The problem is, when I downloaded the output video and checked it, the video looked like it was fast-forwarded. (Note how the clock in the upper left counts up.)
I think this is because the video output at about 10FPS is output as a file at a fixed frame rate of 30FPS, making it 3 times faster. Instead, is there a good way to adjust the output video to the correct speed based on the current actual FPS value measured during pipeline execution? We were able to change the playback speed to a predetermined value using videorate etc. However, since we don’t know what the actual FPS will be until I start the pipeline, we would like to dynamically adjust the playback speed during pipeline playback rather than deciding on a fixed value. If you could share a good method, I would appreciate it. Attached are the commands used to run the above two example pipelines.
Thank you very much in advance.