What is the best approach to stream video through WIFI network?

My development board is Jetson nano which is connected to e-con system camera e-CAM50 (5M pixels at 28 fps). My application case is to capture live video from the camera and stream the live video at full size (5M pixels @ 28fps) to PC through WIFI reliably (high quality, no frame data lost and frame dropping).

Jetson nano will do some image processing on each frame which is live streamed to PC and other control functions as well. Therefore, I would like to use as less CPU resource as possible for video stream.

I just did a simple test on video streaming only by using the code below:
gst-launch-1.0 v4l2src device=/dev/video0 ! "video/x-raw, format=(string)UYVY, width=(int)2592,height=(int)1944" ! nvvidconv ! "video/x-raw(memory:NVMM), format=(string)I420" ! nvv4l2vp8enc ! rtpvp8pay mtu=60000 ! udpsink clients= sync=false

I monitored the CPU usage. It is at CPU[24%@1479, 26%@1479, 20%@1479, 16%@1479]. Almost of 1/4 CPU resource has been used for video streaming. Is it correct?

Would you please let me know what is the best approach to stream live video at 5M pixels per frame, 28 fps to PC through WIFI reliably and use less CPU resource?


In the linkage:

v4l2src ! video/x-raw ! nvvidconv ! video/x-raw(memory:NVMM)

It copies CPU buffers to NVMM buffers and takes certain CPU usage. If you use r32.4.3, you can try nvv4l2camerasrc to eliminate the copy and get less CPU usage.

Hi DaneLLL
Thank you for your support.
The e-con system camera e-CAM50_CUNANO is only supporting r32.3.1 at this moment.

Onr32.3.1, it would take CPU usage in copying the buffer. You may check with e-con systems if they have plan to upgrade to r32.4.3.