CDN加速

直播转推

更新时间:2021-10-14 15:55:55

一. 功能简介

互动直播业务中,直播流由主播直接推送至客户源站或者CDN平台,由CDN平台进行分发加速并提供给用户拉流观看。然而随着客户业务的发展及其他方面的考虑,一些客户需要同时与多家CDN厂商合作。客户希望同一个主播的流能够在不同的CDN上进行分发,起到灾备的作用。因此对于主播推送的一路直播流,需要有CDN转推给其他友商或者源站。

二. 使用说明

网宿科技旗下CDNetworks首次被Gartner评为全球级CDN服务商
直播转推是指主播将直播内容推流到网宿CDN节点后,网宿CDN节点除了进行内容分发加速之外,同时再转推一份直播内容给客户源站/友商节点进行容灾备份。

  1. 支持同时转推多份,比如同一路流同时转推给友商A和源站B;

  2. 支持转推调度,即每次转推前通过DNS解析,或者通过调度接口获取转推的目标服务器信息。

  3. 支持转推时透传推流URL中携带的参数。

网宿转推给友商/源站

需要网宿将直播内容转推给友商/源站时,需要提供网宿以下信息:

  1. 需要转推的推流域名、发布点、流名;

  2. 转推时使用的友商/源站推流域名;

  3. 如果需要使用转推调度接口,则需要友商/源站提供转推调度接口信息给网宿,并且按网宿要求的方式返回结果。

调度接口请求方式:

  a. 接口URL: http://www.transfer.com/api/query,具体接口URL友商可自定义;

  b. 请求方式: GET

  c. 请求头部:

  【Forward_Stream】 网宿要转推给友商/源站的原直播流地址,必填;

  【Ret_Num】 调度接口返回给网宿的节点IP个数,非必填;

调度结果返回方式:

  a. 响应状态码: 200

  b. 响应内容格式:json

  c. 响应内容:

  {“message”:“SUCCESS”,“content”:{“list”:[{“port”:“1935”,“ip”:“1.1.1.1”},{“port”:“1935”,“ip”:" 1.1.1.2 "}]},“state”:0}

  说明:必须按这种json格式返回调度结果,message和state参数格式固定,list中的内容可根据返回节点IP个数增减。

  友商/源站转推给网宿

网宿除了支持将直播流转推给友商/源站之外,也支持友商/源站转推直播流给网宿。并且友商同样可以使用DNS解析,或者使用网宿提供的调度接口来获取转推目标服务器信息。

网宿转推调度接口的使用方式如下:

  1. 友商/源站向网宿转推调度接口发起GET请求,并携带接口要求的头部信息;

  a. 接口URL: http://turnpush.wscdns.com/query

  b. 请求方法: GET

  c. 请求头部:

  【Forward_Stream】 友商/源站要转推给网宿的原直播流地址,必填,头部名称固定;

  【Ret_Num】 调度接口返回的节点IP个数,非必填,取值建议小于3,头部名称固定;

  请求示例:

  curl “http://turnpush.wscdns.com/query” -H “Forward_Stream: rtmp:// www.push.com/live/channel” -H “Ret_Num: 2”

  1. 网宿调度接口根据请求的节点IP和直播流信息,返回最优的节点IP给友商/源站。
      a. 响应状态码: 200

  b. 响应内容格式: json

  c. 响应内容:

  {“message”:“SUCCESS”,“content”:{“list”:[{“port”:“1935”,“ip”:“1.1.1.1”},{“port”:“1935”,“ip”:" 1.1.1.2 "}]},“state”:0}

  说明: message和state参数格式固定,list中的内容会根据返回节点IP个数增减。

  1. 友商/源站提取网宿调度接口返回内容中的IP信息和需要转推的直播流信息,组装成直播URL推流给网宿。 网宿支持两种URL格式,比如:

  1). 以域名方式向网宿节点(1.1.1.1)发起推流

  rtmp://www.wstest.com/live/channel

  2). 以IP方式向网宿节点发起推流

  rtmp://1.1.1.1:1935/live/channel?wsiphost=ipdbm&wsHost=www.wstest.com

三. 应用场景

网宿推出转推功能,支持客户源站或友商与网宿CDN平台的双向转推,应用场景如下:

  1) 主播推流至网宿CDN平台,由网宿转推至友商CDN平台,主要起到灾备作用。

  2) 主播推流至网宿CDN平台,由网宿转推给客户源站,主要起到留存录制作用。

  3) 主播推流至源站/友商,由源站/友商转推给网宿CDN平台进行分发加速。

四. 注意事项

  1. 推荐使用调度接口的方式进行转推。减少由于DNS解析失败引起的转推问题。
  2. 在转推友商时,如果转推给友商的域名有防盗链功能网宿可以透传参数用于校验。
  3. 接口调用限制每秒1000次