我正在尝试使用 ffmpeg 从视频流中提取每 30 帧。为此,我咨询了所有https://superuser.com/questions/573747/drop-every-even-or-odd-frames-using-ffmpeg 如何从视频中提取每 10 帧? https://superuser.com/questions/1274661/selecting-one-every-n-frames-from-a-video-using-ffmpeg但这两种选择都不起作用。
就我而言最接近的是
$ ffmpeg -i DSCF0001.AVI -vf "select='not(mod(n-1,30))',setpts=N/(30*TB)" output.mkv
这将创建一个视频,该视频一开始完全符合我的要求,但随后只是在某个时刻冻结并且不再继续。在编码过程中,我在命令行上收到以下消息:
[matroska @ 0x559dfb975d40] Starting new cluster due to timestampte= 356.7kbits/s speed=8.09x
Last message repeated 3 times
[matroska @ 0x559dfb975d40] Starting new cluster due to timestampte= 358.5kbits/s speed=8.09x
Last message repeated 3 times
[matroska @ 0x559dfb975d40] Starting new cluster due to timestampte= 354.1kbits/s speed=8.09x
Last message repeated 3 times
这可能与该问题相关,也可能无关。
实现我的目标的正确命令行是什么?