VP8 video encoder fails with "Capture plane: VIDIOC_S_FMT: Invalid argument"


I’m trying to encode sample video with VP8 codec by using 01_video_encode sample from Jetson Multimedia API. It works for all other codecs (including VP9), but fails on VP8:

# ./video_encode test_video.yuv 1920 1080 VP8 test.vp8 --stats
Creating Encoder in blocking mode 
[ERROR] (NvV4l2ElementPlane.cpp:371) <enc0> Capture Plane:Error in VIDIOC_S_FMT: Invalid argument
Could not set capture plane format
Encoder is in error
App run failed

I’m not sure what is wrong, because it works for any other codec and outputs literally no debug info.

VP8 encoding with hardware acceleration is supported on Jetson TX1, TX2, Nano. Not supported on Xavier and Xavier NX. Please check listed codecs in developer guide.

Just curious: what is the reason of such limitation? It’s rather inconvenient because, for example, Firefox does not support H.264 in WebRTC and VP8 is the only remaining option. This implies a need for video transcoding for Firefox, which is also incovenient, since desktop/server nVidia cards does not support VP8 either. They are stuck on supporting only H.264 and H.265, just like it’s 2013.

The hardware space is limited. In designing Xavier, we move the space to include certain h265/vp9 hardware filters and extend maximum resolution to 8K.

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