Я борюсь с ffmpeg. Моя веб-камера может работать с разрешением 720p при 30 кадрах в секунду, но только при использовании кодека MJPEG:
~> v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'YUYV'
Name : YUV 4:2:2 (YUYV)
-- cut --
Size: Discrete 1280x720
Interval: Discrete 0.133 s (7.500 fps)
Interval: Discrete 0.200 s (5.000 fps)
-- cut --
Index : 1
Type : Video Capture
Pixel Format: 'MJPG' (compressed)
Name : MJPEG
-- cut --
Size: Discrete 1280x720
Interval: Discrete 0.033 s (30.000 fps)
Interval: Discrete 0.040 s (25.000 fps)
Interval: Discrete 0.050 s (20.000 fps)
Interval: Discrete 0.067 s (15.000 fps)
Interval: Discrete 0.100 s (10.000 fps)
Interval: Discrete 0.200 s (5.000 fps)
-- cut --
Я не могу понять, как заставить ffmpeg читать сжатый формат MJPEG. Он пытается прочитать необработанный вариант, который заканчивается ужасным качеством.