Video Stream from Jetvariety arducam ar0234 to PC over UDP

Need little help concerning sending 1080p live feed from cam Arducam to PC over Ethernet switch via UDP. The problem is that this cam as far as i know doesnt support the Hardware NVENC (H.264 / H.265) Encoding and Decoding. So the real option left is streaming video in form of MJPEG. But this will create huge traffic in the ethernet given the fact that we will use 3 cams to simultaneously stream live feed in form of MJPEG to do 3D Pose Estimation later on the Workstation.

Does anyone have any experience with with kind of Streaming? im open to any help/ideas.

Thanks.

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, I’ll try to address your question and provide a comprehensive answer.

You’re using an Arducam camera with the Jetson AGX Orin series, and you want to stream a 1080p live feed from the camera to a PC over an Ethernet switch via UDP. The camera doesn’t support hardware encoding and decoding, so you’re considering streaming the video in RAW format.

RAW Format Streaming

Streaming video in RAW format can indeed create huge traffic on the Ethernet network, especially when using multiple cameras simultaneously. This is because RAW video data is uncompressed and can be quite large.

Alternative Options

Considering the limitations of RAW format streaming, here are a few alternative options you could explore:

  1. Software Encoding: Although the camera doesn’t support hardware encoding, you can use software encoding on the Jetson AGX Orin to compress the video stream. This will reduce the bandwidth required for streaming. You can use libraries like GStreamer or FFmpeg to achieve software encoding.
  2. H.264/H.265 Encoding: If the camera supports H.264 or H.265 encoding, you can use these codecs to compress the video stream. This will significantly reduce the bandwidth required for streaming.
  3. JPEG Compression: Another option is to use JPEG compression, which can be more efficient than RAW format streaming. However, this might not be suitable for real-time video streaming applications.

Camera API and Streaming

To stream video from the Arducam camera, you’ll need to use the V4L2 API, as mentioned in the Camera API Matrix. You can use the V4L2 API to capture video frames from the camera and then stream them over UDP using a library like GStreamer or FFmpeg.

GStreamer Pipeline

Here’s an example GStreamer pipeline that demonstrates how to capture video from a V4L2 camera and stream it over UDP:

gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw, width=1920, height=1080, framerate=30/1 ! x264enc ! udpsink host=192.168.1.100 port=5000

This pipeline captures video from the V4L2 camera at 1920x1080 resolution, 30 fps, and streams it over UDP to a host at IP address 192.168.1.100 and port 5000.

Conclusion

In conclusion, while streaming video in RAW format can create huge traffic on the Ethernet network, there are alternative options available, such as software encoding, H.264/H.265 encoding, and JPEG compression. You can use the V4L2 API to capture video frames from the Arducam camera and then stream them over UDP using a library like GStreamer or FFmpeg.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Hi,
If the camera source supports YUV422 such as YUYV or UYVY, you cam capture frame data in YUV422, convert to YUV420, encode to H264/H265, and send compressed stream through UDP. We have some examples in
Jetson AGX Orin FAQ
Jetson AGX Orin FAQ