In our case, we have one camera which is attached and it is exposed to the user as /dev/video0. Our tests will be conducted using 1920x1080 at 30 fps. Fast encoding at H.264 can be accomplished using the omxh264enc plugin. You can see details and options of the omxh264enc plugin using
The output is very long and is not shown. The equivalent H.265 encoder plugin is omxh265enc. Nvidia has an Accelerated GStreamer User Guide available online which details some of the capabilities of the Jetson Nano when used with GStreamer.
RTSP streaming can be started using
Note that the command points to the gst-rtsp-server directory which was cloned earlier. To encode with H.265, change omxh264enc to emxh265enc, h264parse to h265parse, and rtph264pay to rtph265pay.
The stream can be picked up on the receiving PC using
where <IP Address> is the IP address of the Jetson Nano. Again, to decode using H.265, change rtph264depay to rtph265depay and avdec_h264 to avdec_h265. In the command above we use TCP as the transport protocol. To use UDP, the “location=rtspt://” part should be changed to “location=rtsp://”.
With the above settings, the glass-to-glass latency was typically 110ms with only about 10ms for the transport through the Smart Radios.
The difference between TCP and UDP was around 3 ms.
Note that Doodle Labs Mesh Rider uses special radio and parameters to optimize the video transmission over wireless medium in high interference areas. For video transmission within Smart Radio private network, we recommend use of TCP and this video queue.
A screen shot of a typical output is shown below. We can see that the latency added by the Smart Radio network amounted to less than around 10ms.