Hi everyone. I’ve been working on the following setup:
• Hardware Platform: Tesla T4 GPU
• DeepStream Version: 5.0.1
• NVIDIA GPU Driver Version: 450.119.03
Also, the Ubuntu distribution is :
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
I’ve been testing the use of resources with the following pipelines:
First pipeline:
gst-launch-1.0 uridecodebin3 name=uri uri='rtspt://170.93.143.139/rtplive/1701519c02510075004d823633235daa' uri.video_0 ! queue leaky=2 max-size-buffers=10 ! \
nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420,width=1920,height=1080' ! nvv4l2h264enc iframeinterval=5 control-rate=1 name=encoder ! \
fakesink sync=true async=false \
videotestsrc is-live=true ! nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420' ! \
nvv4l2h264enc control-rate=0 iframeinterval=10 bitrate=1000000 ! fakesink sync=true async=false
Second pipeline:
gst-launch-1.0 uridecodebin3 name=uri2 uri='rtspt://170.93.143.139/rtplive/1701519c02510075004d823633235daa' uri2.video_0 ! queue leaky=2 max-size-buffers=10 ! \
nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420,width=1920,height=1080' ! \
nvv4l2h264enc iframeinterval=5 control-rate=1 name=encoder2 ! fakesink sync=true async=false \
videotestsrc is-live=true ! nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420' ! \
nvv4l2h264enc control-rate=0 iframeinterval=10 bitrate=1000000 ! fakesink sync=true async=false
If I used both pipelines in a separate process (two different terminals or consoles) the CPU percentage usage reaches 100% and the first pipeline freezes.
When I remove the nvv4l2h264enc iframeinterval=5 control-rate=1 name=encoder
from both pipelines the CPU percentage usage stops reaching 100% (I have to remove the encoder from both pipelines.)
However, if I used both pipelines in a single process or terminal, the CPU percentage usage never reaches 100%. The percentage usage reaches 12% as the maximum. Here is the pipeline:
gst-launch-1.0 uridecodebin3 name=uri uri='rtspt://170.93.143.139/rtplive/1701519c02510075004d823633235daa' uri.video_0 ! queue leaky=2 max-size-buffers=10 ! \
nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420,width=1920,height=1080' ! nvv4l2h264enc iframeinterval=5 control-rate=1 name=encoder ! \
fakesink sync=true async=false \
videotestsrc is-live=true ! nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420' ! \
nvv4l2h264enc control-rate=0 iframeinterval=10 bitrate=1000000 ! fakesink sync=true async=false \
uridecodebin3 name=uri2 uri='rtspt://170.93.143.139/rtplive/1701519c02510075004d823633235daa' uri2.video_0 ! queue leaky=2 max-size-buffers=10 ! \
nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420,width=1920,height=1080' ! \
nvv4l2h264enc iframeinterval=5 control-rate=1 name=encoder2 ! fakesink sync=true async=false \
videotestsrc is-live=true ! nvvideoconvert ! capsfilter caps='video/x-raw(memory:NVMM),format=I420' ! \
nvv4l2h264enc control-rate=0 iframeinterval=10 bitrate=1000000 ! fakesink sync=true async=false
I need to run similar pipelines in different processes or terminals. So, here are my questions for NVIDIA:
Question1 for NVIDIA: Why is this happening?
Question2 for NVIDIA: Does the Tesla T4 GPU have some restrictions regarding the encoders/decoders on running different pipelines in different processes?