YMAL file changes for the Jetson Orin Nano for AI NVR application workflow?

[What is the URL and port to see the Deepstream Output on the VLC media player in Jetson platform services?]

[JPS FAQ]

Please let us know what changes should be made in ds-config_nano.yaml to enable and playback the RTSP output on Jetson Orin Nano.

Thanks

Can you have a try with this configure file? The only difference is nano need to use SW video encoder.

ds-config_nano.yaml (3.2 KB)

@kesong

Thanks for your quick response. I was editing the ds-config_nano.yaml file by comparing it with the file provided in JPS FAQ for AGX orin.

Let me try I will let you know.

Thanks.

@kesong

I have used the ‘ds-config_nano.yaml’ file provided by you and replaced it with an existed file in the following directory

When relaunching the AI NVR docker-compose, some containers are not started and are in waiting mode.

You need install x264enc SW encoder for Orin Nano with below command line. Then modify compose_nano.yaml to use new docker image.

Run DeepStream container:
$ docker run -it --rm --net=host --runtime nvidia -w /root -v /tmp/.X11-unix/:/tmp/.X11-unix -v /mnt/:/mnt/ -v /mnt/share/mmj/ai_nvr/config/deepstream/:/ds-config-files/ -v /mnt/share/mmj/ai_nvr/yolov8s/:/yolov8s/ nvcr.io/nvidia/jps/deepstream:7.0-jps-v1.1.1

Install x264enc in DeepStream container:
$ apt-get install --reinstall -y libx264-dev libx264-163 gstreamer1.0-plugins-ugly
$ gst-inspect-1.0 x264enc

Commit the container with new name:
$ docker ps
$ docker commit 263b045a4287 nvcr.io/nvidia/jps/deepstream:7.0-jps-v1.1.2

I have updated the configure file to enable tiler:

ds-config_nano.yaml (3.2 KB)

Hi, Thanks for your response.

Could you please elaborate more on what exactly needs to be modified in the compose_nano.yaml file?

I have followed your instructions and committed the changes as you can see below,

and changed the version for deepstream to the in compose_nano.yaml

But still getting the same issues with docker-compose

Yes, your change is right. Can you share the log of deepstream?

$ docker logs deepstream

Please find the attached log file

DeepstreamLogs.txt (41.9 KB)

Seems “x264enc” is missing in the DeepStream container. Can you run the container and check if x264enc is there by: gst-inspect-1.0 x264enc

The strange thing is that I ran the deepstream docker container and installed x264enc using the following command

$ apt-get install --reinstall -y libx264-dev libx264-163 gstreamer1.0-plugins-ugly
and inspect the x264enc it shows x264enc exists, the result is attached to the file.

x264enc.txt (26.1 KB)

but when I commit the deepstream docker container (using another terminal), exit the container, and then rerun the deepstream docker container to inspect the x264enc it shows as follows

==========
== CUDA ==
==========

CUDA Version 12.2.12

Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license

A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.

root@ubuntu:~# gst-inspect-1.0 x264enc

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.419: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpg123.so': libmpg123.so.0: cannot open shared object file: No such file or directory

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.422: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstopenmpt.so': libmpg123.so.0: cannot open shared object file: No such file or directory

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.457: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpeg2enc.so': libmpeg2encpp-2.1.so.0: cannot open shared object file: No such file or directory

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.487: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstmpeg2dec.so': libmpeg2.so.0: cannot open shared object file: No such file or directory

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.507: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstchromaprint.so': libavcodec.so.58: cannot open shared object file: No such file or directory

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.561: adding type GstEvent multiple times
(Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 204)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.802: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_inferserver.so': libtritonserver.so: cannot open shared object file: No such file or directory

(gst-plugin-scanner:41): GStreamer-WARNING **: 06:44:08.849: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_udp.so': librivermax.so.0: cannot open shared object file: No such file or directory
No such element or plugin 'x264enc'

I am making a mistake in committing the container. Do I need to change the command in the compose_nano.ymal file?

No, you just need change the compose_nano.ymal file to use the new committed container.
I can get the right result when inspect the x264enc after run the new committed container.

I am sorry, It was my bad that I was running the old container only. When I ran the new container I got the following.

t-tech@ubuntu:~$ sudo docker run -it --rm --net=host --runtime nvidia -w /root -v /tmp/.X11-unix/:/tmp/.X11-unix -v /mnt/:/mnt/ -v /mnt/share/mmj/ai_nvr/config/deepstream/:/ds-config-files/ -v /mnt/share/mmj/ai_nvr/yolov8s/:/yolov8s/ nvcr.io/nvidia/jps/deepstream:7.0-jps-v1.1.2

==========
== CUDA ==
==========

CUDA Version 12.2.12

Container image Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

This container image and its contents are governed by the NVIDIA Deep Learning Container License.
By pulling and using the container, you accept the terms and conditions of this license:
https://developer.nvidia.com/ngc/nvidia-deep-learning-container-license

A copy of this license is made available in this container at /NGC-DL-CONTAINER-LICENSE for your convenience.

Unable to open file: /ds-config-files/pn26/labels.txt
bad file: /ds-config-files/pn26/service-maker/source-list_nano.yaml

@kesong

Any update on this ?

You only installed x264enc for new container. Suppose it should works fine. I can see the RTSP output with SW x264enc in my side.

@kesong

As you can see, I cannot launch the new container.

What kind of error are you meet? Please map the right fold of the configure file into the container when you run the docker. Or you can run it by docker composer.

@kesong

Thanks for your help.

I have reinstalled the JPS using SDK manager, Where nothing has changed much but last I observed in the terminal the docker got restarted and now things work fine as you mentioned in the steps to install encoder for Jetson Orin Nano.

output

Glad to know DeepStream RTSP output works on Nano in your side.

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