You need to enable JavaScript to run this app.
导航
输入在线媒体流
最近更新时间:2025.08.14 15:33:37首次发布时间:2025.06.24 17:06:02
复制全文
我的收藏
有用
有用
无用
无用

功能介绍

通过输入在线媒体流功能,你可以在服务端将一个第三方在线媒体流(如直播 RTMP 流、点播 HLS 视频等)拉取并推送到 RTC 房间或推送到 WTN 进行再分发。

  • 推送到 RTC 房间:系统会使用你发起任务时指定的 ID 创建一个“虚拟用户”加入 RTC 房间。该媒体流会作为这个虚拟用户的音视频流进行发布,房间内的其他用户只需像订阅普通用户一样订阅这个虚拟用户,即可观看媒体流内容,实现一起看赛事、共享直播、音乐电台等互动场景。
  • 推送到 WTN:将在线媒体流直接推送到 WTN,用于大规模超低延时分发。

alt

应用场景

典型应用场景如下:

  • 一起看:在语聊房或视频房中,同步播放电影、短剧或体育赛事直播。
  • 直播内容共享:将第三方平台的活动直播嵌入到在线会议或互动课堂中。
  • 背景氛围:为房间持续播放背景音乐,或模拟一个 24 小时音乐电台。
  • 内容再分发:将一个已有的在线流(如 HTTP- FLV)拉取后,通过 WTN 网络进行超低延迟大规模分发。

使用限制

  • 待输入在线媒体流格式要求:HLS、RTMP、MP4、FLV、DASH、TS。
  • 编码格式要求:
    • 视频编码:H.264、ByteVC1(H.265)。
    • 纯音频编码:AAC、Opus。
  • 如源流为海外地址,为保障最佳体验,建议联系技术支持获取网络优化方案。

快速使用

推送到 RTC 房间

请确保你集成 RTC SDK,实现基本的音视频通话

  1. 开启服务与配置回调。

    1. 访问 RTC 控制台_功能配置,选择目标房间所属的 RTC 应用(即 AppId)。
    2. 单击在线媒体流页签,启用在线媒体流服务。
    3. (推荐)配置任务回调,获取在线媒体流任务执行结果(如成功、失败、结束)。
      单击回调设置页签,单击添加配置,按照界面提示设置回调事件、URL、密钥等。
  2. 在服务端发起任务。
    在你的业务后台,调用 StartRelayStream 启动一个在线媒体流输入任务。

    请求示例:以在房间中循环播放一个点播 MP4 视频为例

    其中,

    • AppId:RTC 应用的 ID。可在 RTC 控制台获取
    • UserId:需要你自定义。发起任务后,服务端会用该 ID 作为虚拟用户的身份加入 RTC 房间,客户端也可通过此 ID 订阅该流。
    • Token:客户端与业务服务端进行通讯时的身份认证凭证,需要你自己基于 RoomId 和 UserId 生成。Token 生成方法,请参见使用 Token 完成鉴权
    {
        "AppId": "661e****543cf",          // 必填,替换为实际应用 AppId
        "RoomId": "meeting_room_9527",     // 必填,替换为媒体流要输入的目标房间 ID
        "TaskId": "task_promo_video_01",   // 必填,自定义任务标识,用于后续的更新或停止
        "UserId": "Your_UserId",           // 必填,替换为你自定义的媒体流的“虚拟用户” ID
        "Token": "001661e****543cf80",     // 必填,为上述 UserId 和 RoomId 生成的有效 Token
        "MaxIdleTime": 300,                // 任务空闲超时时间(秒),超过此时间后,任务自动终止
    
        "Control": {
            "StreamUrl": "https://example.com/product_intro.mp4", // 替换为目标的在线流媒体地址
            "StreamMode": 0, // 流处理模式: 0-转码,1-转封装
            "Loop": true,  // 是否循环播放,源流为点播流时才生效
            // --- 以下为转码参数 (当 StreamMode 为 0 时生效) ---      
            "VideoWidth": 1280, 
            "VideoHeight": 720, 
            "FrameRate": 25, 
            "Bitrate": 1500
        }
    }
    
  3. 在客户端监听 onUserPublishStream,接收在线媒体流进房、发布等状态。

    当回调触发时,可通过检查参数 uid 是否为第 2 步中指定的 userId。如果是,则为服务端输入的在线媒体流。onUserPublishStream 具体说明,请参见平台的回调文档

推送到 WTN

  1. 开启服务。

    1. 访问 WTN 控制台_功能配置,选择目标 WTN 应用(即 AppId)。
    2. 单击在线媒体流页签,启用在线媒体流服务。
  2. 在服务端发起任务。
    在你的业务后台,调用 StartRelayStream 启动一个在线媒体流输入任务。

    请求示例:将一个 RTMP 直播流推送到 WTN。

    其中,

    • AppId:WTN 应用的 ID。可在 WTN 控制台创建并获取
    • WtnStreamId:自定义 WTN 流的 ID,用于标识要推送的流。
    • Token:需要你自己基于 WTN 的 AppID、StreamID、时间戳等参数生成。Token 的生成方法,请参见鉴权规则
    {
    "AppId": "661e****543cf",           // 必填,替换为实际 WTN 应用 AppId。
    "WtnStreamId": "wtn_live_stream_01",// 必填,目标 WTN 流 ID
    "Token": "001661e****543cf80",      // 必填,有效的鉴权 Token
    "MaxIdleTime": 300,                 // 任务空闲超时时间(秒)
    "Control": {
        "StreamUrl": "rtmp://example.com/live/stream", // 替换为目标的在线流媒体地址
        "StreamMode": 1, // 流处理模式: 1-转封装。假设源流为 H.264,无需转码
        "Loop": false
        }
     }
    

更多操作

  • 更新在线媒体流输入:调用 UpdateRelayStream 对已设定的媒体流参数进行更新。
  • 停止在线媒体流输入:调用 StopRelayStream 主动终止正在推送的在线媒体流。
  • 查询输入媒体流任务:调用 ListRelayStream 获取特定房间内所有在线媒体流的任务列表。