ffmpeg v4l2ドライバはLogitech c920カメラのフレームレートを変更します。

ffmpeg v4l2ドライバはLogitech c920カメラのフレームレートを変更します。

私はLogitech c920カメラを所有しており、1080pで少なくとも24fpsを記録できるようです(仕様には60fpsにする必要があると言われていますが)。これにより、vlc -vvv --color v4l2:///dev/video0 --run-time 1 vlc://quit -I dummy -V dummy -A dummy次のような結果が得られます。

[00007f64f4001120] v4l2 demux debug:  frame size 1920x1080
[00007f64f4001120] v4l2 demux debug:   discrete frame interval: 1/24

video0ただし、ffmpegを使用してv4l2ループバックデバイスにコピーしようとすると、次のようになります。

ffmpeg -f v4l2 -r 24 -s 1280x720 -i /dev/video0 -codec copy -f v4l2 /dev/video4

10fpsだけが表示され、メッセージは次のようになります。

[video4linux2,v4l2 @ 0x55a30e698c00] The driver changed the time per frame from 1/24 to 1/10

なぜこれが起こり、より高いフレームレートを得るには?

答え1

カメラのRAW形式を使用しています。圧縮コーデックを試してください。

ffmpeg -vcodec mjpeg -r 30 -s 1920x1080 -f v4l2 ...

関連情報