更新时间:2023-11-09 17:12:41
短视频客户大多提供视频上传功能,支持视频分享,而众多UGC用户上传视频的分辨率大小不一,即使通过分辨率转换,也极大可能出现缩放后视频四周存在黑边的现象。对于这种异常视频,可以通过视频裁剪功能,裁剪掉黑边区域,提高观看体验。
例如:上传的视频分辨率为1920*1920,目标视频分辨率为1920*1080,视频缩放会先按比例缩放到1080*1080,然后再进行左右黑边填充到1920*1080,即观看的视频画面左右存在黑边。这种情况下可以使用视频裁剪功能,裁剪掉黑边区域,使得观看画面更美观。
视频裁剪,支持常见的视频/音频封装格式和编码格式,如:
(1) 视频格式:MP4、FLV、M3U8、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>
/gravity/<gravity>
/vcrop/<vcrop>
|saveas/<Urlsafe_Base64_Encode(bucket:filekey)>
参数 | 必填 | 描述 |
<op> | 是 | avthumb(操作类型-音视频处理) |
<format> | 是 | 输出的目标格式,如mp4、flv、m3u8等。 |
/gravity/<gravity> | 是 | 参看“表3 视频偏移参数表”,只影响其后的裁剪偏移参数,默认为左上角(TOP_LEFT)。 |
/vcrop/<vcrop> | 否 | 参看“表4 视频裁剪操作参数表”,默认为不裁剪。 |
|saveas/<bucket:filekey> | 否 | 保存为指定文件,参数中需要填入"空间: 文件名"URL安全的Base64编码后的值。 |
参数 | 说明 |
TOP_LEFT | 左上角为坐标原点,x轴从左到右,y轴从上到下,也是默认值 |
TOP_CENTER | 上部中间位置为坐标原点,x轴从左到右,y轴从上到下。 |
TOP_RIGHT | 右上角位置为坐标原点,x轴从右到左,y轴从上到下。 |
CENTER_LEFT | 左边缘中间位置为坐标原点,x轴从左到右,y轴从上到下。 |
CENTER | 正中间位置为坐标原点,x轴从左到右,y轴从上到下。 |
CENTER_RIGHT | 右边缘的中间位置为坐标原点,x轴从右到左,y轴从上到下。 |
BOTTOM_LEFT | 左下角为坐标原点,x轴从左到右,y轴从下到上。 |
BOTTOM_CENTER | 下边缘的中间为坐标原点,x轴从左到右,y轴从下到上。 |
BOTTOM_RIGHT | 右下角坐标原点,x轴从右到左,y轴从下到上。 |
参数 | 说明 |
\<Width>x | 指定目标视频宽度,高度不变。取值范围0-10000。 |
!{vcropSize}a\<dx>a\<dy> | 相对于偏移锚点,向右偏移dx个像素,同时向下偏移dy个像素。 |
x\<Height> | 指定目标视频高度,宽度不变。取值范围0-10000。 |
\<Width>x\<Height> | 同时指定目标视频宽高。取值范围0-10000。 |
如果请求成功,则返回如下内容的Json串:
{ "persistentId": <persistentId> }
如果请求失败,则返回如下内容的Json串:
{
"code": "<code string>",
"message": "<ErrMsg string>"
}
字段名 | 必填 | 描述 |
persistentId | 是 | 上传预处理或者触发持久化处理的进程ID |
code | 是 | HTTP请求响应码,参见HTTP响应状态码<返回码> |
message | 是 | 处理失败的提示信息 |
实现将vod-wcs-test001空间下test.mp4视频进行画面裁剪,并输出2个视频:
(1) 将test.mp4视频的画面左上角位置裁剪400*352,存为m4a格式,名称为test_file.m4a;
(2) 将test.mp4视频的画面正中间位置裁剪200*352,存为flv格式,名称为test_file.flv。
curl -v -X POST –d "bucket=Urlsafe_Base64_Encode(vod-wcs-test001)&key=Urlsafe_Base64_Encode(test.mp4)&fops=Urlsafe_Base64_Encode(avthumb/m4a/gravity/TOP_LEFT/vcrop/400x352|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test_file.m4a);avthumb/flv/gravity/CENTER/vcrop/200x352|saveas/Urlsafe_Base64_Encode(vod-wcs-test001:test_file.flv))&force=1&separate=1" –H "Authorization:mgrAuthorization_A:mgrAuthorization_B" --url "http://mgrDomain/fops"
加密后为:
curl -v -X POST -d"bucket=dm9kLXdjcy10ZXN0MDAx&key=dGVzdC5tcDQ=&fops=YXZ0aHVtYi9tNGEvZ3Jhdml0eS9UT1BfTEVGVC92Y3JvcC80MDB4MzUyfHNhdmVhcy9kbTlrTFhkamN5MTBaWE4wTURBeE9uUmxjM1JmWm1sc1pTNXROR0VLQ2c9PTthdnRodW1iL2Zsdi9ncmF2aXR5L0NFTlRFUi92Y3JvcC8yMDB4MzUyfHNhdmVhcy9kbTlrTFhkamN5MTBaWE4wTURBeE9uUmxjM1JmWm1sc1pTNW1iSFlLQ2c9PQoK&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从“控制台-账号管理-用户信息管理-AccessKey管理”处获取,Path为/fops,Body为请求内容。
(2) mgrDomain:管理域名,从“控制台-对象存储-对应存储空间-概览”处获取。
裁剪视频黑边,提高观看体验。
(1) 视频裁剪功能属于增值服务,若要使用需另行付费;
(2) 视频裁剪功能只能对保存在云存储上的视频文件进行操作,如果要使用必须同时点播和开通云存储服务。