CreateVideoCompressTask - 创建一个视频压缩存储的任务

调用CreateVideoCompressTask接口创建一个视频压缩存储任务,执行完成后返回TaskId。

接口说明

此接口已不再维护,建议使用新版(2020-09-30 版本)接口 CreateMediaConvertTask 。关于新版与旧版 API 的对比,请参见新旧版本使用指引中的新版与旧版 API 对应关系说明章节。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

当前API暂无授权信息透出。

请求参数

名称类型必填描述示例值
Projectstring

项目名称。

immvideotest
VideoUristring

视频的 OSS URI。

OSS 地址规则为oss://bucket/object,其中bucket为和当前项目处于同一地域的 OSS Bucket 名称,object为文件路径。

oss://imm-test/testcases/video.mp4
NotifyTopicNamestring

异步反向通知的 TopicName。

topic1
NotifyEndpointstring

异步反向通知的 Endpoint,任务执行状态可以通过该 Endpoint 异步通知给调用者。使用此功能需要先开通 MNS 服务,新建 topic 和 queue,并配置订阅关系。具体操作,请参见消息服务 MNS 快速入门

说明 MNS 服务和智能媒体管理必须处于同一地域。
http://1111111111.mns.cn-beijing.aliyuncs.com
TargetListstring

压缩后的视频列表。支持对同一视频同时压缩多份不同格式结果。更多信息,请参见 TargetList 参数说明。

[{"AudioBitrate":"64k","VideoBitrate":"128k","TargetUri":"oss://imm-test/testcases/example.m3u8"}]
CustomMessagestring

用户自定义的信息。在 MNS 通知任务执行状态时,内容会原样返回。

CompressTaskTest
TargetSegmentstring

分段转码。当前版本不支持此参数。

[]
TargetSubtitlestring

提取视频中的字幕。更多信息,请参见 TargetSubtitle 参数说明表格。

{"ExtractFormat":ass,"SubtitleUri":"oss://imm-test/testcases","ExtractType":[]}

TargetList 参数说明

名称类型是否必选示例值描述
TargetUriStringoss://imm-test/testcases/example.m3u8输出文件的 OSS URI。
OSS 地址规则为oss://bucket/object,其中bucket为和当前项目处于同一地域的 OSS Bucket 名称,object为文件路径。
AudioBitrateString128k音频码率,单位为比特每秒(bit/s)。可选值包括 64k、128k、192k、256k 和 320k。
AllowIncreaseAudioBitrateBooleanfalse是否允许输出文件比特率高于原视频比特率。取值范围如下:
- true(默认):是。
- false:否。
AudioQualityInteger1音频质量,仅当音频格式为 mp3 和 aac 时才有效。AudioQuality 参数和 AudioBitrate 参数只能存在一个。
- 当音频格式为 mp3 时,取值范围为 0~9,值越小质量越高。
- 当音频格式为 aac 时,取值范围为 10-500,值越大质量越高。
AudioSampleRateInteger44100音频采样频率,单位为赫兹(Hz)。常用采样频率包括 8000、12050、22050、44100 等。如果不设置此参数,则保持原有采样频率。
AllowIncreaseAudioSampleRateBooleanfalse是否允许输出文件帧率高于原视频。取值范围如下:
- true(默认):是。
- false:否。
VideoFrameRateInteger25视频帧率,不设置则保持原值。
AllowIncreaseVideoFrameRateBooleanfalse是否允许输出文件帧率高于原视频。取值范围如下:
- true(默认):是。
- false:否。
VideoBitrateString1500k视频比特率,单位为比特每秒(bit/s)。常用视频比特率包括 128k、1.25m、5m 等。
AllowIncreaseVideoBitrateBooleanfalse是否允许输出文件比特率高于原视频。取值范围如下:
- true(默认):是。
- false:否。
VideoCodecStringlib×264视频编码方案,可选值包括 lib×264、libvpx、libtheora、libxvid 和 copy。
PixelFormatStringyuv420p像素格式,指定图像中每个像素的颜色数据的格式。可选值包括 yuv420p、yuv422p、yuvj422p、yuv444p、yuvj444p、yuv420p10le、yuv422p10le、yuv444p10le。
AudioCodecStringlibfdk_aac音频编码方案,可选值包括 libmp3lame、libvorbis、libfdk_aac、opus 和 copy。
SeekStartTimeInteger1指定视频截取的开始时间,单位为秒。
DurationInteger15指定视频截取的长度,单位为秒。
VideoResolutionString640x480指定视频分辨率,格式为宽 x 高。例如 640x480。
AllowIncreaseVideoResolutionBooleanfalse是否允许输出文件分辨率高于原视频。取值范围如下:
- true(默认):是。
- false:否。
AdaptVideoResolutionDirectionBooleanfalse自适应分辨率方向。取值范围如下:
- true(默认):是。
- false:否。
VideoRotationInteger90指定顺时针旋转的度数,可选值包括 90、180 和 270,默认为自动旋转。
DisableAudioBooleanfalse是否禁用音频流。
- true:是。
- false(默认):否。
DisableVideoBooleantrue是否禁用视频流。
- true:是。
- false(默认):否。
VideoProfileStringbaseline设置视频的 profile 等级,可选值包括 baseline、main 和 high。
AudioChannelInteger2声道数。取值范围如下:
- 1:单声道。
- 2:立体声。
HLSTimeString10HLS 格式的切片大小,单位为秒。当输出文件为 m3u8 格式时,必须设置此参数。
HLSIniTimeint6410视频段开始时间,单位为秒。
WatermarksString[{"Type":Text,"DX":0,"Content":example,"FontSize":16,"FileUri":"oss://imm-test/testcases/水印.PNG"}]水印列表。更多信息,请参见水印列表参数说明。
VideoCRFInteger20指定恒定质量模式。
当视频编码器为 lib×264 时才有效。取值范围为 0~51,数值越大画质越差,建议取值[18,28]。
VideoMaxBitrateString1000k动态码率下限定最大码率,例如 1000k。该参数需要和 VideCRF 参数一起使用才有效。使用该参数时,必须指定 VideoBufferSize 参数。
SpeedFloat1.0加速或减速,范围[0.5,2]。
ScaleTypeStringSTRETCH缩放方式,取值范围如下:
- CROP:缩放并裁剪。
- STRETCH(默认):拉伸以填满。
- FILL:缩放并保留黑边。
- FIT:缩放并不保留黑边。
DelogosString[{"Dx":0,"Dy":0,"ReferPos":TopLeft}]对视频上某矩形部分进行模糊,用于去除 Logo、台标等。
SubTitlesString[{"FileUri":"oss://imm-test/testcases/example.ass"}]添加字幕。包括如下选项:
- FileUri(可选):字母文件的 OSS URI。支持 SRT、ASS 等格式。类型为 String。
- Lang(可选):语言。请参考 ISO-639-2 语言定义。类型为 String。
EncryptionBooleanfalse是否对视频加密,当前只支持每个 target 加密。
- true:是。
- false(默认):否。
SegmentDurationint6415目标视频段时长。单位为秒。

TargetSubtitle 参数说明

名称类型是否必选示例值描述
ExtractFormatStringass提取出字幕的格式,支持 srt、ass、vtt 三种格式。
SubtitleUriStringoss://imm-test/testcases输出文件夹的 OSS URI。
- 如果提取字幕的方式为流序号提取,则输出格式为:Fileprefix 值 Index 字幕流序号.字幕格式。
- 如果提取字幕的方式为 language 的 KEY 值,则输出格式为:Fileprefix 值 KEY 值该 KEY 值下视频的序号.字幕格式。
ExtractypeString[]提取字幕的方式。提取方式有如下三种形式:
- [](默认):提取所有字幕,按照 KEY 值得输出方式输出。
- 数字:提取对应字幕流序号的字幕。
- language 的 KEY 值:提取对应视频中,KEY 值得字幕流。
FilePrefixStringmedia-a输出文件的文件名前缀。默认为空。

Delogos 参数说明

名称类型是否必选示例值描述
DxFloat0默认值为 0。值有两种形式:
- 整数型代表偏移像素,单位 px,取值范围为[1,4096]。
- 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。
DyFloat0默认值为 0。值有两种形式:
- 整数型代表偏移像素,单位 px,取值范围为[1,4096]。
- 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。
WidthFloat2去除 Logo 宽度。值有两种形式:
- 整数型代表去除 Logo 宽度的像素值,单位 px,取值范围为(1,4096]。
- 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1)。
HeightFloat2去除 Logo 高度。值有两种形式:
- 整数型代表去除 Logo 高度的像素值,单位 px,取值范围为(1,4096]。
- 小数型代表相对输出视频分辨率高度的比率,取值范围为(0,1)。
StarInteger0去除 Logo 开始时间,默认值为 0,0 表示从头开始,单位为秒。
DurationInteger0去除 Logo 持续时间,默认值为 0,0 表示持续到视频结束,单位为秒。
ReferPosStringTopLeft去除 Logo 的位置。取值范围为 TipRight、TopLeft、BottomRight 和 BottomLeft,默认值为 TopLeft。

Watermarks 参数说明

名称类型是否必选示例值描述
TypeStringText类型包括 Text 和 File。Text 为文字水印。File 为 png、mov 水印。
DxFloat0默认值为 0。值有两种形式:
- 整数型代表偏移像素,单位 px,取值范围为[1,4096]。
- 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。
DyFloat0默认值为 0。值有两种形式:
- 整数型代表偏移像素,单位 px,取值范围为[1,4096]。
- 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。
StatInteger0水印开始时间,默认值为 0,0 表示从头开始,单位为秒。
DurationInteger0去水印持续时间,默认值为 0,表示持续到视频结束,单位为秒。
ReferPosStringTopLeft水印的位置。取值范围包括 TopRight、TopLeft、BottomRight 和 BottomLeft,默认值为 TopLeft。
ContentStringexample文字水印内容。当设置 Type 为 Text 时有效。
FontNameStringSourceHanSans-Regular字体名称。当设置 Type 为 Text 时有效。支持的字体列表如下:
- SourceHanSans-Regular
- SourceHanSans-Bold
- SourceHanSerif-Regular
- SourceHanSerif-Bold
FontSizeInteger16字体大小。默认值为 16。范围为(4,120)。当设置 Type 为 Text 时有效。
FontColorString#000000字体颜色。#RRGGBB 格式。默认值为#000000。当设置 Type 为 Text 时有效。
FontAphaFloat1.0字体透明度。取值范围为(0,1),默认值为 1.0。当设置 Type 为 Text 时有效。
BorderWidthInteger1描边宽度。默认值为 0,取值范围为[0,4096]。当设置 Type 为 Text 时有效。
BorderColorString#000000描边颜色。#RRGGBB 格式。默认值为#000000。当设置 Type 为 Text 时有效。
FileUriStringoss://imm-test/testcases/水印.PNG水印文件的 OSS URI。支持 PNG 和 MOV 格式。当设置 Type 为 Text 时有效。
WidthFloat2水印图片宽度,值有两种形式:
- 整数型代表去除 Logo 宽度的像素值,单位为 px,取值范围为(1,4096]。
- 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1)。
HeightFloat2水印图片高度,值有两种形式:
- 整数型代表去除 Logo 高度的像素值,单位为 px,取值范围为(1,4096]。
- 小数型代表相对输出视频分辨率高度的比率,取值范围为(0,1)。

水印宽度和高度参数设置说明:

  • 宽度和高度均未设置时,水印宽度取输出视频分辨率宽度的 0.12 倍,水印高度按水印原图宽高比例等比缩放。

  • 宽度或高度只设置一边,另一边未设置时,则另一边按水印原图宽高比等比缩放。

  • 宽度和高度两边均设置时,按实际设置值设置水印图片。

水印位置说明: 水印的位置说明.png 只发布国内站

返回参数

名称类型描述示例值
object
TaskIdstring

任务 ID。

CompressVideoTask-c09b0943-ed79-4983-8dbe-7a882574****
RequestIdstring

当次请求的 Request ID。

CB4D73A3-BAF4-4A9D-A631-15F219AF****
TaskTypestring

任务的类型,返回值固定为 CompressVideoTask。

CompressVideoTask

示例

正常返回示例

JSON格式

{
  "TaskId": "CompressVideoTask-c09b0943-ed79-4983-8dbe-7a882574****",
  "RequestId": "CB4D73A3-BAF4-4A9D-A631-15F219AF****",
  "TaskType": "CompressVideoTask"
}

错误码

访问错误中心查看更多错误码。

订阅消息返回示例

返回参数的说明请参见下表。

名称类型描述
eventNameString任务类型,返回值固定为 CompressVideoTask。
imm.TaskIdString任务 ID。
imm.DurationString总视频时长。
imm.CompressDurationString总压缩时长。
imm.CustomMessageString用户自定义信息。
imm.ResultsJSON String视频转码结果。当返回结果中的 Success 为 true 时,表示该转码子任务成功,否则转码子任务失败。
imm.SuccessString任务总体是否成功,当返回结果为空时,表示成功;不为空时,表示失败。

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\"}]"
            }
        }
    ]
}