You need to enable JavaScript to run this app.
文档中心
视频直播

视频直播

复制全文
下载 pdf
最佳实践
生成直播地址最佳实践
复制全文
下载 pdf
生成直播地址最佳实践

本文为您介绍直播推/拉流地址的生成方式及适用场景。

使用场景

  • 手动拼接:适合业务批量生成推拉流地址,使用视频直播提供的规则,无需调用接口,即可使用直播服务。
  • 地址生成器生成:适合生成单个直播流,无需代码基础,直接页面操作即可。
  • 使用 API 生成:适合于在应用程序中集成直播功能实现自动生成直播地址的场景。

背景信息

直播地址信息说明

直播地址通常由域名、AppNameStreamName 组成。如果您开启了 URL 鉴权,还包含鉴权信息。
Image
直播地址参数说明如下表所示。

参数

说明

域名

已添加的域名,生成推流地址时使用推流域名,生成拉流地址时使用拉流域名。

AppName

直播流的 AppName 标识,拉取指定推流时,推拉流地址的 AppName 需一致。

StreamName

直播流的 StreamName 标识,拉取指定推流时,推拉流地址的 StreamName 需一致。

说明

转码流的 StreamName源流 StreamNameSuffix 构成,其中 Suffix 为您转码配置中的转码后缀。

鉴权信息

参考配置 URL 鉴权了解 URL 鉴权组成并拼接鉴权信息。

直播地址组成规则

不同的传输协议对应不同的地址格式,其组成规则如下:

Image

  • RTMP 推流地址:rtmp://{推流域名}/{AppName}/{StreamName}?{鉴权信息},例如 rtmp://push.example.com/live/test?volcTime=1779888879&volcSecret=ff360d9438****99923713c2b24f7d3。如使用 OBS 推流,可使用 rtmp://{推流域名}/{AppName}/ 作为服务器地址,{StreamName}?{鉴权信息} 作为推流码。

    说明

    如需生成 RTMPS 推流地址,可将生成的 RTMP 地址的 rtmp:// 替换为 rtmps://

  • TS over SRT 推流地址:srt://{推流域名}:9000?streamid=#!::h={推流域名},r={AppName}/{StreamName},m=publish,{鉴权信息},例如 srt://push.example.com:9000?streamid=#!::h=push.example.com,r=live/test,m=publish,volcTime=1779888879,volcSecret=ff360d9438****099923713c2b24f7d3
  • RTMP over SRT 推流地址:rtmp://{推流域名}:1999/{AppName}/{StreamName}?{鉴权信息},例如 rtmp://push.example.com:1999/live/test?volcTime=1779888879&volcSecret=ff360d9438****99923713c2b24f7d3
  • RTM 推流地址:http(s)://{推流域名}/{AppName}/{StreamName}.sdp?{鉴权信息},例如 https://push.example.com/live/test.sdp?volcTime=1779888879&volcSecret=ff360d943867bc****23713c2b24f7d3
  • WebTransport 推流地址:https://{推流域名}/{AppName}/{StreamName}?{鉴权信息},例如 https://push.example.com/live/test?volcTime=1779888879&volcSecret=ff360d94386****99923713c2b24f7d3

注意

  • 如需使用 WebTransport 推流地址、HTTPS 推流地址,或在浏览器环境下推送 RTM 流,必须先开启推流域名的 HTTPS 安全加密。详见配置 HTTPS 安全加密
  • 如需包含鉴权信息,必须先开启推流域名的 URL 鉴权。详见配置 URL 鉴权

前提条件

  • 已添加推流域名和拉流域名,并完成域名的 CNAME 配置,参见添加域名配置 CNAME
  • 如需以下功能,请完成配置 HTTPS 安全加密
    • 使用视频直播控制台提供的在线推流工具
    • 使用 WebTransport 协议推流
    • 使用视频直播控制台提供的在线播放工具
    • 使用 HTTPS 推流地址或拉流地址
    • 在浏览器环境下推送或播放 RTM 流
  • 如需对推流地址或拉流地址进行 URL 鉴权,请完成配置 URL 鉴权
  • 如需生成转码流的拉流地址,请完成转码配置
  • 如需生成加密流的拉流地址,请完成加密配置

方法一:手动拼接

根据直播地址组成规则,您可以:

方法二:通过地址生成器生成

  1. 登录视频直播控制台,左侧导航栏选择直播工具 > 地址生成器,或直接进入地址生成器

  2. 根据页面提示选择地址类型域名,并填写自定义的 AppName、自定义的 StreamName 和过期时间。
    Image

    参数

    说明

    地址类型

    选择待生成的地址类型。

    • 推流地址:主播端使用推流地址将直播流推送至视频直播中心。
    • 拉流地址:观众端使用拉流地址将直播流从视频直播中心拉取到客户端播放。

    域名

    根据地址类型,选择推流域名或拉流域名。

    AppName

    填写直播流地址的 AppName 字段取值,默认使用 live,支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)、短横线(-)和句点(.)组成,长度为 1 到 30 个字符。

    StreamName

    填写直播流地址的 StreamName 字段取值,支持由大小写字母(A - Z、a - z)、数字(0 - 9)、下划线(_)和短横线(-)组成,长度为 1 到 100 个字符。

    过期时间

    选择生成地址的过期时间,超过过期时间后,将无法使用地址发起新的推拉流请求,过期前已发起的推拉流请求不受影响。

    注意

    仅当所选域名已开启 URL 鉴权时,才可设置过期时间。有关如何开启 URL 鉴权,详见配置 URL 鉴权

  3. 单击生成推流地址生成拉流地址,在生成结果中获取推流地址和拉流地址。

    • 推流地址:支持生成带 URL 鉴权的推流地址。当前通过地址生成器可生成的推流协议有 RTMPTS over SRTRTMP over SRTRTMWebTransport

      说明

      如果您使用 OBS 通过 RTMP 协议推流,可在生成结果中获取 OBS 推流地址OBS 串流密钥。其中,OBS 推流地址即 OBS 中填写的服务器OBS 串流密钥即 OBS 中填写的推流码

      Image
    • 拉流地址:支持生成带 URL 鉴权的源流拉流地址和转码流拉流地址。当前通过地址生成器可生成的拉流协议有 RTMPFLVHLS(M3U8)​RTM

      说明

      转码流地址页签下,您可以通过选择转码流后缀来获取不同的转码流地址。

      Image
  4. 您还可以:
    Image

    • 单击前往在线拉流图标在新页面中进行在线拉流。
    • 单击前往在线推流图标在新页面中进行在线推流。
    • 单击复制图标复制地址。
    • 单击二维码图标,保存二维码图片。
    • 单击页面右上方的历史记录,查看历史生成的地址记录。

方法三:调用 API 生成

  1. (可选)调用添加或更新推拉流鉴权接口,为域名开启并配置鉴权密钥。
  2. 调用生成推流地址接口生成推流地址。
  3. 调用生成拉流地址接口生成拉流地址。

说明

推荐您使用服务端 SDK 来调用 API。

地址生成代码示例

本节为您提供基于 Go、Python、Java、PHP 语言生成带鉴权的 RTMP 推流地址的原生代码示例。您可以根据地址拼接规则,自行实现其他协议地址的生成。

package main
   
   import (
      "crypto/md5"
      "fmt"
   )
   
   func main() {
      fmt.Println(GenAuthUrl("testDomain", "testApp", "testStream", "testsecretKey", 1636963457))
   }
   
   func GenAuthUrl(domain, app, stream, secretKey string, volcTime int64) string {
      src := fmt.Sprintf("/%s/%s%s%d", app, stream, secretKey, volcTime)
      sign := fmt.Sprintf("%x", md5.Sum([]byte(src)))
      return fmt.Sprintf("rtmp://%s/%s/%s?volcTime=%d&volcSecret=%s", domain, app, stream, volcTime, sign)
   }
        
最近更新时间:2026.06.23 15:17:53
这个页面对您有帮助吗?
有用
有用
无用
无用