上篇文章《安装FFmpeg多媒体库,以及命令行程序使用介绍》学会如何安装FFmpeg,以及FFmpeg的简单使用,本章将深入FFmpeg命令行进行讲解,介绍如何对视频进行缩放和裁剪操作。
通过ffmpeg --help查看ffmpeg命令的使用规则。
ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
选项总共分为三个部分,全局选项,输入选项和输出选项。
放大和缩小视频
常见的视频尺寸
vga 640x480
hd720 1280x720
hd1080 1920x1080
![e3b7b07d8dd56adf644d48240b1d4a0e.png](https://i-blog.csdnimg.cn/blog_migrate/9385c7ba99c9f07402fcef0719e4d9fd.jpeg)
尺寸大小示意图
放大和缩小视频是用的scale过滤器(filter),该过滤器比较复杂,只讲述常见的使用技巧,更丰富的操作可以查看FFmpeg官网。
将1280x720的视频的变成200x100大小的视频。
ffmpeg -i res/test.mp4 -vf scale=w=200:h=100 out/out.mp4
vf表示视频过滤器(video filter),该操作中由于宽高比和原来的视频不同,会造成像素的宽高比不同,通过ffprobe查看显示视频的采样宽高比(Sample Aspect Ratio)由原来的1:1变成8:9,后续会对SAR和DAR进行具体介绍。
![7ed85b4ee20b35d00a0092f4c6c0d0e9.png](https://i-blog.csdnimg.cn/blog_migrate/06868d43a539fbb0ecf34bdf8f2bad46.jpeg)
输出视频信息
如果想要保持原来的宽高比,可以传递-1作为参数,使用iw和ih分别表示原来视频的宽度和高度。如下指令生成的视频的宽度为原来的1.5倍,但是限制视频的最大宽度为500像素。
fmpeg -i res/test.mp4 -vf scale=w='min(500, iw*3/2):h=-1' out/out.mp4
裁剪视频
裁剪的意思就是从原来的视频中截取矩形区域生成新视频,需要用到crop过滤器。
![4bbfec141a39acf71728c125194970be.png](https://i-blog.csdnimg.cn/blog_migrate/b073ec1d6403ebee76b021903c448e8e.jpeg)
裁剪示意图
蓝色部分表示原视频的区域,紫色部分表示生成视频的区域,主要涉及六个参数。
iw表示输入视频的宽度。
ih表示输入视频的高度。
ow表示输出视频的宽度。
oh表示输出视频的高度。
x表示水平位置,默认数值为(ih - oh) / 2 。
y表示竖直位置,默认数值为(ih - oh) / 2 。
去掉原视频的上边沿和左边沿,留下100x100的区域。
ffmpeg -i res/test.mp4 -vf crop=w=100:h=100:x=12:y=34 out/out.mp4
截取中间区域,视频长度和宽度分别为原来的2/3大小。
ffmpeg -i res/test.mp4 -vf crop=2/3*iw:2/3*ih out/out.mp4
通过对视频进行缩放操作,可以改变视频的大小,对视频进行裁剪操作,可以保留视频中有用的区域。