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

Flutter集成FFmpeg包实现RTSP视频流录制时遇编译错误求助

Flutter集成FFmpeg包实现RTSP视频流录制时遇编译错误求助

嘿,最近在Flutter项目里用FFmpeg包做RTSP视频流录制的时候,踩了个编译错误的坑,折腾了好一会儿才搞定,把问题和解决方法分享给大家,希望能帮到同处境的朋友。

先给大家看看我碰到的错误信息:

编译时弹出的错误内容:

Launching lib\main.dart on SM X115 in debug mode... 
C:\Users\hp\AppData\Local\Pub\Cache\hosted\pub.dev\ffmpeg_kit_flutter_full_gpl-6.0.3\android\src\main\java\com\arthenica\ffmpegkit\flutter\FFmpegKitFlutterPlugin.java:157: error: cannot find symbol     
public static void registerWith(final io.flutter.plugin.common.PluginRegistry.Registrar registrar) {                                                                                  
^   
symbol:   class Registrar   
location: interface PluginRegistry

问题原因

这个错误其实就是版本兼容问题:我用的FFmpeg Kit版本(6.0.3)里的代码还在使用旧的Flutter Android插件注册方式——Registrar接口,但这个接口在新版的Flutter或者Android Gradle插件里已经被废弃/移除了,所以编译器找不到这个类,直接报错。

解决方法

我试了几个方案,都能解决问题,大家可以根据自己的项目情况选:

  • 方案一:升级FFmpeg Kit到最新稳定版
    新版的FFmpeg Kit已经适配了新的Flutter插件注册规范,不再依赖Registrar了。打开项目根目录的pubspec.yaml,把FFmpeg的依赖改成最新版(可以查pub.dev上的最新稳定版号,比如当前是6.1.0左右):

    ffmpeg_kit_flutter_full_gpl: ^6.1.0
    

    然后执行flutter pub get更新依赖,再跑flutter clean清理缓存,重新编译应该就没问题了。

  • 方案二:调整Android项目配置兼容旧接口
    如果不想升级FFmpeg包,那可以调整Android端的配置:

    1. 打开android/app/build.gradle,把compileSdkVersion和targetSdkVersion调整到33以上(适配新版Android规范);
    2. 打开android/build.gradle,把ext.kotlin_version改成较新的版本,比如1.8.0;
    3. 同样执行flutter clean后重新编译。
  • 方案三:降级FFmpeg Kit到兼容旧Flutter版本的版本
    如果你的Flutter SDK版本比较旧,不想升级Flutter的话,可以降级FFmpeg Kit到5.x的版本,比如5.1.0,在pubspec.yaml里指定:

    ffmpeg_kit_flutter_full_gpl: ^5.1.0
    

    然后执行flutter pub get更新,清理缓存后编译即可。

备注:内容来源于stack exchange,提问作者Brijesh Gangwar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:14:50