FFmpeg 的简单使用

FFmpeg 是一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。它是一个免费的开源程序库,提供命令行方式调用,专门用来编辑处理各种音视频或图像。FFmpeg 支持广泛的音频和视频格式,从古老的格式到最新的标准都能处理。

下载地址:ffmpeg-7.0.2-essentials_build

常用命令行参数

-c:指定编码器
-c copy:直接复制,不经过重新编码(这样比较快)
-c:v:指定视频编码器
-c:a:指定音频编码器
-i:指定输入文件
-an:去除音频流
-vn: 去除视频流
-preset:指定输出的视频质量,会影响文件的生成速度,有以下几个可用的值 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow。
-y:不经过确认,输出时直接覆盖同名文件。

常见用法

下面介绍 FFmpeg 几种常见用法。

查看文件信息

ffmpeg -i input.mp4

查看视频文件的元信息,比如编码格式和比特率,可以只使用 -i 参数。

ffmpeg -i input.mp4 -hide_banner

上面命令会输出很多冗余信息,加上-hide_banner参数,可以只显示元信息。

视频转换

1
2
3
4
5
6
7
ffmpeg -i input.mp4 output.avi

# 将高清视频转成 768p
# 如果你希望保持原始宽高比,使用 -vf scale=720:-1
# 指定视频编码器为 libx264,这是 H.264 编码器,适用于 MP4 格式。
# 指定音频编码器为 copy,表示直接复制输入文件中的音频流,不进行重新编码。
ffmpeg -i ".\zhangsan.mp4" -vf "scale=768:-1" -c:v libx264 -c:a copy dd.mp4

提取音频

我会优先使用 ogg,若论通用则依旧目前老牌的 mp3。

1
2
3
4
5
6
7
8
9
10
# 只视频里面提取音频(demuxing),-vn表示去掉视频,-c:a copy表示不改变音频编码,直接拷贝
ffmpeg -i input.mp4 -vn -c:a copy output.mp3

# 默认为 128 kbps 的 mp3
ffmpeg -i input.mp4 -vn output.mp3
# 指定了高品质的 192 kbps
ffmpeg -i input.mp4 -vn -b:a 192k output192.ogg

# 我综合测试下来 采用默认参数的 ogg 体积和播放质量都较好
ffmpeg -i input.mp4 -vn output.ogg