更新时间:2020-04-29 21:17:53
由于用户终端多样、接入网络质量参差不齐,内容服务商需要提供多种码率的视频内容供用户自行选择,更有内容服务商提供码率自适应功能,使用户自动访问最合适码率的视频内容,获得最佳的观看体验。
多码率自适应功能,借助视频转码,实现将客户上传到云存储平台的高码率视频文件,根据约定需求,转码输出多个不同码率的视频文件,生成嵌套的M3u8文件(HLS协议的索引文件)或MPD文件(DASH协议的索引文件)供终端用户访问。客户端可以根据网络质量变化情况,自动平滑切换到和带宽匹配的视频流。
多码率自适应,支持常见的视频/音频封装格式和编码格式的视频源文件,如:
(1) 视频格式: MP4、FLV、HLS、DASH、TS、MKV、MOV、WMV、AVI、VP8、VP9、RealVideo、Windows Media Video等;
(2) 音频格式:AAC、AC-3、MP1、MP2、MP3、PCM、RealAudio、Windows Media Audio(WMA)、OGG等;
(3) 编码格式:H.265、H.264、H.263、MPEG等。
客户上传视频文件的时候,可以同时配置多码率自适应操作参数,也可以同时配合使用视频转码、视频转封装、音视频操作等功能,即可通过同一条API命令实现多个功能。
请求参数以如下格式组织,作为请求内容提交:
bucket=<Urlsafe_Base64_Encoded_Bucket>&key=<Urlsafe_Base64_Encoded_Key>&fops=<Urlsafe_Base64_Encoded_Fops>¬ifyURL=<Urlsafe_Base64_Encoded_PersistentNotifyUrl>&force=<Force>&separate=<Separate>
参数 | 必填 | 描述 |
bucket | 是 | 空间名,即:原文件所在的空间 |
key | 是 | 文件名,即:原文件的文件名 |
fops | 是 | 多码率自适应参数列表;支持同时请求多个处理,参数列表之间用; 分隔,即:fops=Urlsafe_Base64_Encode(操作1;操作2;……) |
notifyURL | 否 | 处理结果通知接收URL,通知数据详细说明处理后的内容信息,比如视频码率、时长等。请参考通知数据内容说明。 |
force | 否 | 是否强制执行数据处理。支持设置以下数值: (1)0:指定的数据处理结果如果存在,返回文件已存在,不进行处理,避免重复处理浪费资源; (2)1:强制执行数据处理并覆盖已有文件; 默认为0。 |
separate | 否 | 处理是否分开通知。支持设置以下数值: (1)0:表示所有转码指令执行完后再一次性通知notifyURL (2)1:表示每个转码指令执行完后都通知notifyURL 默认为0。 |
使用以下格式填充参数后,并将其URL安全的Base64编码后的值填充到fops参数中:
<op>/<Format>
/envBandWidth/<envBandWidth>
/multiAb/<MultiAb>
/multiVb/<MultiVb>
/multiResolution/<MultiResolution>
|saveas/<Urlsafe_Base64_Encode(bucket:filekey)>
参数 | 必填 | 描述 |
<op> | 是 | avthumb(操作类型-音视频处理) |
<format> | 是 | 输出的目标格式(m3u8、mpd) |
/envBandWidth/<envBandWidth> | 否 | m3u8不同码流切换的带宽标准,采用符号“:”分隔多个网络带宽,个数范围[2,5],取值范围[50000,30000000],单位是b/s。例如50000:150000:500000。 注:目标格式为m3u8时使用此参数,且必填,参数个数与存在的multi参数值个数需要保持一致,建议与设置的码率值接近,带宽值采用升序方式。 |
/multiAb/<MultiAb> | 否 | 与音频码率参数(ab)不共存,单位:比特每秒(bit/s),采用符号“:”分隔多个音频码率,个数范围[1,5],例如64k:128k:256k。 注:若目标格式为m3u8,则码率个数与其他存在的multi参数值个数需要保持一致。 |
/multiVb/<MultiVb> | 否 | 与视频码率参数(vb)不共存,单位:比特每秒(bit/s),采用符号“:”分隔多个视频码率,个数范围[1,5],例如128k:600k:1.25m。 注:若目标格式为m3u8,则码率个数与其他存在的multi参数值个数需要保持一致。 |
/multiResolution/<MultiResolution> | 否 | 与视频分辨率参数(resolution)不共存,分辨率格式为 wxh,采用符号“:”分隔多个视频分辨率,个数范围[1,5],例如320x240:640x480:1080x720。 注:会改变视频的长宽比(DAR),若目标格式为m3u8,则分辨率个数与其他存在的multi参数值个数需要保持一致。 |
|saveas/<bucket:filekey> | 否 | 保存为指定文件,参数中需要填入"空间: 文件名"URL安全的Base64编码后的值。 |
如果请求成功,则返回如下内容的Json串:
{ "persistentId": <persistentId> }
如果请求失败,则返回如下内容的Json串:
{
"code": "<code string>",
"message": "<ErrMsg string>"
}
字段名 | 必填 | 描述 |
persistentId | 是 | 上传预处理或者触发持久化处理的进程ID |
code | 是 | HTTP请求响应码,参见HTTP响应状态码<返回码> |
message | 是 | 处理失败的提示信息 |
2.3.1 HLS多码率自适应
实现将vod-wcs-test001空间名下的test.m3u8(对应的ts文件也要上传到此空间下)文件生成嵌套的m3u8文件,存到vod-wcs-test001空间下,并命名为test_file.m3u8。其中,一级m3u8文件指明包含两种不同码率的二级m3u8文件,分别为:
(1) 带宽:50kb/s,视频码率:128kbit/s,音频码率:64kbit/s,分辨率:320x240;
(2) 带宽:100kb/s,视频码率:600kbit/s,音频码率:128kbit/s,分辨率:640x480。
curl -v -X POST –d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test_hls.m3u8)&fops=Urlsafe_Base64_Encode(avthumb/m3u8/envBandWidth/50000:100000/multiAb/64k:128k/multiVb/128k:600k/multiResolution/320x240:640x480|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test_file.m3u8))&force=1&separate=1" –H "Authorization:mgrAuthorization_A:mgrAuthorization_B" --url "http://mgrDomain/fops"
加密后为:
curl -v -X POST -d"bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdF9obHMubTN1OA==&fops=YXZ0aHVtYi9tM3U4L2VudkJhbmRXaWR0aC81MDAwMDoxMDAwMDAvbXVsdGlBYi82NGs6MTI4ay9tdWx0aVZiLzEyOGs6NjAway9tdWx0aVJlc29sdXRpb24vMzIweDI0MDo2NDB4NDgwfHNhdmVhcy9kbTlrTFhkamN5MTBaWE4wTURBeE9uUmxjM1JmWm1sc1pTNXRNM1U0&force=1&separate=1" -H "Authorization:mgrAuthorization_A:mgrAuthorization_B" --url "http://mgrDomain/fops"
其中:
(1) mgrAuthorization_A:mgrAuthorization_B:管理凭证,由AK(访问密钥)、SK(安全密钥)、Path、Path、Body通过管理凭证生成工具生成,其中AK、SK从“SI-云存储-安全管理-密钥管理”处获取,Path为/fops,Body为请求内容。
(2) mgrDomain:管理域名,从“SI-云存储-安全管理-域名查询”处获取。
2.3.2 DASH多码率自适应
实现将vod-wcs-test001空间名下的test.mp4生成mpd文件,存到vod-wcs-test001空间下,并命名为test.mpd。其中,mpd文件指明包含两种不同视频码率、单一音频码率的音视频文件,分别为:
(1)生成不同视频码率和分辨率的两个视频文件:
1)视频码率:128kbit/s,分辨率:320x240;
2)视频码率:600kbit/s,分辨率:640x480。
(2)单一音频码率:64kbit/s。
fops如下:
fops=Urlsafe_Base64_Encode(avthumb/mpd/multiVb/128k:600k/multiAb/64k/multiResolution/320x240:640x480|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test.mpd))
其余操作请参考 2.3.1 HLS多码率自适应。
DASH文件的音视频分离,生成的视频和音频可以自由组合成不同质量级别的目标文件。
实现码率自适应功能,保证不同网络环境下的观看体验。
(1) 多码率自适应只能对存储于云存储(WCS)上的视频文件进行操作,因此必须同时开通点播和云存储功能。
(2) 此功能属于增值服务,若要使用需另行付费。
(3) 输出的索引文件内的分片文件仅支持文件名形式,例如:00001.ts或者00001.m4s,不支持绝对路径,也不支持相对路径携带参数。