Gstreamer pipeline outputting different color space images on Jetson Nano and Jetson Nano Orin

Hi everyone! I have two Jetson boards, a Jetson Nano and a Jetson Orin Nano.
I’m using gstreamer to extract images from an IP camera on both boards. The pipeline I’m using is the following:

uridecodebin uri="rtsp://{ip}:554/user={user}&password={password}&channel=1&stream=0.sdp?" ! nvvidconv ! video/x-raw, width=2880, height=1620, format=BGRx ! videoconvert ! video/x-raw, format=BGR ! appsink

The problem I have is that the same pipeline outputs BGR images, as expected, on the Jetson Nano, while it outputs RGB images on the Jetson Orin Nano. The sink I use doesn’t matter, since I’ve also tried with a multifilesink to save frames locally but I still have the same problem.

Any wonder why it happens? I can solve it via code, by inverting the color space only on the Orin, but I’d like a cleaner solution.

• Jetson Orin Nano - Jetson Nano
• Jetpack version - Orin: 5.1.1-b56 - Nano 4.6.4-b39
• TensorRT version - Orin: 8.5.2 - Nano: 8.2.1

Hi,
There is a fix for Jetpack 5(> 5.1.2):

Jetson/L4T/r35.5.x patches - eLinux.org
[MMAPI/gstreamer] color conversion is not correct

You may apply it to 5.1.1 for a try. Since the version does not match, it may not work. If it does not work properly, would suggest upgrade to latest Jetpack 6.1.

Thanks for the answer! I copied the new library in /usr/lib/aarch64-linux-gnu/tegra, replacing the old libnvvic.so file. However, even though the pipeline starts successfully, I still get RGB frames.
In the next days, I’ll try updating the JetPack version to v6.1.

Hi,
You may set RGBA to nvvidconv for a try:

... ! nvvidconv ! video/x-raw, width=2880, height=1620, format=RGBA ! videoconvert ! video/x-raw, format=BGR ! ...

I tried that too but still have RGB frames.
I also tried changing both nvvidconv and videoconvert formats to RGB, what happens is that on the Orin I get RGB frames, on the Jetson Nano I have weird greenish/purple frames.
Unfortunately I won’t probably be able to update Jetpack to 6.1 since it would probably cause the need to rebuild our neural networks that we use on our sensors due to CUDA being updated too.
I think that if there’s no solution left, I’ll probably just fix it code-side by applying a conversion only on the Orin.

Hi,
Certain issues are discovered and fixed in later releases, so would suggest use later Jetpack release and see if the RTSP source can be well decoded on developer kit.

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