问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

FFmpeg 视频压缩完全指南:常用命令行参数详解

创作时间:
作者:
@小白创作中心

FFmpeg 视频压缩完全指南:常用命令行参数详解

引用
1
来源
1.
https://m.jianlu365.com/info/1226.html

FFmpeg 是一个强大的开源多媒体框架,广泛应用于音视频的录制、转换和流式传输。在视频压缩领域,FFmpeg 提供了丰富的参数选项,让用户能够在保持视频质量的同时,有效地减小文件大小。本文将详细介绍 FFmpeg 中常用的视频压缩参数及其使用方法。

1. 使用 CRF (Constant Rate Factor) 控制质量

CRF 是一个非常重要的参数,它可以在保持视觉质量的同时有效减少文件大小。较低的 CRF 值意味着更高的质量(但更大的文件),而较高的 CRF 值则表示更低的质量(更小的文件)。

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium output.mp4
  • -crf:设置 CRF 值,默认为 23;范围通常在 18 到 28 之间。
  • -preset:控制编码速度与压缩比之间的平衡,从 ultrafastveryslow 不等,medium 是默认值。

2. 设定最大比特率

限制输出视频的最大比特率可以帮助控制最终文件的大小。

ffmpeg -i input.mp4 -b:v 500k output.mp4
  • -b:v:设定视频比特率,单位可以是 kbps 或 Mbps。

3. 调整分辨率

降低视频分辨率也是减小文件大小的有效方法之一。

ffmpeg -i input.mp4 -vf "scale=1280:720" output.mp4
  • -vf "scale=width:height":指定新的宽度和高度。

4. 使用两遍编码提高效率

对于需要更高效压缩的情况,可以采用两遍编码的方式。

ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -pass 1 -an -f mp4 /dev/null && \
ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -pass 2 -c:a aac output.mp4
  • -pass 1-pass 2:分别执行第一遍和第二遍编码。
  • -an:跳过音频处理(在第一次通过中不需要)。

5. 移除音频轨道

如果不需要音频,可以直接移除以进一步减小文件大小。

ffmpeg -i input.mp4 -vn -c:a copy output-audio-only.mp4
  • -vn:不复制视频流。
  • -c:a copy:直接复制音频流而不重新编码。

6. 设置关键帧间隔

关键帧间隔影响到视频解码的效率,适当调整可以优化压缩性能。

ffmpeg -i input.mp4 -g 60 output.mp4
  • -g:设置 GOP 大小(即两个关键帧之间的最大帧数)。

7. 调整音频比特率

如果需要压缩音频部分,也可以单独设置其比特率。

ffmpeg -i input.mp4 -b:a 128k output.mp4
  • -b:a:设定音频比特率。

对于不同的源视频,可能需要试验不同的参数组合来找到最合适的压缩方案。如果您的目标是用于网络传输或移动设备播放,考虑遵循特定平台推荐的编解码器和格式规范。通过合理配置上述参数,您应该能够根据自己的需求有效地压缩视频文件。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号