|
ffmpeg截图就是抓流然后选择 format为 image2,ffmpeg根据输出文件的扩展名自动存为响应的格式
如果要改变大小的话,可以用-s 400x300,也可以用video filter。
我们的产品经理提了一个需求,要求长边不能大于400,这样简单的-s 400x300就不能用了,要写filter
先写个简单的:
.\ffmpeg.exe -i .\laiwan.flv -vf scale=w=iw*3/4:h=ih*3/4 -f image2 -frames:v 1 -qscale:v 2 -y test.jpeg
-vf scale=w=iw*3/4:h=ih*3/4
这一句的作用是长短边都缩小为 3/4
-frames:v 1
这一句是告诉ffmpeg,截一张就行了,别截太多
-qscale:v 2
这个可以调节截图的画质,数字越小,画质越高,可选值为 2~31,2最好,31最烂
然后实现产品提的需求,先求出长边,就是 max(iw,ih)
然后长边和短边分别缩放 400/max(iw,ih)就行了,注意逗号要转义
filter是-vf scale='w=iw*400/(max(iw\,ih)):h=ih*400/(max(iw\,ih))'
整个命令行
.\ffmpeg.exe -i .\laiwan.flv -vf scale='w=iw*400/(max(iw\,ih)):h=ih*400/(max(iw\,ih))' -f image2 -frames:v 1 -qscale:v 2 -y test.jpeg
|
|