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

基于Agora实现的Flutter视频会议App能否推流直播到Facebook?

有成熟可落地的实现方案,不需要重构你现有基于Agora的Flutter直播/会议代码,核心依托Agora原生的旁路推流能力对接Facebook Live的RTMP接入入口即可实现。

核心实现逻辑

Agora的音视频服务本身支持将频道内的实时音视频流转码为标准RTMP协议流,直接推送到兼容RTMP接入的第三方直播平台;而Facebook Live官方开放了RTMP推流的接入入口,两者协议完全兼容,不需要额外部署中转服务。

落地步骤
    1. 前置准备
      首先在Agora控制台打开对应项目的旁路推流功能开关,这个功能是Agora原生自带的,不需要额外集成SDK,你现有项目里已经集成的Agora Flutter SDK本身就包含对应调用接口。
    1. 获取Facebook侧推流凭证
      引导用户完成Facebook账号授权后,调用Facebook开放平台的直播创建接口,生成单次直播有效的RTMP推流地址与流密钥,拼接为完整的推流URL,格式一般为rtmp://live-api-s.facebook.com:80/rtmp/[流密钥]。注意这个凭证每次开播都会刷新,不能重复使用。
    1. Flutter端推流逻辑实现
      不需要引入额外的第三方推流库,直接调用Agora SDK的现有接口即可:
    • 主播在Agora频道内成功开播后,调用startRtmpStreamWithTranscoding方法,传入拼接好的Facebook RTMP地址启动推流
    • 如果需要适配Facebook的直播展示规则,可以通过LiveTranscoding配置项自定义混流参数:包括输出分辨率、码率、帧率、多连麦用户的画面布局、水印、全局音量等,推荐参数设置为720P分辨率、3000kbps码率、30fps,符合Facebook的直播画质要求,避免被平台二次压缩导致模糊
    • 直播过程中通过onRtmpStreamingStateChanged回调监听推流状态,处理推流中断、网络波动重连等逻辑,同步状态给前端用户
    • 直播结束时调用stopRtmpStream方法终止向Facebook的推流,同时调用Facebook接口结束对应直播实例即可
踩坑提示
  • 不要使用过期的Facebook推流密钥,每次开播前必须重新拉取新的凭证,否则会直接推流失败
  • 如果你的服务面向海外用户,不需要额外做网络中转,Agora的海外节点和Facebook RTMP接入点的网络连通性是稳定的
  • 涉及Facebook账号授权、直播权限申请的部分,需要严格遵守Facebook开放平台的隐私政策,提前申请publish_video等必要权限,避免应用审核被拒

推流失败优先排查两个点:一是RTMP地址拼接是否正确、密钥是否在有效期;二是Agora侧的旁路推流功能是否已经开通,对应AppID有没有配置功能权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:25:32