通过阅读本文,您可以了解在录制配置之后,选择是否按需录制。
目前,按需录制包括两种方式:
通过推流参数(暂不支持)
通过HTTP回调
HTTP回调指用户指定一个回调地址,并设置一个domain、app或stream级别的录制为按需录制。当录制服务收到匹配domain、app或stream名称的流时向用户的回调地址发送请求(请求包含5个参数),来询问用户是否需要录制这路流。
说明 按需录制设置方法,请参见按需录制方式。
请求参数
参数 | 类型 | 描述 |
---|---|---|
domain | String | 主播流域名。 |
app | String | 播流所属应用名称。 |
stream | String | 播流名称。 |
codec | String | 编码方式。取值:
|
vbitrate | String | 视频码率。单位:kbps。 |
返回参数
参数 | 类型 | 是否必选 | 描述 |
---|---|---|---|
ApiVersion | String | 否 | API版本。默认为1.0版本。 |
NeedRecord | Bool | 是 | 是否需要录制。 |
Interval | JSONObject | 否 | 具体格式的录制周期变化。取值范围:5~21600。单位:秒。 |
Format | JSONArray | 否 | 录制格式。支持MP4、FLV、M3U8。 |
示例
请求示例
GET /?app=seq_all&domain=demo.aliyundoc.com&stream=ondemand8&vbitrate=2000&codec=h264 HTTP/1.1
Host: example.aliyundoc.com
User-Agent: Go-http-client/1.1
Accept-Encoding: gzip
返回参数
{
"ApiVersion" : "1.0",
"NeedRecord" : true,
"Interval" : {
"Mp4": 300,
"Flv": 120,
"M3U8": 180
},
"Format" : ["mp4","flv"]
}
返回参数处理
录制服务会对用户返回的参数配置和既有配置进行覆盖。例如,显示指定了Interval,那么录制服务会覆盖数据库中的录制配里面的Interval,Format会和数据库中的配置取交集。如果用户指定的格式全不在既有配置之中,则不会录制这路直播流。
说明
所有非200 http status code,都会被认为是调用用户接口失败。
对于范围body长度有限制,超过2048会被截断,以防恶意攻击。
注意事项
- 视频直播支持触发拉流,当使用触发拉流域名对应的播放地址进行播放时,会自动触发阿里云视频直播服务进行拉流直播,无人播放时则不会回源站进行拉流。自动录制、按需录制、手动录制功能应用在触发拉流场景时,如果触发拉流无人播放,则不会回源站拉流,自动录制、按需录制、手动录制同样也不会进行录制。