Video Input
There are multiple ways of inputting video into Oden. Depending on whether the video stream should be shared with another system, there are different alternatives. See Video Inputs for available video inputs into Oden.
Recommended input methods if data should not be shared with another system:
Share video stream
In most scenarios the video stream needs to be shared with another system (Autonomy, Recording, etc). RTP/RTSP are by design sharable but all other input types are not.
Gstreamer
For the NVidia Jetson platform we highly recommend using Gstreamer with the gst-nvunixfd plugin, this will share GPU memory with all subscribers which will minimize latency. Oden ships this plugin and it can be used on Jetpack 5.0 and above.
Example code:
gst-launch-1.0 -e -v videotestsrc is-live=true pattern=smpte ! video/x-raw,format=NV12,width=1280,height=720,framerate=30/1 ! nvvidconv ! "video/x-raw(memory:NVMM),format=UYVY,width=1280,height=720,framerate=30/1" ! nvunixfdsink socket-path=/tmp/nvunixfd.sock
In Oden, add a 2D video and change the input to "GStreamer Pipeline" and add the following line.
nvunixfdsrc socket-path=/tmp/nvunixfd.sock buffer-timestamp-copy=true ! video/x-raw(memory:NVMM),format=UYVY,width=1280,height=720,framerate=30/1
| Remember to uncheck the "HW Decode" checkbox if the data is not encoded. |