回源拉流是指声网服务器收到观众的播放请求时,主动从你的源站拉取直播流数据并分发给观众。回源拉流支持以下两种方式:
设置指定发布点的回源拉流配置。
PATCH https://api.sd-rtn.com/v1/projects/{appid}/fls/entry_points/{entry_point}/settings/origin_site
参数 | 类型 | 描述 |
---|---|---|
appid |
String | 必填。在声网控制台获取的 App ID。 |
entry_point |
String | 必填。发布点名称。 |
请求包体为 JSON Object 类型,包含以下字段:
字段 | 类型 | 描述 |
---|---|---|
enabled |
Boolean | 选填。是否开启回源拉流。 |
domain |
String | 选填。你的源站域名,用于定向回源。该字段与 callbackUrl 字段不能同时设置。 |
app |
String | 选填,源站域名的发布点(也叫应用名、AppName)。该字段必须与 domain 字段一起设置。如果不填或者设置为空,将使用播流 URL 中的发布点。 |
callbackUrl |
String | 选填,你的回调 URL,用于动态回源。该字段与 domain 字段不能同时设置。 |
如果返回的 HTTP 状态码为 200,表示请求成功。
如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 HTTP 状态码了解可能的原因。
请求行
PATCH https://api.sd-rtn.com/v1/projects/{your_appid}/fls/entry_points/live/settings/origin_site HTTP/1.1
请求 body
{
"enabled": true,
"domain": "{your_domain}"
}
响应行
HTTP/1.1 200 OK
获取指定发布点的回源配置。
GET https://api.sd-rtn.com/v1/projects/{appid}/fls/entry_points/{entry_point}/settings/origin_site
参数 | 类型 | 描述 |
---|---|---|
appid |
String | 必填。在声网控制台获取的 App ID。 |
entry_point |
String | 必填。发布点名称。 |
如果返回的 HTTP 状态码为 200,表示请求成功。响应包体中包含以下字段:
enabled
:Boolean 型,选填,回源拉流是否已经开启。domain
:String 型,选填,你的源站域名,用于定向回源。app
:String 型,选填,源站域名的发布点。callbackUrl
:String 型,选填,你的回调 URL,用于动态回源。如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 HTTP 状态码了解可能的原因。
请求行
GET https://api.sd-rtn.com/v1/projects/{your_appid}/fls/entry_points/live/settings/origin_site HTTP/1.1
响应 body
{
"enabled": true,
"domain": "{your_domain}"
}
响应行
HTTP/1.1 200 OK
如果你在设置回源拉流配置的请求中设置了 callbackUrl
,声网会向这个回调 URL 发送请求,获取你的源站地址。声网发送的请求示例如下:
GET https://example.origin-site.com/entry_point={entry_point}&stream_name={stream_name} HTTP/1.1
其中以下参数会按播流 URL 中的信息替换:
entry_point
:替换为播流发布点。stream_name
:替换为流名称。你返回的 HTTP 响应必须满足以下要求:
url
字段返回源站地址,示例如下:{
"url": "rtmp://cdna.example.com/live/testedge"
}
状态码 | 描述 |
---|---|
200 | 请求成功。 |
400 | 参数非法,如 appid 或者 entry_point 为空。 |
401 | 未经授权的(客户 ID/客户密钥匹配错误)。 |
404 | 服务器无法根据请求找到资源,即请求的发布点不存在,或者请求的 URI 路径非法。 |
500 | 服务器内部错误,无法完成请求。 |
504 | 服务器内部错误。充当网关或代理的服务器未从远端服务器获取请求。 |