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

如何配置flutter_ffmpeg启用lib*264解决视频压缩执行报错

Flutter_ffmpeg启用libx264编码解决视频压缩报错方案

首先修正两个直接触发报错的基础问题:

  • unrecognised option CRF报错由参数格式错误导致:CRF是FFmpeg的编码参数,必须加-前缀,正确写法为-crf。另外-crf 0是无损编码模式,输出文件体积极大,完全无法实现压缩效果,常规压缩场景建议取值23-28,数值越大压缩率越高、画质损失越明显。
  • unknown encoder libx264报错的核心原因是--enable-libx264是FFmpeg编译阶段的配置参数,无法在执行FFmpeg命令时追加生效。flutter_ffmpeg提供了预编译好的分发包,直接选用内置libx264支持的版本即可,不需要手动修改编译配置。

具体配置步骤

1. 替换依赖为带GPL协议的flutter_ffmpeg包

libx264是GPL许可的开源编码器,默认的min、https等版本包未内置该编码器,需要将pubspec.yaml中的依赖替换为带-gpl后缀的版本:

dependencies:
  # 替换原有默认的flutter_ffmpeg依赖,选用full-gpl版本即可,该版本内置几乎所有常见编码,包含libx264
  flutter_ffmpeg_full_gpl: ^0.4.2 # 版本号和你原项目使用的flutter_ffmpeg主版本保持一致即可

注意:使用带GPL后缀的包意味着你的项目需要遵守GPLv3许可协议的相关要求。

2. 平台端配置校验

  • Android端:不需要额外添加编译参数,full-gpl包已经默认开启--enable-libx264编译配置,只需要确认app/build.gradle中没有手动过滤x264相关的so库即可,修改依赖后执行flutter clean再重新编译。
  • iOS端:修改依赖后进入ios目录执行pod install --repo-update,确认Podfile中没有手动指定引入非GPL版本的flutter_ffmpeg子模块,安装完成后重新编译即可。

3. 修正后的压缩命令

依赖配置完成后,使用格式正确的命令执行压缩即可:

// 示例:crf取26,preset取medium,兼顾压缩速度、文件体积和画质
FFmpeg.execute('-i input.mp4 -c:v libx264 -crf 26 -preset medium output.mp4');

参数补充说明:

  • -preset为编码速度预设,可选值从快到慢为ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow,速度越慢同等画质下压缩率越高,可按需选择。
  • 如果需要同时压缩音频,可以追加-c:a aac -b:a 128k参数,指定音频编码为aac、码率128k。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:27:21