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

如何通过OBS推流至Agora并在Flutter App中播放直播流?

基于Agora的直播流搭建步骤

一、Agora平台配置

  • 注册Agora账号并创建直播项目,获取App ID和临时Token(生产环境需自行生成安全Token,避免使用临时Token)
  • 在Agora控制台开启RTMP推流功能,生成专属推流地址(格式示例:rtmp://push.agora.io/live/your_stream_name?token=your_token)

二、OBS推流设置

  • 打开OBS,进入「设置」-「推流」面板
  • 服务选择「自定义」,将Agora生成的RTMP地址填入「服务器」栏,串流密钥按控制台提示填写(部分场景需将流名拆分作为密钥)
  • 调整视频参数(建议匹配Agora默认配置:1080p分辨率、30fps帧率),点击「开始推流」,确认Agora控制台显示推流状态正常

三、Flutter端播放实现

方案1:Agora官方媒体播放器

  • 在Flutter项目的pubspec.yaml中添加agora_rtc_engine依赖并执行flutter pub get
  • 初始化Agora引擎:
    await AgoraRtcEngine.createWithConfig(RtcEngineConfig(your_app_id));
    
  • 创建媒体播放器实例并播放:
    final player = AgoraMediaPlayer();
    await player.open(url: 'http://pull.agora.io/live/your_stream_name.m3u8', startPos: 0);
    await player.play();
    
  • 通过AgoraVideoView组件绑定播放器,在UI中展示视频画面

方案2:第三方简易播放器

  • 添加chewie(基于video_player的封装,更易用)依赖到pubspec.yaml
  • 直接传入Agora生成的HLS拉流地址初始化播放器:
    final videoController = VideoPlayerController.network('http://pull.agora.io/live/your_stream_name.m3u8');
    await videoController.initialize();
    final chewieController = ChewieController(
      videoPlayerController: videoController,
      autoPlay: true,
      looping: false,
    );
    
  • 使用Chewie组件在页面中渲染播放器(注意iOS需配置ATS允许HTTP访问,Android需添加网络权限)
替代方案推荐

1. Amazon IVS

  • 操作流程:AWS控制台创建IVS频道,获取RTMP推流地址与密钥,OBS推流后,通过IVS生成的HLS地址在Flutter端播放(可使用官方amazon_ivs_player插件或video_player)
  • 核心优势:自动多码率适配,低延迟模式延迟可达2-5秒,无缝集成AWS生态服务

2. Azure Media Services

  • 操作流程:创建AMS账户与直播端点,获取RTMP推流地址,OBS推流后生成HLS/DASH拉流地址
  • 核心优势:具备专业媒体处理能力(转码、DRM保护),支持多CDN分发,适合企业级直播场景

3. 阿里云直播

  • 操作流程:阿里云控制台创建直播域名,生成推流/拉流地址,OBS推流后用HLS地址在Flutter端播放
  • 核心优势:国内节点覆盖广,访问速度快,延迟低,适合面向国内用户的直播业务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:40:30