阿里云视频直播提供的是触发式的推流与播放,您无需提前创建资源,只要添加经过备案的推流域名和播流域名,并完成域名解析、鉴权等操作,即可根据地址拼接规则快速地拼接出对应的推流地址和播放地址。本文介绍推流地址和播放地址的拼接规则,及使用方法。

拼接规则

一个直播服务地址(推流地址和播放地址)的生成采用域名(Domain)、应用(AppName)、直播流(StreamName)三级直播管理单元,每个域名(Domain)下可创建多个应用(AppName),每个应用下可创建多个直播流(StreamName)。

AppName与StreamName可自定义修改。不同的值生成不同的推流和播放地址。

在拼接地址前,您需要判断直播流是否经过转码,是否进行鉴权,并准备好直播流的推流域名、播流域名、Appname(应用)、StreamName(直播流)、转码模板ID(如有)和鉴权串(如有)。

说明 鉴权串是根据鉴权算法得出的一个加密字符串。
  • 推流地址(鉴权):推流域名+Appname(应用)+StreamName(直播流)+鉴权串
  • 播放地址(鉴权):播流域名+Appname(应用)+StreamName(直播流)+鉴权串
  • 转码流地址(鉴权):播流域名+Appname(应用)+StreamName(直播流)+_+转码模板ID+鉴权串
  • 推流地址(未鉴权):推流域名+Appname(应用)+StreamName(直播流)
  • 播放地址(未鉴权):播流域名+Appname(应用)+StreamName(直播流)
  • 转码流地址(未鉴权):播流域名+Appname(应用)+StreamName(直播流)+_+转码模板ID

前提条件

在获取推流地址或播放地址前,需要先完成以下操作:

  1. 添加域名

    您需要先添加经备案的推流域名和播流域名。了解添加域名流程请参见添加域名,具体操作请参见添加域名配置CNAME域名解析

  2. 关联域名

    添加域名后,您需要将推流域名和播流域名进行关联,才能进行推流和播流操作。了解关联域名流程请参见关联域名,具体操作请参见关联推流和播流域名

  3. 配置鉴权
    鉴权功能默认为开启状态,建议您保持开启状态,否则会出现直播被盗录、盗播的风险。您可以使用默认的鉴权设置,也可以进行自定义设置。了解鉴权请参见URL鉴权,具体操作请参见配置URL鉴权
    说明 如果您因为特殊场景推流地址不能加鉴权,想要关闭鉴权功能,请了解盗刷风险并签署《直播服务关闭URL鉴权免责协议》。
  4. 配置可选功能。

获取推流地址和播放地址

您可以选择控制台或手动拼接的方式获取推流地址和播放地址。

  • 控制台

    您可以在控制台的地址生成器页面,选择需要配置的播流域名和与之关联的推流域名,并填写AppName、StreamName,若此AppName配置了转码模板,还可选择转码模板,单击开始生成即可生成推流地址和播放地址。具体操作,请参见地址生成器

  • 手动拼接

    手动拼接需要提前查询好拼接地址所用信息。

    • 已关联的推流域名、播流域名
    • AppName、StreamName
    • 鉴权串(若鉴权则需要)
      • 可在控制台的域名管理 > 域名配置 > 访问控制页面的URL鉴权页签中生成,请参见配置URL鉴权
      • 也可通过md5算法计算,请参见鉴权URL
    • 转码模板ID(若转码且为播放地址则需要)
      • 可在控制台的域名管理 > 域名配置 > 转码模板配置页面查看已添加的转码模板的ID,或添加转码模板并获取转码模板ID。
      • 可以通过API获取模板ID。

        调用DescribeLiveStreamTranscodeInfo接口,系统返回转码模板ID。

        另外,自定义模板是用户自行添加的模板,根据添加的字段配置而成,自定义模板的ID是在。获取自定义模板调用AddCustomLiveStreamTranscode接口时配置的。

批量构造推流地址和播放地址

创建一个直播活动首先需要一个直播流的推流地址和播放地址,阿里云直播服务提供的是触发式的活动创建方式,不用使用任何接口,根据活动创建规则即可批量完成创建。

推流地址可以根据规则进行批量创建,并同时执行直播活动。进行批量直播活动时需要注意直播每个域名对并发流是有限制的,每个域名限制20路并发流,10路转码流,进行批量直播活动时先确认当前限制是否满足您的需求。如不满足,您可提交工单

  • 批量构造推流地址

    AppName与StreamName可自定义修改。不同的值生成不同的推流和播放地址。

    • 您可以在一个应用下创建多个直播流。

      如有一应用,名称为live,在live下您可创建多条直播流。推流地址为:

      rtmp://推流域名/{live}/{1}?鉴权串

      rtmp://推流域名/{live}/{2}?鉴权串

      rtmp://推流域名/{live}/{3}?鉴权串

    • 您也可以创建多个以应用为主的直播流。
      说明 视频直播根据流名称(StreamName)而不是根据应用名称(AppName)来判断直播流是否唯一。如果您设置了不同的应用名称,还要保证流名称不同,才能保证最终的直播流不同。

      rtmp://推流域名/{live1}/{Stream1}?鉴权串

      rtmp://推流域名/{live2}/{Stream2}?鉴权串

      rtmp://推流域名/{live3}/{Stream3}?鉴权串

  • 批量构造播放地址

    推流地址为:rtmp://推流域名/{live}/{3}?鉴权串

    对应的播放地址为:
    • RTMP:rtmp://播流域名/{live}/{3}?鉴权串
    • FLV:http://播流域名/{live}/{3}.flv?鉴权串
    • HLS:http://播流域名/{live}/{3}.m3u8?鉴权串
    • UDP:artc://播流域名/{live}/{3}?鉴权串

地址示例

说明 本文示例中以如下信息为例,形成的推流地址和播放地址仅供参考。
  • 推流域名:push.a.com
  • 播流域名:play.a.com
  • AppName:app
  • StreamName:stream
  • 转码模板ID:sd

您实际使用的推流地址和播放地址,需要用您自己的推流域名、播流域名、AppName、StreamName以及鉴权获得的对应鉴权串,并按照拼接规则来获取。

是否鉴权 地址类型 是否转码 示例
推流地址 不涉及 直播只支持RTMP格式推流。

rtmp://push.a.com/app/stream?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****

播放地址 原画

播放地址支持RTMP、FLV、HLS、UDP格式。UDP格式即低延迟直播RTS使用地址,需提前开通RTS服务。

  • RTMP:rtmp://play.a.com/app/stream?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
  • FLV:http://play.a.com/app/stream.flv?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
  • HLS:http://play.a.com/app/stream.m3u8?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
  • UDP:artc://play.a.com/app/stream?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
转码 播放地址支持RTMP、FLV、HLS、UDP格式,UDP格式即低延迟直播RTS使用地址,需提前开通RTS服务。不同的转码需要在StreamName后加_模板ID
  • RTMP:rtmp://play.a.com/app/stream_sd?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
  • FLV:http://play.a.com/app/stream_sd.flv?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
  • HLS:http://play.a.com/app/stream_sd.m3u8?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
  • UDP:artc://play.a.com/app/stream_sd?auth_key=160871****-0-0-4c027af1df9237568c7035c290b0****
推流地址 不涉及 直播只支持RTMP格式推流。

rtmp://push.a.com/app/stream

播放地址 原画 播放地址支持RTMP、FLV、HLS、UDP格式,UDP格式即低延迟直播RTS使用地址,需提前开通RTS服务。
  • RTMP:rtmp://play.a.com/app/stream
  • FLV:http://play.a.com/app/stream.flv
  • HLS:http://play.a.com/app/stream.m3u8
  • UDP:artc://play.a.com/app/stream
转码 播放地址支持RTMP、FLV、HLS、UDP格式,UDP格式即低延迟直播RTS使用地址,需提前开通RTS服务。不同的转码需要在StreamName后加_模板ID
  • RTMP:rtmp://play.a.com/app/stream_sd
  • FLV:http://play.a.com/app/stream_sd.flv
  • HLS:http://play.a.com/app/stream_sd.m3u8
  • UDP:artc://play.a.com/app/stream_sd