FFmpeg 常用命令速查
摘要
FFmpeg 是一个开源、免费媒体处理工具,能转换、剪辑、合并、压缩以及流式传输几乎所有格式的音频、视频和图片。
基础入门#
FFmpeg 没有UI界面,需要通过命令行来操作,命令看起来复杂,其实只要先记住一个固定模板:
示例:
这个例子做的事,就是把一个名叫 input.mp4 的视频,从第10秒开始复制,直到视频结束,复制成一个名叫 output.mp4 的视频。由于没有重新编码,所以速度极快,很适合修剪片头片尾。
命令选项#
FFmpeg 的参数组合几乎无穷无尽,本文只记录了常用的命令选项,可满足大部分日常使用场景。
1. 全局选项#
参数 | 说明 |
|---|---|
-y | 自动覆盖输出文件 |
2. 输入选项#
参数 | 说明 |
|---|---|
-ss | 从指定时间开始读取,格式如 |
-t 30 | 读取指定时长,从当前位置往后读取 30 秒,格式同上 |
-to 30 | 从 0 秒开始,读到第 30 秒,格式同上 |
3. 输出选项#
参数 | 说明 |
|---|---|
-c:v libx264 | 指定视频编码器 |
-c:a aac | 指定音频编码器 |
-c copy | 不重编码,直接复制流 |
-crf 23 | 视频质量,越小越清晰,取值范围: |
-r 30 | 输出帧率,表示输出文件要每秒 30 帧 |
-b:v 2000k | 控制视频输出码率,2000k约 2 Mbps,也可以直接写2M |
-vf scale=1920:1080 | 调整视频,scale是缩放。 |
-af volume=1.5 | 调整音频,volume音量从1开始放大到1.5倍,还可以淡入淡出,变速等 |
-an | 去掉音频 |
-vn | 去掉视频 |
常用命令速查#
格式转换#
把 mov 格式转换为 mp4 ,其他格式同理
视频压缩#
用 H.264 压缩视频,-crf 23 是默认值,适合日常使用。 -crf 18 接近视觉无损
还可以加入 -preset 参数。编码越快,文件越大,编码越慢,文件越小。
从快到慢:ultrafast → superfast → veryfast → faster → fast → medium → slow → slower → veryslow → placebo
修改分辨率(视频/图片都支持)#
把宽度改成 1280,高度会自动按照比例调整。反过来 -1:1280 也是同理
调整码率#
把视频码率设为 2 Mbps,音频码率设为 128 kbps。调整码率也是一个压缩视频的有效方法。
截取视频片段#
从第 10 秒截取到第 30 秒,不重编码,速度很快。
提取音频#
从视频里提取音频,copy方式导出,不丢失质量。
去掉音频#
保留视频,去掉音频。
视频截图#
在 1 分 30 秒处截取一张图片,适合做封面。
合并视频#
需要先定义一个文本文件 list.txt 内容示例:
视频数量不多可以手动创建,也可以通过脚本生成
生成后执行合并:
不太常见但挺实用的功能#
直接从视频里提取封面#
很多视频文件内嵌了封面图(比如音乐 MV),可以用:
静音检测可以自动剪掉空白段#
参数含义:
stop_periods=-1:处理整个文件(包括中间和结尾的静音)。stop_duration=0.8:静音持续超过 0.8 秒才删。stop_threshold=-35dB:低于这个音量算静音。
这条命令可以自动剪掉视频里的沉默部分, 直接输出一个剪掉静音的新文件,做口播剪辑很省事。
视频格式科普#
MP4 那么通用,其他格式存在的意义是什么?#
容器 | 能装什么 | 适合场景 |
|---|---|---|
MP4 | 视频、音频、普通字幕 | 日常分享、上传平台 |
MKV | 多音轨、多字幕、章节、FLAC | 高清电影收藏,不同国家语言字幕都可以塞进去 |
MOV | 专业编码、透明通道、编辑信息 | 苹果剪辑工作流,透明背景的视频你肯定没见过 |
WebM | VP9/AV1、Opus | 和webp是兄弟,又小又清晰,浏览器上好用,本地一般不兼容 |
TS | 切片、抗传输错误 | 直播、HLS、在线看剧就是一集分成几百个这种格式的片段 |
撒花
