文章目录 一、下载与安装(Windows) 二、基础命令详解 2.1 视频调整大小 2.2 vob视频转MP4(重新编码) 2.3 提取音频部分(MP3格式) 2.4 视频切割 2.5 视频转GIF 三、高级应用 3.1 视频拼接 3.2 添加水印 3.3 提取关键帧 4. 屏幕录制 四、实用技巧 一、下载与安装(Windows) FFmpeg 是一个开源的音视频处理框架,可以录制、转换和流式传输音视频。
它支持几乎所有类型的媒体格式,提供强大的命令行工具和库,被广泛应用于视频处理、直播、转码等领域。
点击 官网 下载基础版本或者完整版本:
下载后解压,将bin文件夹路径加入系统环境变量中:
输入
ffmpeg -version
可以看到版本信息表示安装完成:
二、基础命令详解 2.1 视频调整大小
ffmpeg -i input.mp4 -vf "scale=960:540" output.mp4
-vf "scale=960:540"
:视频滤镜设置分辨率 保持宽高比:
scale=960:-1
(高度自动计算) 2.2 vob视频转MP4(重新编码)
ffmpeg -i input.vob -c:v libx264 -c:a aac -strict experimental output.mp4
-c:v libx264
:使用H.264视频编码
-c:a aac
:使用AAC音频编码 2.3 提取音频部分(MP3格式)
ffmpeg -i 机甲1.mp4 -vn -acodec libmp3lame -ab 320k 机甲1.mp3
-vn
:禁用视频流
-acodec libmp3lame
:指定MP3编码器
-ab 320k
:设置音频比特率 2.4 视频切割
# 切割时间段 (00:00:00 - 00:30:00)
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:30:00 -c copy part1.mp4
# 使用-t指定时长 (30分钟)
ffmpeg -i input.mp4 -ss 00:00:00 -t 1800 -c copy part1.mp4
-c copy
:不重新编码,直接复制原始视频和音频流(速度快,无损,但无法剪切精确到帧)。
ffmpeg -i input.mp4 -ss 00:15:30 -t 00:05:00 -c:v libx264 -c:a aac segment.mp4
适用于非关键帧位置切割 会重新编码,质量略有损失 2.5 视频转GIF
ffmpeg -i 密室6.mp4 -ss 431 -to 442 -vf "fps=10,scale=640:-1" -c:v gif video1.gif
-ss 431
:从431秒开始
-to 442
:到442秒结束
fps=10
:帧率10帧/秒
scale=640:-1
:宽度640px,高度自动计算
# `-loop 0`:无限循环
ffmpeg -i "水果缤纷.mp4" -ss 00:00:20 -to 00:00:28 -vf "fps=10,scale=640:-1" -loop 0 output.gif
如果要优化GIF大小,可以写作:
ffmpeg -i input.mp4 -ss 00:01:00 -t 10 -vf "fps=15,scale=500:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" output.gif
-vf
: 视频过滤器链参数,由多个滤镜组成,用逗号
,
分隔,主要完成以下操作: 降低帧率 (
fps=15
)**:将视频帧率从原始值(如 30 FPS)降低到 15 FPS ,减少 GIF 的帧数,降低文件体积,同时避免动画过快。
调整分辨率 (
scale=500:-1
)**:将视频宽度缩放到 500 像素 ,高度按原比例自动计算(
-1
表示保持宽高比),画面避免过大。
高质量缩放算法 (
flags=lanczos
)**:使用 Lanczos 重采样算法 进行缩放。
相比默认的缩放算法(如双线性插值),Lanczos 能更好地保留细节,减少图像模糊。
生成调色板 (
split[s0][s1];[s0]palettegen[p]
)**:将视频流分成两个副本
[s0]
和
[s1]
,然后用
[s0]
生成颜色调色板
[p]
。
通过分析视频颜色分布,创建一个最优的颜色索引表,减少 GIF 的颜色数量(默认 256 色),同时尽量保留色彩丰富度。
应用调色板 (
[s1][p]paletteuse
)**:将调色板
[p]
应用到视频流
[s1]
上。
确保生成的 GIF 使用有限的色彩(256 色)但尽可能接近原视频的视觉效果。
最后,推荐一个GIF文件处理网站 ezgif ,可以对视频进行转GIF进行各种处理,甚至是一帧帧选择要转为GIF的所有帧:
三、高级应用 3.1 视频拼接
# 创建文件列表
echo "file 'clip1.mp4'" > list.txt
echo "file 'clip2.mp4'" >> list.txt
# 拼接视频
ffmpeg -f concat -safe 0 -i list.txt -c copy output.mp4
3.2 添加水印
ffmpeg -i input.mp4 -i logo.png -filter_complex "overlay=W-w-10:H-h-10" output.mp4
在右下角添加水印(距离边缘10px) 3.3 提取关键帧
ffmpeg -i input.mp4 -vf "select='eq(pict_type,I)'" -vsync vfr thumbnails_%03d.jpg
4. 屏幕录制
ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 -preset ultrafast -crf 0 output.mp4
四、实用技巧 快速切割 :使用
-c copy
避免重新编码,速度极快 批量处理 :结合批处理脚本或PowerShell自动化任务 硬件加速 :使用
-hwaccel cuda
或
-hwaccel dxva2
加速处理 格式探测 :使用
ffprobe input.mp4
查看媒体详细信息 性能监控 :添加
-report
参数生成处理日志 常见问题解决: 编码问题 :使用
-c:v libx264 -pix_fmt yuv420p
确保兼容性 音频同步 :尝试
-async 1
参数 大文件处理 :使用分段处理或流式处理 质量优化 :调整CRF值(18-28范围,值越小质量越高) 提示 :使用
ffmpeg -h full
查看完整帮助文档,或访问 https://ffmpeg.org/ffmpeg.html 获取更多高级用法。
