ffmpeg -ss 80 -i 6.mkv -vframes 2 -vf fps=1/20 -f image2 -y snap-%2d.jpg
截取的两张分别为:90s,110s
并不是 80s 和 100s
请问如何正确书写连续间隔时间截图的命令
ffmpeg -ss 80 -i 6.mkv -vframes 2 -vf fps=1/20 -f image2 -y snap-%2d.jpg
截取的两张分别为:90s,110s
并不是 80s 和 100s
请问如何正确书写连续间隔时间截图的命令
这是留了个文档让后人帮你读啊
仔细看 FFmpeg 里面关于 seeking 的说明。
-ss
放在 -i
前是快速跳转,落点是距离指定时刻最近的关键帧,而不是指定的时刻。
-ss
放在 -i
后是精确跳转,或者说精确步进更准确一点,然而一步一步走自然很慢。
想要兼顾速度和精度就得混着用:
ffmpeg -ss 75 -i xxx.mkv -ss 80 ……
先快跳到附近,然后精确步进到指定时刻。
时长:174.24s
帧率:23.98fps/23.976fps
每一帧持续时间:1/23.98=0.0417
第160s帧数:
160 x 23,98 = 3836.8
160 x 23.976 =3836.16
ffmpeg -ss 160 -i 1.MP4 -vframes 1 -vf fps=1/1:round=down -f image2 -y snap-%2d.jpg
p1
ffmpeg -ss 160 -i 1.MP4 -vframes 1 -vf fps=1/1:round=zero -f image2 -y snap-%2d.jpg
p2
3859帧
00:02:40.953 - 00:02:40.994 = 0.041s
ffmpeg -ss 160 -i 1.MP4 -vframes 1 -f image2 -y snap-%2d.jpg
p3
ffmpeg -i 1.MP4 -ss 160 -vframes 1 -f image2 -y snap-%2d.jpg
p4
第3835帧
00:02:39.993 - 00:02:39.952 = 0.041s
ffmpeg -ss 160 -i 1.MP4 -vframes 1 -vf fps=1/1:round=near -f image2 -y snap-%2d.jpg
p5
第3847帧
00:02:40.493 - 00:02:40.453 = 0.40s
答案应为:不会a
第3836帧
00:02:40.035 - 00:02:39.994 = 0.041s
因为这一帧正好横跨159和160秒
ps:帧数有第零帧嘛 如果有 就对了哈哈哈