I have Ubuntu 18.04 on a Desktop computer with an RTX 2060 and I can see that ffmpeg supports hardware acceleration like so:
$ ffmpeg -codecs 2>/dev/null | grep h264 DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_crystalhd h264_v4l2m2m h264_vdpau h264_cuvid ) (encoders: libx264 libx264rgb h264_nvenc h264_omx h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )
h264_cuvid is what gets used to decompress my 4K video on my RTX board.
However, on the Jetson AGX Xaview, the ffmpeg command outputs:
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_v4l2m2m h264_vdpau ) (encoders: libx264 libx264rgb h264_omx h264_v4l2m2m h264_vaapi )
As we can see, no
The same version of
ffmpeg is installed on both machines. A ton of CUDA and NVidia packages (all?) are also installed (more than on my machine with the RTX 2060). So… how do I get ffmpeg to use hardware acceleration?
Note 1: I’ve been able to use the acceleration through gstreamer, but I can’t use that in my software for I need two videos as textures. So I really need to get the acceleration and it has to work with a library that gives me the necessary flexibility to use more than just a video output of a movie on the display.
Note 2: When I open the
nvidia-settings tool on my Desktop with the RTX 2060, I have an entry with a field named “Video Engine Utilization” which shows me how much, in %, the video dec/enc is used right now. It is not there on the Jetson. Any way to get that information somehow? A command line maybe? That way I could clearly verify whether the hardware is used or not.