ffmpeg - 带缩略图的多个输出

时间:2016-12-09 02:32:38

标签: ffmpeg

我希望ffmpeg能够做到以下几点:

  • 读取输入mp4 ( - i movie.mp4)
  • 跳过前5秒( - ss 5)
  • 查找场景更改并显示帧编号( - vf“select = gt(scene \,0.4,showinfo))
  • 输出#1 - gif文件(output.gif)
  • 输出#2 - 包含所有缩略图的联系表( - vf“select scale = 320:-1,tile = 12x200”thumbnails.png)

这将生成缩略图:

ffmpeg -hide_banner -i d:/Test/movie01.mp4 -ss 5 -vf "select=gt(scene\,0.4), showinfo, scale=320:-1, tile=12x200" -vsync 0 thumbnails%03d.png

这将生成gif:

ffmpeg -hide_banner -i d:/Test/movie01.mp4 -ss 5 -vf "select='not(mod(n,60))',setpts='N/(30*TB)', scale=320:-1" -vsync 0 output.gif

我想同时使用另外两项功能:

  • 设置gif的fps和分辨率;我希望gif在X秒内以Y fps表示整部电影(我知道输入电影的持续时间,因此我可以计算帧需要捕获的频率)

  • 仅为缩略图(例如tile = 12)设置宽度,让ffmpeg确定合适的高度

我尝试从我在此页面上阅读的内容撰写命令行:https://trac.ffmpeg.org/wiki/Creating%20multiple%20outputs,使用split / map命令,但我无法使其工作

1 个答案:

答案 0 :(得分:2)

使用

ffmpeg -ss 5 -i input.mp4
-vf "select='not(mod(n,60))',setpts=N/Y/TB',scale=320:-1" -r Y output.gif
-vf "select='gt(scene\,0.4)',showinfo,scale=320:-1,tile=12x200" -vsync 0 thumbnails%03d.png

tile需要设置W和H.