下载地址:https://ffmpeg.org/download.html
然后按照下图点击,找到Release部分下载一个即可。
所谓安装就是解压并配置“path”环境变量
将安装包解压至任意目录,比如我这里是D:\Program\ffmpeg-5.0.1-full_build
按照以下顺序点击:“此电脑(右键)——属性——高级系统设置——环境变量”
然后把ffmpeg.exe
所在路径,即D:\Program\ffmpeg-5.0.1-full_build\bin添加到Path中,之后一路确定即可。
验证安装:
打开cmd,输入ffmpeg
,出现正常的程序说明,就表明安装成功了
官方使用说明:https://ffmpeg.org/ffmpeg.html
ffmpeg -i input.mp4
显示如下:
从上面可以得到如下信息:
视频编码:h264
色彩格式:yuvj420p
色域范围:bt709
分辨率:1080x1920(width x height)
视频码率:14309 kbps
帧率:30 fps
音频编码:aac
音频码率:115 kbps
音频采样率:44100 Hz
ffmpeg -i input.mp4 -y output.avi
-i:指定输入
-y:输出如果重名直接覆盖
ffmpeg -i input.mp4 -vcodec copy -acodec copy output.avi
-vcodec copy:拷贝视频
-acodec copy:拷贝音频
ffmpeg -i input.mp4 -r 10 -y output.mp4
-r 10:将输出帧率改为10 fps
比如使用h265编码
ffmpeg -i input.mp4 -vcodec libx265 -y output.mp4
之后再查看视频信息可以看到(hevc = h265):
Stream #0:00x1: Video: hevc (Main) (hev1 / 0x31766568)
ffmpeg -i input.mp4 -crf 35 -y output.mp4
或
ffmpeg -i input.mp4 -qp 30 -y output.mp4
QP(Quantization Parameters)和CRF(Constant Rate Factor)都是数值越小画质越好,数值越大画质越差。
QP在整个编码中使用相同的量化参数。
而CRF则具备自适应调节QP的能力,在画面运动比较强的时候使用高QP,在画面运动比较小的时候使用低QP。因为当画面运动比较强的时候,人的注意力常常不会被画质所吸引,所以QP大一些,也就是说画质差一些,不会造成太大的主观体验上的影响;反之当画面运动很小时,人的注意力有充分的空闲去注意画质问题,此时需要QP小一些,画质好一些,以避免带来糟糕的主观体验。另外与CRF名字呼应的一点,画面运动强时,视频片段倾向于有比较高的码率,使用大的QP有助于降低码率;画面运动小时,视频片段倾向于有比较低的码率,使用小QP可以提升一些码率,所以整体而言CRF会起到稳定码率的作用。
一般来说,使用CRF的情况多于QP,如果不是对QP有特定需求,那么首选CRF模式。在几乎相同的视觉效果的情况下,CRF一般比QP能节省一些码率。
关于CRF的取值范围和默认值可参考如下:
QP在libx264
情况下取值范围也是0-51。
ffmpeg -i input.mp4 -b:v 5M -y c.mp4
其中关键性的参数是-b:v 5M
,指输出码率限制在5M bps。
但请注意,这个模式只是控制视频最终的码率,并不意味着视频中码率一直保持固定值,事实上在这个模式下,视频码率变化反而会有一些不受控,有时(特别是每个转场后clip的初始一些帧)会特别低。
ffmpeg -i input.mp4 -ss 0:0:5 -t 0:0:4 -y output.mp4
-ss:指定截取的起始时间点,格式是hh:mm:ss
-t:截取的持续时间(duration),格式也是hh:mm:ss;或者简单写一个数字,单位是秒。
ffmpeg -i input.mp4 -vf crop=500:1000:0:0 -y output.mp4
-vf 表示设置video相关的filters
crop后面的参数格式是width:height: x:y。width和height是输出视频的宽高;x,y是输出视频的左上顶点的坐标。
ffmpeg -i input.mp4 -vf rotate=PI/4 -y output.mp4
rotate:以视频中心为旋转点,顺时针旋转视频,视频原本的宽高保持不变,所以旋转后视频会有内容缺失以及黑边。
ffmpeg -i input.mp4 -vf scale=360:540 -y output.mp4
ffmpeg -i input.mp4 -vf scale=360:-1-y output.mp4
scale:格式是 width:height,其中一项可以设置成-1,此时会根据另一条边的比例自动计算。
ffmpeg -i input.mp4 .\temp\frame_%3d.png
帧号从1开始计数,路径必须已经存在
FFmpeg 视频处理入门教程
FFmpeg的安装与基础使用教程
CRF Guide (Constant Rate Factor in x264, x265 and libvpx)
Understanding Rate Control Modes (x264, x265, vpx)
FFmpeg VBR Settings
H.264 Video Encoding Guide
you shouldn’t use ABR ever.