天天记事 1085 / 2021-09-01 10:04:22
1. 指定时间点截图一张,并且按照指定宽度等比缩放(如果不需要缩放截图大小,那么将对应的参数去掉即可)
【命令代码】
ffmpeg -y -hide_banner -i index.mp4 -vf "scale=200:200/a" -ss 4.0 -vframes 1 out.png
【命令参数】
参数 | 说明 |
---|---|
-y | 目标覆盖不提示 |
-hide_banner | 不显示ffmpeg版本相关信息 |
-i | 待处理文件 |
-vf | 视频/图像大小缩放,指定宽度的参数有两种写法:scale= |
-ss | 开始截图的时间点,4.0值在第4秒时截图;还有其它格式:00:00:04.0,时:分:秒.毫秒;又或者直接用秒数,如120,表示2分开始 |
.-vfames | 截取多少帧,如果截一张图,那么写成1即可 |
2. 指定时间点开始按帧截图,并且按照指定宽度等比缩放(如果不需要缩放截图大小,那么将对应的参数去掉即可)
ffmpeg -y -hide_banner -i index.mp4 -vf "scale=200:-1" -ss 4.0 -vframes 3 out-%d.png
3. 从指定时间开始,每一秒截图一张,并缩放截图(常规命令),注意,此命令执行开始时,如果起始时间越长则开始截图越晚,效率不高。
ffmpeg -y -hide_banner -i index.mp4 -vf "scale=400:-1,fps=1" -ss 10:00.0 out-%d.png
4. 从指定时间开始,每一秒截图一张,并缩放截图(高效命令)
ffmpeg -y -hide_banner -ss 10:00.0 -i index.mp4 -vf "scale=400:-1,fps=1" %05d.png
【命令解释】
覆盖目标文件,程序版本信息,待处理文件为index.mp4,媒体起始时间为10分0秒0毫秒,截图的大小保持400宽度并按比例缩放,每一秒截图一张,存储文件名长度不够5位则前补0,截图存储到index.mp4同一目录下。
【注意】fps=1,是1秒截图一次;如果每3秒截图一次,则fps=0.33333;如果每10秒截图一次,那么fps=0.1;推导公式为:fps=1/<间隔时间(单位为秒)>
5. 截图存储为jpeg,并设置截图质量
ffmpeg -y -hide_banner -ss 10:00.0 -i index.mp4 -vf "scale=400:-1,fps=1" -q:v 8 thumb/%05d.jpg
新增参数, -q:v <1-32之间的数值,值越小,截图质量越高,文件越大;反之亦然>
未完待续。。。