跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

FFmpeg 全面教程:从安装到高级应用

文章目录 一、下载与安装(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 获取更多高级用法。

相关文章