![如何让 ffmpeg 丢帧/改变直播源的速率?](https://linux22.com/image/1317697/%E5%A6%82%E4%BD%95%E8%AE%A9%20ffmpeg%20%E4%B8%A2%E5%B8%A7%2F%E6%94%B9%E5%8F%98%E7%9B%B4%E6%92%AD%E6%BA%90%E7%9A%84%E9%80%9F%E7%8E%87%EF%BC%9F.png)
我有一个网络摄像头,想每秒将一帧转储到磁盘。以下命令可以很好地将每秒 5 帧转储到磁盘:
./ffmpeg -y -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -c:v copy -bsf:v mjpeg2jpeg images/frame_%d.jpg
但是 5 FPS 是我的网络摄像头可以达到的最低值。设置任何更低的值,它都会更正回 5 FPS。我还没能弄清楚如何有效地从中获得 1 FPS。似乎选择视频过滤器是一个不错的选择。但是,我已将其放在命令行的多个位置,但无济于事。
./ffmpeg -y -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -c:v copy -bsf:v mjpeg2jpeg -vf select='not(mod(n\,5))' images/frame_%d.jpg
./ffmpeg -y -vf select='not(mod(n\,5))' -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -c:v copy -bsf:v mjpeg2jpeg images/frame_%d.jpg
./ffmpeg -y -f video4linux2 -input_format mjpeg -r 5 -i /dev/video0 -vf select='not(mod(n\,5))' -c:v copy -bsf:v mjpeg2jpeg images/frame_%d.jpg
有人知道我如何使用 ffmpeg 从网络摄像头获得 1 FPS 吗?这个问题类似于使用 VLC 或 FFmpeg 提取视频中的“每 10 帧中的一个”但我只是无法让选择过滤器工作,我认为这是因为它是一个实时源。