You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安卓端使用FFMPEG压缩视频时如何兼顾压缩速度与视频质量

安卓FFmpeg视频压缩优化建议

1. 更换更高效率的视频编码器

你当前使用的mpeg4是老旧的编码标准,压缩效率低,同等画质下体积更大。建议更换为H.264编码:

  • 软编场景使用libx264,压缩效率比mpeg4高40%以上,同画质下体积更小
  • 追求速度可以调用安卓系统硬件编码器h264_mediacodec,压缩耗时可以降低60%以上,完全调用GPU硬件能力不占用CPU资源

2. 优化缩放参数,保证宽高比合规

你当前的scale=1280:-1仅能保证宽度固定为1280时高度按比例计算,但H.264等编码器要求视频宽高必须为偶数,很容易出现编码错误或异常拉伸。建议修改为:
scale=1280:-2
参数-2代表高度按比例计算后自动对齐到偶数,完全保留原始宽高比,不会出现变形。

3. 更换码率控制模式,提升画质稳定性

你当前使用的固定2M码率属于CBR模式,动态画面下容易糊,静态画面下又浪费体积。建议替换为CRF(恒定质量因子)模式:

  • 添加参数-crf 26,数值越低画质越高、体积越大,安卓端压缩推荐23~28区间,输出画质稳定且体积可控
  • 如果需要限制最高码率避免个别场景体积过大,可以搭配-maxrate 3M -bufsize 6M使用

4. 添加速度预设,平衡压缩速度和画质

libx264支持preset参数调整压缩速度,越靠后的预设压缩速度越快,同画质下体积会略有上升,移动端推荐使用:
-preset fast
如果对速度要求更高可以换成veryfast,压缩耗时可以再降30%,画质损失感知不明显。

5. 修正音频参数错误

你当前的-b:a 48000参数存在逻辑错误:-b:a是音频比特率参数,48000是采样率数值,正确的音频参数应该是:

  • 音频比特率:-b:a 128k 满足移动端播放音质需求
  • 音频采样率如果需要指定可以添加:-ar 48000

优化后代码示例

软编高画质版本(画质最优,兼容所有设备)

MediaModifierTypes.VIDEO_COMPRESS -> return arrayOf(
    "-y",
    "-i",
    videoPath,
    "-vf",
    "scale=1280:-2",
    "-vcodec",
    "libx264",
    "-crf",
    "26",
    "-preset",
    "fast",
    "-b:a",
    "128k",
    "-ar",
    "48000",
    outputFilePath
)

硬编高速版本(速度最快,适合高分辨率视频)

MediaModifierTypes.VIDEO_COMPRESS -> return arrayOf(
    "-y",
    "-i",
    videoPath,
    "-vf",
    "scale=1280:-2",
    "-vcodec",
    "h264_mediacodec",
    "-b:v",
    "2.5M",
    "-b:a",
    "128k",
    "-ar",
    "48000",
    outputFilePath
)

内容的提问来源于stack exchange,提问作者Ankit Ostwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:51:00