DS3 Docker Tiled Display Not Showing

Running Deep Stream 3 docker.
Ubuntu 16.04
NVIDIA Driver: 410.79

Executed sample config file. Out.mp4 was produced but there is no display showing.

Note:
Installed nvidia driver with “–no-opengl-files” argument to avoid log in loop issue. Is this the cause for having no display?

Can you paste your config and ouput.mp4 here?

Using “source4_720p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt”

Config:

[application]
enable-perf-measurement=1
perf-measurement-interval-sec=5
#gie-kitti-output-dir=streamscl

[tiled-display]
enable=1
rows=2
columns=2
width=1280
height=720
gpu-id=0
# 0 - cuda pinned/host memory
# 1 - cuda device memory
# 2 - cuda unified memory
cuda-memory-type=1

[source0]
enable=1
#Type - 1=CameraV4L2 2=URI 3=MultiURI
type=3
uri=file://../../streams/sample_720p.mp4
num-sources=4
gpu-id=0
# 0 - cuda pinned/host memory
# 1 - cuda device memory
# 2 - cuda unified memory
cuda-memory-type=1

[sink0]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File
type=2
sync=1
source-id=0
gpu-id=0
cuda-memory-type=1

[sink1]
enable=1
type=3
#1=mp4 2=mkv
container=1
#1=h264 2=h265 3=mpeg4
## only SW mpeg4 is supported right now.
codec=3
sync=0
bitrate=2000000
output-file=out.mp4
source-id=0

[sink2]
enable=0
#Type - 1=FakeSink 2=EglSink 3=File 4=RTSPStreaming
type=4
#1=mp4 2=mkv
container=2
#1=h264 2=h265 3=mpeg4
## only mpeg4 is supported right now.
codec=1
sync=0
bitrate=4000
# set below properties in case of RTSPStreaming
rtsp-port=8554
udp-port=5400

[osd]
enable=1
gpu-id=0
border-width=1
text-size=15
text-color=1;1;1;1;
text-bg-color=0.3;0.3;0.3;1
font=Arial
show-clock=0
clock-x-offset=800
clock-y-offset=820
clock-text-size=12
clock-color=1;0;0;0
cuda-memory-type=1

[streammux]
gpu-id=0
##Boolean property to inform muxer that sources are live
live-source=0
batch-size=4
##time out in usec, to wait after the first buffer is available
##to push the batch even if the complete batch is not formed
batched-push-timeout=40000
## Set muxer output width and height
width=1280
height=720
##Enable to maintain aspect ratio wrt source, and allow black borders, works
##along with width, height properties
enable-padding=0
cuda-memory-type=1

# config-file property is mandatory for any gie section.
# Other properties are optional and if set will override the properties set in
# the infer config file.
[primary-gie]
enable=1
gpu-id=0
model-engine-file=../../models/Primary_Detector/resnet10.caffemodel_b4_int8.engine
labelfile-path=../../models/Primary_Detector/labels.txt
batch-size=4
#Required by the app for OSD, not a plugin property
bbox-border-color0=1;0;0;1
bbox-border-color1=0;1;1;1
bbox-border-color2=0;0;1;1
bbox-border-color3=0;1;0;1
interval=0
gie-unique-id=1
cuda-memory-type=1
config-file=config_infer_primary.txt

[tracker]
enable=1
tracker-width=640
tracker-height=368
gpu-id=0

[secondary-gie0]
enable=1
model-engine-file=../../models/Secondary_VehicleTypes/resnet18.caffemodel_b16_i$
labelfile-path=../../models/Secondary_VehicleTypes/labels.txt
gpu-id=0
batch-size=16
gie-unique-id=4
operate-on-gie-id=1
operate-on-class-ids=0;
config-file=config_infer_secondary_vehicletypes.txt

[secondary-gie1]
enable=1
model-engine-file=../../models/Secondary_CarColor/resnet18.caffemodel_b16_int8.$
labelfile-path=../../models/Secondary_CarColor/labels.txt
batch-size=16
gpu-id=0
gie-unique-id=5
operate-on-gie-id=1
operate-on-class-ids=0;
config-file=config_infer_secondary_carcolor.txt

[secondary-gie2]
enable=1
model-engine-file=../../models/Secondary_CarMake/resnet18.caffemodel_b16_int8.e$
labelfile-path=../../models/Secondary_CarMake/labels.txt
batch-size=16
gpu-id=0
gie-unique-id=6
operate-on-gie-id=1
operate-on-class-ids=0;
config-file=config_infer_secondary_carmake.txt

[tests]
file-loop=0

Can you suggest me a way to upload the out.mp4 video to here?

out.mp4.7z (10.1 MB)

from your comment, put the mouse click on the right upper corner, you will see “Add attachment”

Hi, Thank you for the guide. I have uploaded the video.

Just to clarify, the video is working fine (showing correct output). The issue is there is no on-screen display when Deepstream is running.

Thanks

I do not the see the video, also, what do you mean no on-screen display? don’t you use sink type 3=File for
output? if you use this type, will output to the file, let’s say one mp4 file. if you want to output to the screen, you should use sink type 2=EglSink

Hi amycao,

I tried to execute the default config source4_720p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt which is using sink0 type 2 (EglSink), but giving me the following error.

* ERROR: <main:564>: Failed to set pipeline to PAUSED
Quitting
App run failed

if you run the application from remote, make sure export DISPLAY=:0 first before run, or you can run the app
from desktop.

Before running the docker,

I executed the following commands:

export DISPLAY=:0
xhost +
nvidia-docker run -it --rm -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -w /root nvcr.io/nvidia/deepstream:3.0-18.11

Receiving the same error. Any idea on the error?

please first make sure you can use your server environment to run success with sink to eglsink, to rule out
environments issue, then try with docker.

Could you share some sample applications for me to test the server environment with sink to eglsink?

just like you use in docker, deepstream-app -c /path to config/source30_720p_dec_infer-resnet_tiled_display_int8.txt
change sink type to 2=EglSink in the config, please make sure you follow the README within the deepstream package.

Solution found.

Inserting another GPU card (GTX1050) for output display.
Note: Configure the BIOS to use GTX1050 for offboard display

Run DS sample with the following command,

deepstream-app -c /path to config/source30_720p_dec_infer-resnet_tiled_display_int8.txt

Check GPU usage while running DS sample with

nvidia-smi

Tesla P4 will be used by deepstream for inference purpose.
GTX1050 will be used by deepstream for visualization.

Tilted display show correctly.

@amycao, do we require to have 2 GPUs for visualization purpose at the beginning?

If you need to output to screen, yes, you need one nvidia graphic card which support display,
a hacky way to use Tesla p4 for virtual display, but just suggest for developments, since it
will take some percent of device memory, finally impact the inference perf in this case deepstream,

sudo nvidia-xconfig --query-gpu-info
Number of GPUs: 2

GPU #0:
Name : Tesla T4
UUID : GPU-b58f5878-b235-c28e-4e2a-44d8623d133a
PCI BusID : PCI:3:0:0

Number of Display Devices: 0

GPU #1:
Name : Tesla P4
UUID : GPU-55bc88aa-fc94-0e86-9319-abd5fadf49ab
PCI BusID : PCI:4:0:0

Number of Display Devices: 0

sudo nvidia-xconfig --busid=PCI:4:0:0 --allow-empty-initial-configuration
reboot system, install nomachine from your windows system, and also need install nomachine on your
linux server which have p4 installed, and login to desktop using nomachine from windows system.

Hi @amycao,

Thanks for the suggestion. I will proceed with the dual GPU for now. In future, I might try the method you mentioned above. Appreciate your help.

Thanks.