Я пытаюсь воспроизвести видеофайл 10fps на нескольких петлевых устройствах v4l2. Хотя следующая команда выводит видео на видеоустройства, она не поддерживает частоту кадров. Частота кадров (и скорость), как сообщает ffmpeg, начинается с 1-2 кадров в секунду (скорость ~ 0,100x-0,200x) и движется в направлении скорости 1fps и 1x, но никогда не достигает их. В зависимости от количества выходов, это может быть примерно 9,5 кадров в секунду и 0,950x, если я использую только 2-3 устройства v4l2, или ~ 6fps и 0,600x, если я использую все 8 устройств.

Что вызывает такое поведение и как я могу это исправить?

ffmpeg -i ~/video.mp4 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video2 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video3 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video4 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video5 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video6 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video7 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video8 \

1 ответ1

0

Вы должны сообщить ffmpeg, что хотите, чтобы он работал в режиме реального времени, добавив параметр -re перед -I . В противном случае он будет идти так быстро, как может.

ffmpeg -re -i ~/video.mp4 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video2 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video3 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video4 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video5 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video6 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video7 \
-f v4l2 -r 10 -pix_fmt yuyv422 /dev/video8

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .