Process HDMI to USB card input and output it to RTMP stream


The Jetson Nano is a wonderful little board. I have on x64 a Python project where I capture an HDMI stream with ffmpeg, process the video and audio and create a processed RTMP stream with ffmpeg. The capture card gives me MJPEG 1280x720 30 FPS video and 44100Hz float32 audio.

The architecture is like this:
HDMI card → ffmpeg → 2 named pipes for audio and video
Read pipes in Python, process the stream
Output the processed stream to another 2 named output pipes
Create RTMP stream with another ffmpeg process by reading the output pipes

I easily achieve 30 FPS on x64. Can I create a more efficient architecture for Jetson Nano? Can I somehow also use the GPU? I can only achieve 15 FPS on Nano ATM, even if I just pass-through the stream without any processing. The ARM CPU load is about 210%. I also want to perform disk IO during processing, is it just too ambitious for this little board?

Thank you,

Please execute $ sudo nvpmodel -m 0 and sudo jetson_clocks to run system at maximum throughput. And check if you can achieve target performance in the mode. For profiling system status, please run $ sudo tegrastats

The CPU capability of x86 and Jetson Nano is different, so it looks expected the performance is not identical.

Thank you very much for the fast response. I ran the commands and still have 18 FPS. I will try using gstreamer.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.