I’m not sure if this is due to hardware or limitations of the nano but the same pipelines I use for ROS omx video encoding on TX1 have 100% CPU usage on nano. Is this normal or am I missing a new pipline for hardware video encoding.
Okay so this is strange. When using a USB 2.0 uvc capture device with omx hardware encoding I get 20% cpu usage but when I use my USB 3.0 1080p uvc capture device over USB 3.0 port my CPU usage goes over 100% with the same gst-launch pipeline.
I dont experience this at all on my Jetson TX1 or even the TK1 over USB 3.0.
Edit: This happens on both 2.0 and 3.0 the CPU load all depends on the resolution…
Thanks for the response DaneLLL. So i did some more pipelines and yes since gst-launch is using the 1st available resolution which is 1920x1080 @60fps this causes the cpu usage to reach 100%. Now if i switch to the lowest resolution 640x480 @30fps the cpu usage drops to about 35%.
I don’t experience this at all on my Jetson TX1 but at the moment it is not a big deal for my ROS projects since I plan to use lower resolutions to broadcast my rtsp stream over wifi and 4G lte.
Is it normal on the nano to experience such high load when using a hardware encoding with high resolutions? I experience this at 1080 and 720.
Could someone else that is using gst-launch-1.0 with 1920x1080 @60fps comment on their experiences?
Here is my exact gst pipelines I use to stream rtspclientsink to my wowza server which broadcasts all my ROS streams:
One thing to add is I do see a lot of kernel messages reporting:
[ 6553.821845] uvcvideo: Failed to resubmit video URB (-1).
[ 6556.216674] usb 2-1.3: usb_suspend_both: status 0
[ 6556.276498] usb 2-1: usb_suspend_both: status 0
[ 6556.282031] usb usb2: usb_suspend_both: status 0
Nothing I have tried reduces the CPU load. I am going to test the same pipelines again on TX1/TK1 and compare results again. Seems hardware encoding is not working if cpu is at 100%…
Thank you for the very informative post DaneLLL. I tried your pipeline and it works as is but how do I incorporate the rtspclientsink and also encoding to a bitrate? I am broadcasting video over 4G LTE and video/x-raw is uncompressed so this is undesirable.
I get an input/output error when trying to append rtspclientsink:
Well I built Gstreamer 1.14.4 (nano has 1.14.1) and now my omxh264enc seems to be using gst-omx hardware encoding because now the same pipelines are only using 15% CPU. Consider this solved and also for anyone experiencing slow omxh264enc performance use this guide and change your VERSION to VERSION=1.14.4 and build.