调用CreateVideoCompressTask接口创建一个视频压缩存储任务,执行完成后返回TaskId。
接口说明
此接口已不再维护,建议使用新版(2020-09-30 版本)接口 CreateMediaConvertTask 。关于新版与旧版 API 的对比,请参见新旧版本使用指引中的新版与旧版 API 对应关系说明章节。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action
元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用背景高亮的方式表示。
- 对于不支持资源级授权的操作,用
全部资源
表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
---|---|---|---|---|
imm:CreateVideoCompressTask | *全部资源 * |
| 无 |
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
Project | string | 是 | 项目名称。 | immvideotest |
VideoUri | string | 是 | 视频的 OSS URI。 OSS 地址规则为 | oss://imm-test/testcases/video.mp4 |
NotifyTopicName | string | 否 | 异步反向通知的 TopicName。 | topic1 |
NotifyEndpoint | string | 否 | 异步反向通知的 Endpoint,任务执行状态可以通过该 Endpoint 异步通知给调用者。使用此功能需要先开通 MNS 服务,新建 topic 和 queue,并配置订阅关系。具体操作,请参见消息服务 MNS 快速入门。 说明
MNS 服务和智能媒体管理必须处于同一地域。
| http://1111111111.mns.cn-beijing.aliyuncs.com |
TargetList | string | 否 | 压缩后的视频列表。支持对同一视频同时压缩多份不同格式结果。更多信息,请参见 TargetList 参数说明。 | [{"AudioBitrate":"64k","VideoBitrate":"128k","TargetUri":"oss://imm-test/testcases/example.m3u8"}] |
CustomMessage | string | 否 | 用户自定义的信息。在 MNS 通知任务执行状态时,内容会原样返回。 | CompressTaskTest |
TargetSegment | string | 否 | 分段转码。当前版本不支持此参数。 | [] |
TargetSubtitle | string | 否 | 提取视频中的字幕。更多信息,请参见 TargetSubtitle 参数说明表格。 | {"ExtractFormat":ass,"SubtitleUri":"oss://imm-test/testcases","ExtractType":[]} |
TargetList 参数说明
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
TargetUri | String | 是 | oss://imm-test/testcases/example.m3u8 | 输出文件的 OSS URI。 OSS 地址规则为 oss://bucket/object ,其中bucket 为和当前项目处于同一地域的 OSS Bucket 名称,object 为文件路径。 |
AudioBitrate | String | 否 | 128k | 音频码率,单位为比特每秒(bit/s)。可选值包括 64k、128k、192k、256k 和 320k。 |
AllowIncreaseAudioBitrate | Boolean | 否 | false | 是否允许输出文件比特率高于原视频比特率。取值范围如下: - true(默认):是。 - false:否。 |
AudioQuality | Integer | 否 | 1 | 音频质量,仅当音频格式为 mp3 和 aac 时才有效。AudioQuality 参数和 AudioBitrate 参数只能存在一个。 - 当音频格式为 mp3 时,取值范围为 0~9,值越小质量越高。 - 当音频格式为 aac 时,取值范围为 10-500,值越大质量越高。 |
AudioSampleRate | Integer | 否 | 44100 | 音频采样频率,单位为赫兹(Hz)。常用采样频率包括 8000、12050、22050、44100 等。如果不设置此参数,则保持原有采样频率。 |
AllowIncreaseAudioSampleRate | Boolean | 否 | false | 是否允许输出文件帧率高于原视频。取值范围如下: - true(默认):是。 - false:否。 |
VideoFrameRate | Integer | 否 | 25 | 视频帧率,不设置则保持原值。 |
AllowIncreaseVideoFrameRate | Boolean | 否 | false | 是否允许输出文件帧率高于原视频。取值范围如下: - true(默认):是。 - false:否。 |
VideoBitrate | String | 否 | 1500k | 视频比特率,单位为比特每秒(bit/s)。常用视频比特率包括 128k、1.25m、5m 等。 |
AllowIncreaseVideoBitrate | Boolean | 否 | false | 是否允许输出文件比特率高于原视频。取值范围如下: - true(默认):是。 - false:否。 |
VideoCodec | String | 否 | lib×264 | 视频编码方案,可选值包括 lib×264、libvpx、libtheora、libxvid 和 copy。 |
PixelFormat | String | 否 | yuv420p | 像素格式,指定图像中每个像素的颜色数据的格式。可选值包括 yuv420p、yuv422p、yuvj422p、yuv444p、yuvj444p、yuv420p10le、yuv422p10le、yuv444p10le。 |
AudioCodec | String | 否 | libfdk_aac | 音频编码方案,可选值包括 libmp3lame、libvorbis、libfdk_aac、opus 和 copy。 |
SeekStartTime | Integer | 否 | 1 | 指定视频截取的开始时间,单位为秒。 |
Duration | Integer | 否 | 15 | 指定视频截取的长度,单位为秒。 |
VideoResolution | String | 否 | 640x480 | 指定视频分辨率,格式为宽 x 高。例如 640x480。 |
AllowIncreaseVideoResolution | Boolean | 否 | false | 是否允许输出文件分辨率高于原视频。取值范围如下: - true(默认):是。 - false:否。 |
AdaptVideoResolutionDirection | Boolean | 否 | false | 自适应分辨率方向。取值范围如下: - true(默认):是。 - false:否。 |
VideoRotation | Integer | 否 | 90 | 指定顺时针旋转的度数,可选值包括 90、180 和 270,默认为自动旋转。 |
DisableAudio | Boolean | 否 | false | 是否禁用音频流。 - true:是。 - false(默认):否。 |
DisableVideo | Boolean | 否 | true | 是否禁用视频流。 - true:是。 - false(默认):否。 |
VideoProfile | String | 否 | baseline | 设置视频的 profile 等级,可选值包括 baseline、main 和 high。 |
AudioChannel | Integer | 否 | 2 | 声道数。取值范围如下: - 1:单声道。 - 2:立体声。 |
HLSTime | String | 否 | 10 | HLS 格式的切片大小,单位为秒。当输出文件为 m3u8 格式时,必须设置此参数。 |
HLSIniTime | int64 | 否 | 10 | 视频段开始时间,单位为秒。 |
Watermarks | String | 否 | [{"Type":Text,"DX":0,"Content":example,"FontSize":16,"FileUri":"oss://imm-test/testcases/水印.PNG"}] | 水印列表。更多信息,请参见水印列表参数说明。 |
VideoCRF | Integer | 否 | 20 | 指定恒定质量模式。 当视频编码器为 lib×264 时才有效。取值范围为 0~51,数值越大画质越差,建议取值[18,28]。 |
VideoMaxBitrate | String | 否 | 1000k | 动态码率下限定最大码率,例如 1000k。该参数需要和 VideCRF 参数一起使用才有效。使用该参数时,必须指定 VideoBufferSize 参数。 |
Speed | Float | 否 | 1.0 | 加速或减速,范围[0.5,2]。 |
ScaleType | String | 否 | STRETCH | 缩放方式,取值范围如下: - CROP:缩放并裁剪。 - STRETCH(默认):拉伸以填满。 - FILL:缩放并保留黑边。 - FIT:缩放并不保留黑边。 |
Delogos | String | 否 | [{"Dx":0,"Dy":0,"ReferPos":TopLeft}] | 对视频上某矩形部分进行模糊,用于去除 Logo、台标等。 |
SubTitles | String | 否 | [{"FileUri":"oss://imm-test/testcases/example.ass"}] | 添加字幕。包括如下选项: - FileUri(可选):字母文件的 OSS URI。支持 SRT、ASS 等格式。类型为 String。 - Lang(可选):语言。请参考 ISO-639-2 语言定义。类型为 String。 |
Encryption | Boolean | 否 | false | 是否对视频加密,当前只支持每个 target 加密。 - true:是。 - false(默认):否。 |
SegmentDuration | int64 | 否 | 15 | 目标视频段时长。单位为秒。 |
TargetSubtitle 参数说明
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
ExtractFormat | String | 是 | ass | 提取出字幕的格式,支持 srt、ass、vtt 三种格式。 |
SubtitleUri | String | 是 | oss://imm-test/testcases | 输出文件夹的 OSS URI。 - 如果提取字幕的方式为流序号提取,则输出格式为:Fileprefix 值 Index 字幕流序号.字幕格式。 - 如果提取字幕的方式为 language 的 KEY 值,则输出格式为:Fileprefix 值 KEY 值该 KEY 值下视频的序号.字幕格式。 |
Extractype | String | 否 | [] | 提取字幕的方式。提取方式有如下三种形式: - [](默认):提取所有字幕,按照 KEY 值得输出方式输出。 - 数字:提取对应字幕流序号的字幕。 - language 的 KEY 值:提取对应视频中,KEY 值得字幕流。 |
FilePrefix | String | 否 | media-a | 输出文件的文件名前缀。默认为空。 |
Delogos 参数说明
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Dx | Float | 否 | 0 | 默认值为 0。值有两种形式: - 整数型代表偏移像素,单位 px,取值范围为[1,4096]。 - 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。 |
Dy | Float | 否 | 0 | 默认值为 0。值有两种形式: - 整数型代表偏移像素,单位 px,取值范围为[1,4096]。 - 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。 |
Width | Float | 否 | 2 | 去除 Logo 宽度。值有两种形式: - 整数型代表去除 Logo 宽度的像素值,单位 px,取值范围为(1,4096]。 - 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1)。 |
Height | Float | 否 | 2 | 去除 Logo 高度。值有两种形式: - 整数型代表去除 Logo 高度的像素值,单位 px,取值范围为(1,4096]。 - 小数型代表相对输出视频分辨率高度的比率,取值范围为(0,1)。 |
Star | Integer | 否 | 0 | 去除 Logo 开始时间,默认值为 0,0 表示从头开始,单位为秒。 |
Duration | Integer | 否 | 0 | 去除 Logo 持续时间,默认值为 0,0 表示持续到视频结束,单位为秒。 |
ReferPos | String | 否 | TopLeft | 去除 Logo 的位置。取值范围为 TipRight、TopLeft、BottomRight 和 BottomLeft,默认值为 TopLeft。 |
Watermarks 参数说明
名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Type | String | 是 | Text | 类型包括 Text 和 File。Text 为文字水印。File 为 png、mov 水印。 |
Dx | Float | 否 | 0 | 默认值为 0。值有两种形式: - 整数型代表偏移像素,单位 px,取值范围为[1,4096]。 - 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。 |
Dy | Float | 否 | 0 | 默认值为 0。值有两种形式: - 整数型代表偏移像素,单位 px,取值范围为[1,4096]。 - 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。 |
Stat | Integer | 否 | 0 | 水印开始时间,默认值为 0,0 表示从头开始,单位为秒。 |
Duration | Integer | 否 | 0 | 去水印持续时间,默认值为 0,表示持续到视频结束,单位为秒。 |
ReferPos | String | 否 | TopLeft | 水印的位置。取值范围包括 TopRight、TopLeft、BottomRight 和 BottomLeft,默认值为 TopLeft。 |
Content | String | 是 | example | 文字水印内容。当设置 Type 为 Text 时有效。 |
FontName | String | 否 | SourceHanSans-Regular | 字体名称。当设置 Type 为 Text 时有效。支持的字体列表如下: - SourceHanSans-Regular - SourceHanSans-Bold - SourceHanSerif-Regular - SourceHanSerif-Bold |
FontSize | Integer | 否 | 16 | 字体大小。默认值为 16。范围为(4,120)。当设置 Type 为 Text 时有效。 |
FontColor | String | 否 | #000000 | 字体颜色。#RRGGBB 格式。默认值为#000000。当设置 Type 为 Text 时有效。 |
FontApha | Float | 否 | 1.0 | 字体透明度。取值范围为(0,1),默认值为 1.0。当设置 Type 为 Text 时有效。 |
BorderWidth | Integer | 否 | 1 | 描边宽度。默认值为 0,取值范围为[0,4096]。当设置 Type 为 Text 时有效。 |
BorderColor | String | 否 | #000000 | 描边颜色。#RRGGBB 格式。默认值为#000000。当设置 Type 为 Text 时有效。 |
FileUri | String | 是 | oss://imm-test/testcases/水印.PNG | 水印文件的 OSS URI。支持 PNG 和 MOV 格式。当设置 Type 为 Text 时有效。 |
Width | Float | 否 | 2 | 水印图片宽度,值有两种形式: - 整数型代表去除 Logo 宽度的像素值,单位为 px,取值范围为(1,4096]。 - 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1)。 |
Height | Float | 否 | 2 | 水印图片高度,值有两种形式: - 整数型代表去除 Logo 高度的像素值,单位为 px,取值范围为(1,4096]。 - 小数型代表相对输出视频分辨率高度的比率,取值范围为(0,1)。 |
水印宽度和高度参数设置说明:
-
宽度和高度均未设置时,水印宽度取输出视频分辨率宽度的 0.12 倍,水印高度按水印原图宽高比例等比缩放。
-
宽度或高度只设置一边,另一边未设置时,则另一边按水印原图宽高比等比缩放。
-
宽度和高度两边均设置时,按实际设置值设置水印图片。
水印位置说明: 只发布国内站
返回参数
示例
正常返回示例
JSON
格式
{
"TaskId": "CompressVideoTask-c09b0943-ed79-4983-8dbe-7a882574****",
"RequestId": "CB4D73A3-BAF4-4A9D-A631-15F219AF****",
"TaskType": "CompressVideoTask"
}
错误码
访问错误中心查看更多错误码。
订阅消息返回示例
返回参数的说明请参见下表。
名称 | 类型 | 描述 |
---|---|---|
eventName | String | 任务类型,返回值固定为 CompressVideoTask。 |
imm.TaskId | String | 任务 ID。 |
imm.Duration | String | 总视频时长。 |
imm.CompressDuration | String | 总压缩时长。 |
imm.CustomMessage | String | 用户自定义信息。 |
imm.Results | JSON String | 视频转码结果。当返回结果中的 Success 为 true 时,表示该转码子任务成功,否则转码子任务失败。 |
imm.Success | String | 任务总体是否成功,当返回结果为空时,表示成功;不为空时,表示失败。 |
MNS 返回的消息格式如下:
{
"events": [
{
"eventName": "CompressVideoTask",
"eventSource": "acs:imm",
"eventTime": "2019-02-20T11:06:25.264Z",
"eventVersion": "1.0",
"imm": {
"ErrorCode": "",
"JobId": "CompressVideoTask-9bab56e8-e596-421a-b1f5-9ad1ab875fe4",
"SourceDuration": "140",
"CompressDuration": "70",
"CustomMessage": "",
"Results": "[{\"TargetUri\":\"oss://imm-test/testcases/example.m3u8\",\"Success\":\"true\",\"TargetDuration\": 140, \"TargetResolution\":\"640x480\"},{\"TargetUri\":\"oss://imm-test/testcases/example.m3u8\",\"Success\":\"false\",\"Reason\":\"Invalid Parameters\"}]"
}
}
]
}