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

调试

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

请求参数

名称 类型 是否必选 示例值 描述
RegionId String cn-beijing

项目所在地域的ID。

RegionId是Endpoint的标识和组成部分,用于构造请求示例中的Endpoint。Endpoint的格式为imm.${RegionId}.aliyuncs.com,例如当RegionId为cn-beijing时,Endpoint为imm.cn-beijing.aliyuncs.com。

Action String CreateVideoCompressTask

操作接口名称,固定取值为CreateVideoCompressTask。

Project String immvideotest

项目名称。

VideoUri String oss://imm-test/testcases/video.mp4

视频的OSS URI。

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

NotifyTopicName String topic1

异步反向通知的TopicName。

NotifyEndpoint String http://1111111111.mns.cn-beijing.aliyuncs.com

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

说明 MNS服务和智能媒体管理必须处于同一地域。
TargetList String [{"AudioBitrate":"64k","VideoBitrate":"128k","TargetUri":"oss://imm-test/testcases/example.m3u8"}]

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

CustomMessage String CompressTaskTest

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

TargetSegment String []

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

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

提取视频中的字幕。详细信息,请参见TargeSubtitle参数说明。

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。

AudioQuality

Integer

1

音频质量,仅当音频格式为mp3和aac时才有效。

·当音频格式为mp3时,取值范围为0~9,值越小质量越高。

·当音频格式为aac时,取值范围为10-500,值越大质量越高。

·AudioQuality参数和AudioBitrate参数只能存在一个。

AudioSampleRate

Integer

44100

音频采样频率,单位为赫兹(Hz)。常用采样频率包括8000、12050、22050、44100等。如果不设置此参数,则保持原有采样频率。

AllowIncreaseAudioSampleRate

Bool

false

是否允许输出文件帧率高于原视频。默认值为true。

VideoFrameRate

Integer

25

视频帧率,不设置则保持原值。

AllowIncreaseVideoFrameRate

Bool

false

是否允许输出文件帧率高于原视频。默认值为true。

VideoBitrate

String

1500k

视频比特率,单位为比特每秒(bit/s)。常用视频比特率包括128k、1.25m、5m等。

AllowIncreaseVideoBitrate

Bool

false

是否允许输出文件比特率高于原视频。默认值为true。

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

640×480

指定视频分辨率,格式为宽×高。例如640×480。

AllowIncreaseVideoResolution

Bool

false

是否允许输出文件分辨率高于原视频。默认值为true。

AdaptVideoResolutionDirection

Bool

false

自适应分辨率方向。默认值为true。

VideoRotation

Integer

90

指定顺时针旋转的度数,可选值包括90、180和270,默认为自动旋转。

DisableAudio

Bool

false

是否禁用音频流。

DisableVideo

Bool

true

是否禁用视频流。

VideoProfile

String

baseline

设置视频的profile等级,可选值包括baseline、main和high。

AudioChannel

Integer

2

声道数。取值范围如下:

·1为单声道。

·2为立体声。

HLSTime

String

10

HLS格式的切片大小,单位为秒。当输出文件为m3u8格式时,必须设置此参数。

HLSIniTime

int64

10

视频段开始时间,单位为秒。

Watermarks

String

[{"Type":Tex,"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

Bool

false

是否对视频加密,当前只支持每个target加密。

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

Tex

类型包括Tex和File。Tex为文字水印。File为png、mov水印。

Dx

Float

0

默认值为0。值有两种形式:

·整数型代表偏移像素,单位px,取值范围为[1,4096]。

·小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。

Dy

Float

0

默认值为0。值有两种形式:

·整数型代表偏移像素,单位px,取值范围为[1,4096]。

·小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。

Stat

Integur

0

水印开始时间,默认值为0,0表示从头开始,单位为秒。

Duration

Integer

0

去水印持续时间,默认值为0,表示持续到视频结束,单位为秒。

ReferPos

String

TopLeft

水印的位置。取值范围包括TopRight、TOPLeft、BottomRight和BottomLeft,默认值为TopLeft。

Content

String

example

文字水印内容。当设置Type为Tex时有效。

FontName

String

SourceHanSans-Regular

字体名称。当设置Type为Tex时有效。支持的字体列表如下:

·SourceHanSans-Regular

·SourceHanSans-Bold

·SourceHanSerif-Regular

·SourceHanSerif-Bold

FontSize

Integer

16

字体大小。默认值为16。范围为(4,120)。当设置Type为Tex时有效。

FontColor

String

#000000

字体颜色。#RRGGBB格式。默认值为#000000。当设置Type为Tex时有效。

FontApha

Float

1.0

字体透明度。取值范围为(0,1],默认值为1.0。当设置Type为Tex时有效。

BorderWidth

Integer

1

描边宽度。默认值为0,取值范围为[0,4096]。当设置Type为Tex时有效。

BorderColor

String

#000000

描边颜色。#RRGGBB格式。默认值为#000000。当设置Type为Tex时有效。

FileUri

String

oss://imm-test/testcases/水印.PNG

水印文件的OSS URI。支持PNG和MOV格式。当设置Type为Tex时有效。

Width

Float

2

水印图片宽度,值有两种形式:

·整数型代表去除Logo宽度的像素值,单位为px,取值范围为(1,4096]。

·小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1]。

Height

Float

2

水印图片高度,值有两种形式:

·整数型代表去除Logo高度的像素值,单位为px,取值范围为(1,4096]。

·小数型代表相对输出视频分辨率高度的比率,取值范围为(0,1]。

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

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

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

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

水印位置说明:

水印的位置说明.png

返回数据

名称 类型 示例值 描述
TaskId String CompressVideoTask-c09b0943-ed79-4983-8dbe-7a88********

任务ID。

RequestId String CB4D73A3-BAF4-4A9D-A631-15F2********

当次请求的Request ID。

TaskType String CompressVideoTask

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

示例

请求示例

http(s)://[Endpoint]/?Action=CreateVideoCompressTask
&Project=immvideotest
&VideoUri=oss://imm-test/testcases/video.mp4
&NotifyTopicName=topic1
&NotifyEndpoint=http://1111111111.mns.cn-beijing.aliyuncs.com
&TargetList=[{"AudioBitrate":"64k","VideoBitrate":"128k","TargetUri":"oss://imm-test/testcases/example.m3u8"}]
&CustomMessage=CompressTaskTest
&TargetSegment=[]
&TargetSubtitle=[{"ExtractFormat":ass,"SubtitleUri":oss://imm-test/testcases,"ExtractType":[]}]
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<CreateVideoCompressTaskResponse>
    <TaskId>CompressVideoTask-c09b0943-ed79-4983-8dbe-7a88********</TaskId>
    <RequestId>CB4D73A3-BAF4-4A9D-A631-15F2********</RequestId>
    <TaskType>CompressVideoTask</TaskType>
</CreateVideoCompressTaskResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

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

订阅消息返回示例

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

名称

类型

描述

eventName

string

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

imm.TaskId

string

任务ID。

imm.Duration

string

总视频时长。

imm.CompressDuration

string

总压缩时长。

imm.CustomMessage

string

用户自定义信息。

imm.Results

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