banner
约 1,200 字
4 分钟

FFmpeg 视频处理教程:一条命令的剪辑室

摘要

FFmpeg 是命令行音视频处理的瑞士军刀。本教程依据 FFmpeg 官方文档,介绍安装、ffprobe 查看媒体信息、格式转换、crf 压缩参数、无损剪切与拼接(-c copy)、转 GIF、调分辨率等日常高频操作模板。

FFmpeg 视频处理教程:一条命令的剪辑室

FFmpeg 是命令行下的音视频处理之王:转格式、压缩、剪切片段、提取音频、录屏……几乎所有播放器和剪辑软件底层都有它。本教程依据 FFmpeg 官方文档(ffmpeg.org)整理。

一、安装

bash
sudo apt install ffmpeg      # Debian/Ubuntu
brew install ffmpeg          # macOS
winget install Gyan.FFmpeg   # Windows
ffmpeg -version              # 验证

二、查看文件信息

bash
ffmpeg -i video.mp4          # 输出码率、分辨率、编码、时长等详细信息
ffprobe -v quiet -print_format json -show_format -show_streams video.mp4

ffprobe 是专门"体检"媒体文件的工具,脚本处理前先用它确认格式。

三、格式转换(最常用)

bash
ffmpeg -i input.avi output.mp4          # AVI 转 MP4
ffmpeg -i video.mp4 -vn -b:a 192k out.mp3  # 提取音频为 MP3

想换编码格式(如转 H.265 减小体积),加 -c:v

bash
ffmpeg -i input.mp4 -c:v libx265 -crf 28 output.mp4

四、压缩视频:crf 是关键

-crf 控制质量与体积的平衡(x264 取值 0-51,越小质量越高):

bash
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac output.mp4

日常建议:-crf 20~23 视觉几乎无损且体积大幅缩小;追求更小就往 26 以上调。

五、剪辑与拼接

bash
# 截取第 1 分 30 秒开始的 60 秒
ffmpeg -ss 00:01:30 -i input.mp4 -t 60 -c copy clip.mp4

# 拼接多个视频(格式需一致)
ffmpeg -f concat -safe 0 -i list.txt -c copy merged.mp4

list.txt 内容为 file 'a.mp4' 每行一个。-c copy 表示直接拷贝流不重编码,速度快且零画质损失;注意它只能从关键帧切割,掐头去尾不精确时就去掉 -c copy 让它重编码。

六、常用杂技

bash
# 视频转 GIF(前 5 秒,缩到 640 宽)
ffmpeg -t 5 -i input.mp4 -vf "scale=640:-1" output.gif

# 压缩图片序列为视频
ffmpeg -framerate 24 -i frame_%04d.png -c:v libx264 out.mp4

# 调整分辨率到 1080p
ffmpeg -i input.mp4 -vf "scale=-2:1080" output.mp4

# 提取视频里的一帧当封面
ffmpeg -i input.mp4 -ss 00:00:05 -vframes 1 cover.jpg

七、总结

需求

命令要点

转格式

ffmpeg -i 输入 输出

压缩

-c:v libx264 -crf 23

提取音频

-vn -b:a 192k out.mp3

无损剪切

-ss 开始 -t 时长 -c copy

拼接

-f concat -i list.txt -c copy

转 GIF

-vf "scale=640:-1"

FFmpeg 命令参数虽多,但 90% 的日常需求就是上面这几条模板。记不住就存成书签,用到直接套。

END