调用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

640x480

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

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":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

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

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

Integur

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倍,水印高度按水印原图宽高比例等比缩放。

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

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

水印位置说明:

水印的位置说明.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\"}]"
            }
        }
    ]
}