文章目录
- 一、ffmpeg安装
- 二、基本用法
- 1、文件格式转换
- 2、视频过滤器 filter
- 3、剪切
- 4、合并
- 5、音频过滤器
- 6、删除轨道
- 7、简单应用:录屏
一、ffmpeg安装
windows下可以上官网 https://www.ffmpeg.org/download.html下载:
下载好后,解压缩,将该文件的bin目录路径添加到环境变量的path中。
二、基本用法
打开windows的cmd命令行窗口,在其中可以输入以下命令:
1、文件格式转换
(1)ffmpeg -i 输入文件 输出文件
可以根据扩展名,转换视频文件格式,其中 -i 表示 input。
例:ffmpeg -i test.mp4 test.avi
注:视频文件格式比如mp4,实际上是一种封装格式或叫容器格式。它包含以下内容:
而其中的音频流和视频流又可以采用不同的编码格式。编码就是将每一帧的画面存储成二进制数据。目前mp4比较常用的编码格式是H264。
(2)可以手动指定编码器 -c:v(codec video)
例:ffmpeg -i test.mp4 -c:v libx264 test.avi
注:实际上libx264就是ffmpeg默认的用H264实现的编码器。而h264_nvenc可以用英伟达硬件加速。
(3)设置预设 -preset
例:ffmpeg -i test.mp4 -c:v libx264 -preset superfast test.avi
由上到下,编码速度越来越慢,文件大小越来越小。
(4)-crf(constant rate factor)
控制图像质量,取值为0 - 51,值越大,代表图像质量越差。其中0代表无损压缩,输出的文件较大。我们经常用到的范围是19 - 28
2、视频过滤器 filter
过滤器可以对视频图像进行变换,比如修改它的尺寸、裁剪、旋转、添加滤镜等。
另外还可以指定一系列的过滤器:
比如先将视频图像缩小为原来的0.5倍,再旋转90度。
-vf指定过滤器
(1)修改尺寸
例:ffmpeg -i test.mp4 -c:v libx264 -vf “scale=1024:576” test.avi
注:scale=长度:宽度,也可以scale=1024:-1,这样另一个尺寸会被自动推算。
(2)旋转视频
例:ffmpeg -i test.avi -c:v libx264 -vf “transpose=2” test.mp4
注:这里transpose=2表示逆时针旋转90°
(3)裁剪
例:ffmpeg -i test.avi -c:v libx264 -vf “crop=200:200:20:20” test.mp4
注:crop=w:h❌y,表示区域的宽和高,以及左上角的坐标。
也可以写成表达式的形式:ffmpeg -i test.avi -c:v libx264 -vf “crop=iw/3:ih/3” test.mp4
(4)过滤器可以相互组合
例:ffmpeg -i test.avi -c:v libx264 -vf “scale=1024:576,transpose=2” test.mp4
3、剪切
例:ffmpeg -i test.mp4 -c:v libx264 -ss 00:00:02 -t 3 test.avi
-ss 表示片段开始时间,需要放在 -i 后面,这样剪切位置比较准确
-t 表示片段的时长,格式可以用hh:mm:ss,也可以直接写秒数。
ffmpeg -i test.mp4 -c:v libx264 -ss 00:00:02 -to 00:00:03 test.avi
-to 用来指定片段终止位置
4、合并
首先要将所有的文件列举在一个文本中,
mylist.txt内容:
file ‘test1.mp4’
file ‘test2.mp4’
file ‘test3.mp4’
然后通过 -f concat 指定接下来输入的文件是一个视频列表。-i 输入文件。-c copy 不重新编码,直接复制原始视频的数据。完整命令如下:
ffmpeg -f concat -i mylist.txt -c copy output.mp4
5、音频过滤器
参数 -af
(1)调节音量大小 volume
例:ffmpeg -i test.mp4 -af “volume=1.5” output.mp4
(2)统一视频音量 loudnorm
例:ffmpeg -i test.mp4 -af “loudnorm=I=-5:LRA=1” output.mp4
6、删除轨道
-an 删除音频轨
-vn 删除视频轨
-sn 删除字母
-dn 删除数据流
例:ffmpeg -i test.mp4 -an output.mp4
7、简单应用:录屏
(1)全屏录屏
ffmpeg -f gdigrab -i desktop output.mp4
(2)指定区域录屏
ffmpeg -f gdigrab -framerate 30 -video_size 1920x1080 -i desktop output.mp4
按 ctrl + c 退出