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

请求参数

名称 类型 是否必填 描述
Project string 项目名称。
Action String 操作接口名称,固定取值为CreateVideoCompressTask。
VideoUri string 视频Uri OSS地址。

OSS地址规则为oss://bucketname/objectname,其中 bucket和当前Project在同一地域的OSS Bucket名称, object为文件路径。

TargetList []TargetVideos 压缩后的视频列表。可对统一输入视频同时压缩多份不同格式结果。
NotifyTopicName String 异步通知的TopicName。
NotifyEndpoint String 异步反向通知的Endpoint,作业处理状态可以通过该Endpoint异步通知到调用者。
CustomMessage String 用户自定义信息,在通知时回原样返回。

关于 MNS 的使用方式,参考消息服务 MNS 概述

数据类型TargetVideos

IMM 参数 类型 是否必填 描述
AudioBitrate String 音频码率,单位为比特每秒(bit/s)。可选值包括64k,128k,192k,256k和320k。
AllowIncreaseAudioBitrate Bool 是否允许输出音频比特率高于原音频。默认值为true。
AudioQuality Integer 音频质量,仅支持mp3和aac。不能与音频码率参数AudioBitrate共用。取值范围如下:
  • 0~9(mp3):值越小质量越高
  • 10~500(aac):值越大质量越高。
AudioSampleRate Integer 音频采样频率,单位为赫兹(Hz)。常用采样频率包括8000,12050,22050,44100等。不设置则保持原采样频率。
AllowIncreaseAudioSampleRate Bool 是否允许输出文件帧率高于原视频。默认值为true。
VideoFrameRate Integer 视频帧率,不设置则保持原值。
AllowIncreaseVideoFrameRate Bool 是否允许输出文件帧率高于原视频。默认值为true。
VideoBitrate String 视频比特率,单位为比特每秒(bit/s)。 常用视频比特率包括128k,1.25m,5m等。
AllowIncreaseVideoBitrate Bool 是否允许输出文件比特率高于原视频。默认值为true。
VideoCodec String 视频编码方案,可选值包括libx264、libvpx、libtheora、libxvid和copy。
AudioCodec String 音频编码方案,可选值包括libmp3lame、libvorbis、libfdk_aac、opus和copy。
SeekStartTime Integer 指定视频截取的开始时间,单位为秒。
Duration Integer 指定视频截取的长度,单位为秒。
VideoResolution String 指定视频分辨率,格式为宽×高。例如640×480。
AllowIncreaseVideoResolution Bool 是否允许输出文件分辨率高于原视频。默认值为true。
AdaptVideoResolutionDirection Bool 自适应分辨率方向。默认 值为false。
VideoRotation Integer 指定顺时针旋转的度数,可选值包括90、180和270,默认为自动旋转。
DisableAudio Bool 是否禁用音频流。
DisableVideo Bool 是否禁用视频流。
VideoProfile String 设置视频的profile等级,可选值包括baseline、main和high。
AudioChannel Integer 声道数。取值范围如下:
  • 1为单声道。
  • 2为立体声。
TargetUri String 输出文件的OSS URI。
HLSTime Integer HLS格式的切片大小,单位为秒。当输出文件为m3u8格式时,必须设置此参数。
Watermarks []Watermarks 水印列表。
VideoCRF Integer 指定恒定质量模式。当视频编码器为libx264时才有效。取值范围为0~51,数值越大画质越差,建议取值[18,28]。
VideoMaxBitrate String 动态码率下限定最大码率,例如1000k。该参数需要和VideoCRF参数一起使用才有效。使用该参数时,必须指定VideoBufferSize参数。
VideoBufferSize String 编码缓冲大小,和VideoMaxBitrate一起使用,例如1000k。
Speed Float 加减速,范围 [0.5, 2]
ScaleType String 缩放方式,取值范围如下:
  • CROP:缩放并裁剪。
  • STRETCH(默认):拉伸以填满。
  • FILL:缩放并保留黑边。
  • FIT:缩放并不保留黑边。
Delogos []Delogo 对视频上某矩形部分进行模糊,用于去除Logo、台标等。
SubTitles []SubTitle 添加字幕。

数据类型Delogo

IMM 参数 类型 必填 描述
Dx Float 默认值为0。值有两种形式:
  • 整数型代表偏移像素,单位为px,取值范围为[1,4096]。
  • 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。
Dy Float 默认值为0。值有两种形式:
  • 整数型代表偏移像素,单位为px,取值范围为[1,4096]。
  • 小数型代表垂直偏移量与输出分辨率高的比率,取值范围为(0,1)。
Width Float 去除Logo宽度,值有两种形式:
  • 整数型代表去除Logo宽度的像素值,单位为px,取值范围为(1,4096]。
  • 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1]。
Height Float 去除Logo高度,值有两种形式:
  • 整数型代表去除Logo高度的像素值,单位为px,取值范围为(1,4096]。
  • 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1]。
Start Integer 去除Logo开始时间,默认值为0,0表示从头开始,单位为秒。
Duration Integer 去除Logo持续时间,默认值为0,0表示持续到视频结束,单位为秒。
ReferPos String 去除Logo的位置。取值范围包括TopRight、TopLeft、BottomRight和BottomLeft,默认值为TopLeft。

数据类型SubTitle

IMM 参数 类型 必填 描述
FileUri String 字幕文件的OSS URI。支持SRT、ASS等格式。
Lang String 语言。请参考ISO-639-2语言定义。

数据类型Watermarks

参数 类型 是否必选 描述
Type String 类型包括Text和File。Text为文字水印。File为png、mov水印。
Dx Float 默认值为0。值有两种形式:
  • 整数型代表偏移像素,单位为px,取值范围为[1,4096]。
  • 小数型代表垂直偏移量与输出分辨率高度的比率,取值范围为(0,1)。
Dy Float 默认值为0。值有两种形式:
  • 整数型代表偏移像素,单位为px,取值范围为[1,4096]。
  • 小数型代表垂直偏移量与输出分辨率高度的比率,取值范围为(0,1)。
Start Integer 水印开始时间,默认值为0。0表示从头开始,单位为秒。
Duration Integer 水印持续时间,默认值为0。0表示持续到视频结束,单位为秒。
ReferPos String 水印的位置,取值范围包括TopRight、TopLeft、BottomRight和BottomLeft。默认值为TopLeft。
Content String 文字水印内容。当设置Type为Text时有效。
FontName String 字体名称。当设置Type为Text时有效。支持的字体列表如下:
  • SourceHanSans-Regular
  • SourceHanSans-Bold
  • SourceHanSerif-Regular
  • SourceHanSerif-Bold
FontSize Integer 字体大小。默认值为16。范围为(4,120)。当设置Type为Text时有效。
FontColor String 字体颜色。#RRGGBB格式。默认值为#000000。当设置Type为Text时有效。
FontAlpha Float 字体透明度。取值范围为(0,1],默认值为1.0。当设置Type为Text时有效。
BorderWidth Integer 描边宽度。默认值为0。取值范围为[0,4096]。当设置Type为Text时有效。
BorderColor String 描边颜色。#RRGGBB格式,默认#000000。当设置Type为Text时有效。
FileUri String 水印文件的OSS URI。支持PNG和MOV格式。当设置Type为File时有效。
Width Float 水印图片宽度,当设置Type为File时有效。值有两种形式:
  • 整数型代水印图片宽的像素值,单位为px,取值范围为(1,4096]。
  • 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1]。
Height Float 水印图片高度,当设置Type为File时有效。值有两种形式:
  • 整数型代水印图片高的像素值,单位为px,取值范围为(1,4096]。
  • 小数型代表相对输出视频分辨率宽度的比率,取值范围为(0,1]。
水印宽度和高度参数设置说明:
  • 宽度和高度均未设置时,水印宽度取输出视频分辨率宽度的0.12倍,水印高度按水印原图宽高比例等比缩放。
  • 宽度或高度只设置一边,另一边未设置时,则另一边按水印原图宽高比等比缩放。
  • 宽度和高度两边均设置时,按实际设置值设置水印图片。

水印位置坐标说明:

fig_watermark

返回参数

名称 类型 描述
RequestId String 请求ID。
TaskId String 任务ID。
TaskType String 任务的类型,返回值固定为CompressVideoTask。

示例

请求示例

POST https://imm.cn-shanghai.aliyuncs.com
?Action=CreateVideoCompressTask 
&Project=test
&VideoUri=oss://xxx/test/res.m3u8
&TargetList=[]
            

成功返回示例

{
  "RequestId": "10AFFE69-73BA-47C2-8A85-029AA9DA72A3", 
  "TaskId": "VideoCompressTask-ffcdec0c-73ba-451a-bec4-a9fe3f4cd765", 
  "TaskType": "VideoCompressTask"
}
            

订阅消息返回示例

返回参数

Parameter Type Comment
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://abc/def.mp4\",\"Success\":\"true\",\"TargetDuration\": 140, \"TargetResolution\":\"640x480\"},{\"TargetUri\":\"oss://abc/def.mp4\",\"Success\":\"false\",\"Reason\":\"Invalid Parameters\"}]"
            }
        }
    ]
}
            

如果在使用中有疑问,请参考基础问题,或者进入钉钉用户群(钉钉群号:21714099)实时交流。