Submits transcoding jobs.
Usage notes
- If the transcoding jobs and workflows created in the ApsaraVideo Media Processing (MPS) console cannot meet your business requirements, you can call the SubmitJobs operation to submit transcoding jobs. Specify transcoding parameters as required when you call the SubmitJobs operation.
- If you want to use multiple accounts in MPS, you can create RAM users by using your Alibaba Cloud account and grant the MPSfullaccess permission to the RAM users. If the Alibaba Cloud account that is used to query transcoding jobs is not the Alibaba Cloud account that is used to create the transcoding jobs, no data is returned. For more information, see Create a RAM role for a trusted Alibaba Cloud account and authorize the RAM role to access MPS.
- A transcoding job is generated for each transcoding output. This API operation returns information about the transcoding jobs that are generated.
- A video is re-encoded during transcoding in MPS. The bitrate of the transcoded video may be different from that of the source video. If you want to retain the bitrate of a video during transcoding, you can use a container format conversion template. For more information, see Preset template details.
- Jobs are added to an MPS queue in which the jobs are scheduled and run. After the jobs are run, you can call the QueryJobList operation to query the results of the jobs. Alternatively, you can enable asynchronous notifications so that you can be automatically notified of the job results.Note To enable asynchronous notifications, you must bind a Message Service (MNS) topic to the MPS queue in which the transcoding jobs are run. If an asynchronous message is returned for a transcoding job in the MPS queue, MPS forwards the message to the specified MNS topic.
- To use an intelligent preset template to transcode a video, you must first call the SubmitAnalysisJob operation to submit a template analysis job for the video. After the template analysis job is complete, you can call the QueryAnalysisJobList operation to query the intelligent preset templates that are applicable to the video.Note When you submit a transcoding job, set the
TemplateIdparameter to the ID of an applicable preset template. If you specify a preset template that is not included in the applicable preset templates when you submit a transcoding job, the transcoding job fails. - If you use a static preset template to transcode a video, you do not need to submit a template analysis job first.
- The size of the input file in a transcoding job can be up to 100 GB. Otherwise, the transcoding job may fail.
- For information about transcoding FAQ, see FAQ about MPS.
QPS limits
You can call this operation up to 100 times per second per account. Requests that exceed this limit are dropped and you will experience service interruptions. We recommend that you take note of this limit when you call this operation. For more information, see QPS limit.
Debugging
Request parameters
| Parameter | Type | Required | Example | Description |
|---|---|---|---|---|
| Action | String | Yes | SubmitJobs | The operation that you want to perform. Set the value to SubmitJobs. |
| Input | String | Yes | {"Bucket":"exampleBucket","Location":"oss-cn-hangzhou","Object":"example.flv","Referer": "The parameter that you set in the Object Storage Service (OSS) console to enable the hotlink protection feature"} | The input of the jobs. Specify the value in a JSON object. The Referer parameter is optional. If you need to set a referer whitelist in a transcoding job, you must specify the Referer parameter in the input. For more information about the parameters in the Input parameter, see the Input section of the "Parameter details" topic. Note You can specify the {ObjectPrefix}, {FileName}, and {ExtName} variables in an OSS URL. MPS can dynamically replace the variables with the actual values. For example, you specify a/b/c/test.flv as the object to be used as the input file and {ObjectPrefix}{FileName}-cn.srt as the object to be used as the external subtitle file. After URL encoding, the specified OSS URL of the external subtitle file is %7bObjectPrefix%7d%7bFileName%7d-cn.srt. Then, MPS replaces the variables to obtain a/b/c/test-cn.srt as the OSS URL of the external subtitle file. |
| Outputs | String | Yes | [{"OutputObject":"exampleOutput.mp4","TemplateId":"6181666213ab41b9bc21da8ff5ff****","WaterMarks":[{"InputFile":{"Bucket":"exampleBucket","Location":"oss-cn-hangzhou","Object":"image_01.png"},"WaterMarkTemplateId":"9b772ce2740d4d55876d8b542d47****"}],"UserData":"testid-001"}] | The outputs of the jobs.
Note If you need to merge images in a transcoding job, set the width and height of each image to be processed to even numbers. Otherwise, the job may fail. |
| OutputBucket | String | Yes | exampleBucket | The name of the output bucket. To obtain the name of an output bucket, you can log on to the MPS console, choose Workflows > Media Buckets in the left-side navigation pane, and then click the Output Buckets tab. |
| OutputLocation | String | No | oss-cn-hangzhou | The region in which the output bucket resides. |
| PipelineId | String | Yes | dd3dae411e704030b921e52698e5**** | The ID of the MPS queue. To obtain the ID of an MPS queue, you can log on to the MPS console and choose Global Settings > Pipelines in the left-side navigation pane.
|
Response parameters
| Parameter | Type | Example | Description |
|---|---|---|---|
| JobResultList | Array of JobResult | The transcoding jobs that are generated. |
|
| JobResult | |||
| Job | Object | The details of the job. If the job fails to be submitted, no job ID is generated. |
|
| CreationTime | String | 2014-01-10T12:00:00Z | The time when the job was created. |
| Percent | Long | 100 | The transcoding progress. |
| FinishTime | String | 2014-01-10T12:20:00Z | The time when the job was complete. |
| State | String | Submitted | The state of the job. Valid values:
|
| JobId | String | 31fa3c9ca8134f9cec2b4b0b0f78**** | The ID of the job. |
| Code | String | InternalError | The error code returned if the job failed. This parameter is not returned if the job is successful. |
| Message | String | The operation has failed due to some unknown error, exception or failure. | The error message returned if the job failed. This parameter is not returned if the job is successful. |
| Output | Object | The output of the job. |
|
| Video | Object | The video configurations. Note If this parameter is specified in the request, the setting of the AliyunVideoCodec parameter in the template specified by the TemplateId parameter is overwritten by the setting of this parameter. |
|
| Bufsize | String | 1000 | The size of the buffer.
|
| Degrain | String | 5 | The level of the independent denoising algorithm. |
| BitrateBnd | Object | The average bitrate range of the video. |
|
| Max | String | 20 | The upper limit of the total bitrate. Unit: Kbit/s. |
| Min | String | 10 | The lower limit of the total bitrate. Unit: Kbit/s. |
| PixFmt | String | yuvj420p | The pixel format for video color encoding.
|
| Pad | String | 1280:800:0:140 | The black bars to be added to the video.
|
| Codec | String | H.264 | The video codec.
|
| Height | String | 1280 | The height of the video.
|
| Qscale | String | 15 | The level of quality control on the video. |
| Crop | String | 1280:800:0:140 | The method of video cropping. Valid values:
|
| Bitrate | String | 10 | The bitrate of the output video. Unit: Kbit/s. |
| Maxrate | String | 10 | The maximum bitrate of the video. Unit: Kbit/s. |
| MaxFps | String | 15 | The maximum frame rate. |
| Profile | String | baseline | The encoding profile. This parameter is returned only for the H.264 codec. Default value: high. Valid values: Note If multiple definitions are involved, we recommend that you use baseline for the lowest definition to ensure normal playback on low-end devices, and use main or high for other definitions.
|
| Crf | String | 22 | The constant rate factor.
|
| Gop | String | 1 | The Group of Pictures (GOP) size. The GOP size can be the maximum interval of keyframes or the maximum number of frames in a frame group. Unit: seconds.
|
| Width | String | 1080 | The width of the video.
|
| Fps | String | 60 | The frame rate of the video.
|
| Preset | String | veryfast | The preset video algorithm. Default value: medium. Valid values:
|
| ScanMode | String | interlaced | The scan mode. Valid values:
|
| ResoPriority | String | 1 | The priority of the resource. |
| TransConfig | Object | The general transcoding configurations. Note If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified transcoding template. |
|
| IsCheckAudioBitrate | String | false | Indicates whether the audio bitrate is checked. If the bitrate of the output audio is higher than that of the input audio, the system considers that the output bitrate equals the input bitrate and the specified audio bitrate does not take effect. The IsCheckAudioBitrateFail parameter takes precedence over this parameter. Valid values:
|
| TransMode | String | onepass | The transcoding mode. Valid values:
|
| IsCheckReso | String | false | Indicates whether the resolution is checked. If the output resolution is higher than the input resolution based on the width or height, the system considers that the output resolution equals the input resolution. Valid values:
|
| IsCheckVideoBitrateFail | String | true | Indicates whether the video bitrate is checked. If the bitrate of the output video is higher than that of the input video, a transcoding failure is returned without video transcoding. This parameter takes precedence over the IsCheckVideoBitrate parameter. Valid values:
|
| AdjDarMethod | String | crop | The method of resolution adjustment. Default value: none. Valid values:
|
| IsCheckVideoBitrate | String | false | Indicates whether the video bitrate is checked. If the bitrate of the output video is higher than that of the input video, the system considers that the output bitrate equals the input bitrate. Valid values:
|
| IsCheckResoFail | String | false | Indicates whether the resolution is checked. This parameter takes precedence over the IsCheckReso parameter. If the output resolution is higher than the input resolution based on the width or height, a transcoding failure is returned without video transcoding. Valid values:
|
| IsCheckAudioBitrateFail | String | true | Indicates whether the audio bitrate is checked. This parameter takes precedence over the IsCheckAudioBitrate parameter. If the bitrate of the output audio is higher than that of the input audio, a transcoding failure is returned without video transcoding. Valid values:
|
| Encryption | Object | The encryption configuration. Only outputs in the M3U8 format are supported. |
|
| Type | String | hls-aes-128 | The encryption type. The value is hls-aes-128. |
| Key | String | encryptionkey128 | The key that is used to encrypt the video. |
| KeyType | String | Base64 | The key encryption method. Keys cannot be transmitted to MPS in plaintext. Keys must be encrypted by using Base64 or Key Management Service (KMS). For example, if the key is encryptionkey128, you can encrypt the key by using the following method: Base64("encryptionkey128") or KMS(Base64("encryptionkey128"). |
| Id | String | 31fa3c9ca8134f9cec2b4b0b0f78**** | The encryption ID. |
| KeyUri | String | https://1161758785*****.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/HLS-decyptServer/decyptServer/ | The URL that is used to request the key. The URL is Base64-encoded. |
| SkipCnt | String | 3 | The number of unencrypted frames at the beginning of the video. Leaving these frames unencrypted enables video playback to quickly start. |
| WaterMarkList | Array of WaterMark | The list of watermarks. Note If watermarks are truncated or fail to be added to the video, check whether the text watermarks that you add contain special characters. If the text watermarks contain special characters, you must escape the special characters. Alternatively, submit a ticket for technical support. |
|
| WaterMark | |||
| Type | String | Image | The type of the watermark. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified watermark template. For more information, see Parameter details. Valid values:
|
| ReferPos | String | TopRight | The position of the watermark. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified watermark template. Valid values:
|
| Dx | String | 1 | The horizontal offset of the watermark relative to the output video. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified watermark template. Default value: 0. The value can be an integer or a decimal number.
|
| Width | String | 1080 | The width of the watermark. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified watermark template. The value can be an integer or a decimal number.
|
| Height | String | 1280 | The height of the watermark. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified watermark template. The value can be an integer or a decimal number.
|
| InputFile | Object | The watermark input file. You can use an image in the PNG format or a file in the MOV format as the watermark input. |
|
| Object | String | example-logo-****.png | The name of the OSS object that is used as the input file. |
| Location | String | oss-cn-hangzhou | The ID of the OSS region in which the input file resides. |
| Bucket | String | example-bucket | The name of the OSS bucket in which the input file is stored. |
| WaterMarkTemplateId | String | 88c6ca184c0e47098a5b665e2a12**** | The ID of the watermark template. |
| Dy | String | 1 | The vertical offset of the watermark image relative to the output video. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified watermark template. The value can be an integer or a decimal number.
|
| WaterMarkConfigUrl | String | http://example.com/configure | The URL of the watermark configuration file. |
| DeWatermark | String | {"0": [{"l": 10,"t": 10,"w": 10,"h": 10},{"l": 100,"t": 0.1,"w": 10,"h": 10}],"128000": [],"250000": [{"l": 0.2,"t": 0.1,"w": 0.01,"h": 0.05}]} | The configurations of watermark blurring. The value is a JSON object. For more information, see the DeWatermark section of the Parameter details topic. |
| M3U8NonStandardSupport | Object | The non-standard support configuration for M3U8. The value is a JSON object. For more information, see the M3U8NonStandardSupport section of the Parameter details topic. |
|
| TS | Object | The non-standard support configuration for TS files. The value is a JSON object. For more information, see the TS section of the Parameter details topic. |
|
| SizeSupport | Boolean | true | Indicates whether the size of the TS file is generated in the output M3U8 video. Valid values:
|
| Md5Support | Boolean | true | Indicates whether the MD5 value of the TS file is generated in the output M3U8 video. Valid values:
|
| Priority | String | 5 | The priority of the job in the MPS queue to which the job is added.
|
| Audio | Object | The audio configurations. Note If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified transcoding template. |
|
| Profile | String | aac_low | The codec profile of the audio. Note Valid values when the value of the Codec parameter is aac: aac_low, aac_he, aac_he_v2, aac_ld, and aac_eld. |
| Codec | String | aac | The audio codec.
|
| Samplerate | String | 32000 | The sampling rate.
Note If the video container format is FLV and the audio codec is MP3, the sampling rate cannot be 32000, 48000, or 96000. If the audio codec is MP3, the sampling rate cannot be 96000. |
| Qscale | String | 15 | The level of quality control on the audio. |
| Channels | String | 6 | The number of sound channels.
|
| Volume | Object | The volume configurations. |
|
| Method | String | auto | The volume adjustment method. Valid values:
|
| Level | String | -20 | The volume adjustment range.
|
| Bitrate | String | 128 | The audio bitrate of the output file.
|
| AudioStreamMap | String | 0:a:0 | The sequence number of the audio stream.
|
| MergeList | Array of Merge | The configurations for merging clips. |
|
| Merge | |||
| Start | String | 00000.50 | The start point in time of the clip.
|
| RoleArn | String | acs:ram::<your uid>:role/<your role name> | The Alibaba Cloud Resource Name (ARN) of the role used for delegated authorization. |
| MergeURL | String | http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/example-object-****.flv | The OSS URL of the clip.
|
| Duration | String | 00000.20 | The duration of the clip.
|
| SuperReso | Object | The configurations for using the resolution of the source video. |
|
| IsHalfSample | String | true | Indicates whether parameters related to the sampling rate are obtained. Valid values:
|
| UserData | String | example data | The custom data. |
| OutSubtitleList | Array of OutSubtitle | The list of output subtitles. |
|
| OutSubtitle | |||
| Map | String | 0:v:0 | The video stream. Format: |
| OutSubtitleFile | Object | The details of the output file. |
|
| RoleArn | String | acs:ram::<your uid>:role/<your role name> | The ARN of the role used for delegated authorization. |
| Object | String | example-output.flv | The name of the OSS object that is used as the output file. |
| Location | String | oss-cn-hangzhou | The ID of the OSS region in which the output file resides. |
| Bucket | String | example-bucket-**** | The name of the OSS bucket in which the output file is stored. |
| Success | Boolean | true | Indicates whether the job is created. Valid values:
|
| Message | String | The specified parameter "%s" cannot be null. | The error message returned if the job failed to be created. This parameter is not returned if the job is created. |
| DigiWaterMark | Object | The digital watermarks. |
|
| Type | String | Image | The type of the watermark. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified watermark template. Valid values:
|
| Alpha | String | 1.0 | The transparency of the text or image.
|
| InputFile | Object | The details of the input file. |
|
| Object | String | example-intput.flv | The name of the OSS object that is used as the input file. |
| Location | String | oss-cn-hangzhou | The ID of the OSS region in which the input file resides. |
| Bucket | String | example-bucket-**** | The name of the OSS bucket in which the input file is stored. |
| VideoStreamMap | String | 0:a:0 | The sequence number of the video stream.
|
| OutputFile | Object | The details of the output file. |
|
| RoleArn | String | acs:ram::<your uid>:role/<your role name> | The ARN of the role used for delegated authorization. |
| Object | String | example-output.flv | The name of the OSS object that is used as the output file. |
| Location | String | oss-cn-hangzhou | The ID of the OSS region in which the output file resides. |
| Bucket | String | example-bucket-**** | The name of the OSS bucket in which the output file is stored. |
| AmixList | Array of Amix | The list of audio tracks to be mixed. |
|
| Amix | |||
| Map | String | 0:a:0 | The audio track to be mixed. Format: 0:a:{audio_index}. Example: 0:a:0. |
| Start | String | 0 | The start point in time of the audio track. The value is in the number or time format. Examples: 1:25:36.240 and 32000.23. |
| AmixURL | String | https://outpu***.oss-cn-shanghai.aliyuncs.com/mp4-to-mp3%5E1571025263578816%40.mp3 | The URL of the audio track to be mixed as the background music.
|
| Duration | String | 20 | The duration of the audio track. The value is in the number or time format. |
| MixDurMode | String | long | The mode to specify the mixing duration. Valid values: first and long.
|
| Rotate | String | 180 | The rotation angle of the video, in the clockwise direction. |
| Container | Object | The container configurations. |
|
| Format | String | flv | The container format.
|
| Clip | Object | The information about the clip. |
|
| TimeSpan | Object | The time span of the clip. |
|
| Seek | String | 01:59:59.999 | The time when the clip starts.
|
| Duration | String | 01:00:59.999 | The duration of the clip.
|
| MergeConfigUrl | String | `{"MergeList":[{"MergeURL":"http://exampleBucket****.oss-cn-hangzhou.aliyuncs.com/video_01.mp4"}]} | Only one of the MergeList and MergeConfigUrl parameters takes effect.
|
| OpeningList | Array of Opening | The list of opening parts. The value is a JSON object. |
|
| Opening | |||
| openUrl | String | http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/opening_01.flv | The OSS URL of the opening part of the video. |
| Start | String | 1 | The amount of time after which the opening part is played. The value starts from 0.
|
| Width | String | 1920 | The width of the opening part.
|
| Height | String | 1080 | The height of the opening part.
|
| MuxConfig | Object | The transmuxing configurations. If this parameter is specified in the request, the value of this parameter overwrites the value of the corresponding parameter in the specified transcoding template. |
|
| Webp | Object | The transmuxing configuration for WebP. |
|
| Loop | String | 0 | The loop count. |
| Gif | Object | The transmuxing configuration for GIF. |
|
| FinalDelay | String | 0 | The duration for which the final frame is paused. Unit: centiseconds. |
| DitherMode | String | bayer | The color dithering algorithm of the palette. Valid values: sierra and bayer. |
| Loop | String | 0 | The loop count. |
| IsCustomPalette | String | false | Indicates whether the custom palette is used. Valid values:
|
| Segment | Object | The segment configurations. The value is a JSON object. |
|
| Duration | String | 20 | The length of the segment. The value is an integer. Unit: seconds.
|
| TailSlateList | Array of TailSlate | The list of ending parts. The value is a JSON object. |
|
| TailSlate | |||
| Start | String | 1 | The start time. |
| BgColor | String | White | The color of the bars that are added to the ending part if the size of the ending part is smaller than that of the main part. Default value: White. For more information, see Background colors. |
| IsMergeAudio | Boolean | false | Indicates whether the audio content of the ending part is merged. Valid values:
|
| Width | String | 1920 | The width of the ending part.
|
| Height | String | 1080 | The height of the ending part.
|
| BlendDuration | String | 2 | The amount of time between the end of the main part and the beginning of the ending part. During the transition, the last frame of the main part fades out, and the first frame of the ending part fades in. Unit: seconds. Default value: 0. |
| TailUrl | String | http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/opening_01.flv | The OSS URL of the ending part. |
| TemplateId | String | S00000000-000010 | The ID of the transcoding template. |
| SubtitleConfig | Object | The subtitle configurations. |
|
| ExtSubtitleList | Array of ExtSubtitle | The list of external subtitles. The value is a JSON array that contains up to four objects. |
|
| ExtSubtitle | |||
| CharEnc | String | UTF-8 | The character set used by the external subtitle.
Note If the value of this parameter is auto, the detected character set may not be the actual character set. We recommend that you use a specific character set. |
| FontName | String | "WenQuanYi Zen Hei", "Yuanti SC Regular", "SimSun" | The font of the hard subtitles converted from external subtitles. Default value: SimSun. For more information, see Fonts. |
| Input | Object | The OSS object that is used as the external subtitle. The value is a JSON object. Files in the SRT or ASS format are supported. |
|
| Object | String | example-output.flv | The name of the OSS object that is used as the input file. |
| Location | String | oss-cn-hangzhou | The ID of the OSS region in which the input file resides. |
| Bucket | String | example-bucket-**** | The name of the OSS bucket in which the input file is stored. |
| SubtitleList | Array of Subtitle | The list of subtitles. |
|
| Subtitle | |||
| Map | String | 0:a:0 | The audio track. Format: |
| Properties | Object | The media properties. |
|
| Width | String | 1280 | The width of the video. |
| Height | String | 720 | The length of the video. |
| Duration | String | 55 | The duration of the video. |
| Fps | String | 25 | The frame rate of the video. The value is a number. |
| Bitrate | String | 1000 | The bitrate of the video. |
| FileFormat | String | QuickTime / MOV | The format of the video. |
| Streams | Object | The stream information. |
|
| VideoStreamList | Array of VideoStream | The list of video streams. |
|
| VideoStream | |||
| Index | String | 0 | The sequence number of the video stream. The value indicates the position of the video stream in all video streams. |
| Timebase | String | 1/24000 | The time base of the video stream. |
| AvgFPS | String | 23.976025 | The average frame rate of the video stream. |
| PixFmt | String | yuv420p | The pixel format of the video stream. |
| Sar | String | 1:1 | The sample aspect ratio (SAR) of the video stream. |
| Lang | String | eng | The language of the video stream. For more information, see FFmpeg documentation and ISO 639. |
| CodecLongName | String | H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 | The full name of the encoding format. |
| Height | String | 720 | The height of the video stream in pixels. |
| NumFrames | String | 25 | The total number of frames. |
| Bitrate | String | 1496.46 | The bitrate of the video stream. |
| CodecTagString | String | avc1 | The tag string of the encoding format. |
| HasBFrames | String | 2 | Indicates whether the video stream contains bidirectional frames (B-frames). |
| Profile | String | high | The codec profile. |
| StartTime | String | 0.000000 | The start point in time of the video stream. |
| NetworkCost | Object | The network bandwidth that was consumed. |
|
| PreloadTime | String | 8 | The amount of preload time. |
| AvgBitrate | String | 100 | The average bitrate of the video stream. |
| CostBandwidth | String | 10 | The maximum bandwidth that was consumed. |
| Dar | String | 16:9 | The display aspect ratio (DAR) of the video stream. |
| CodecName | String | h264 | The short name of the encoding format. |
| Width | String | 1280 | The width of the video stream in pixels. |
| Duration | String | 17.225542 | The duration of the video stream. |
| Fps | String | 23.976025 | The frame rate of the video stream. |
| CodecTag | String | 0x31637661 | The tag of the encoding format. |
| CodecTimeBase | String | 1001/48000 | The codec time base. |
| Level | String | 51 | The codec level. |
| AudioStreamList | Array of AudioStream | The list of audio streams. |
|
| AudioStream | |||
| Timebase | String | 1/44100 | The time base of the audio stream. |
| Index | String | 1 | The sequence number of the audio stream. The value indicates the position of the audio stream in all audio streams. |
| SampleFmt | String | fltp | The sampling format of the audio stream. |
| ChannelLayout | String | stereo | The output layout of the sound channels. |
| Lang | String | eng | The language of the audio stream. For more information, see FFmpeg documentation and ISO 639. |
| Samplerate | String | 44100 | The sampling rate of the audio stream. |
| CodecLongName | String | AAC (Advanced Audio Coding) | The full name of the encoding format. |
| Channels | String | 2 | The number of sound channels. |
| NumFrames | String | 25 | The total number of frames. |
| Bitrate | String | 128.806 | The bitrate of the audio stream. |
| CodecTagString | String | mp4a | The tag string of the encoding format. |
| StartTime | String | 0.000000 | The start point in time of the audio stream. |
| CodecName | String | aac | The short name of the encoding format. |
| Duration | String | 17.159546 | The duration of the audio stream. |
| CodecTag | String | 0x6134706d | The tag of the encoding format. |
| CodecTimeBase | String | 1/44100 | The codec time base. |
| SubtitleStreamList | Array of SubtitleStream | The list of subtitle streams. |
|
| SubtitleStream | |||
| Index | String | 1 | The sequence number of the subtitle stream. The value indicates the position of the subtitle stream in all subtitle streams. |
| Lang | String | eng | The language of the subtitle stream. For more information, see FFmpeg documentation and ISO 639. |
| Format | Object | The format information. |
|
| StartTime | String | 0.000000 | The start time. |
| NumPrograms | String | 0 | The total number of program streams. |
| Size | String | 3509895 | The size of the file. |
| NumStreams | String | 2 | The total number of media streams. |
| FormatLongName | String | QuickTime / MOV | The full name of the container format. |
| Duration | String | 55 | The total duration. |
| Bitrate | String | 1000 | The total bitrate. |
| FormatName | String | mov | The short name of the container format. Valid values: mov, mp4, m4a, 3gp, 3g2, and mj2. |
| FileSize | String | 3509895 | The size of the file. |
| PipelineId | String | 88c6ca184c0e47098a5b665e2a126797 | The ID of the MPS queue. |
| Input | Object | The information about the job input. |
|
| Object | String | example.flv | The name of the OSS object that is used as the job input. |
| Location | String | oss-cn-hangzhou | The ID of the OSS region in which the job input resides. |
| Bucket | String | example-bucket-**** | The name of the OSS bucket in which the job input is stored. |
| MNSMessageResult | Object | The message sent by MNS to notify you of the job result. |
|
| MessageId | String | 123 | The ID of the error message returned if the job failed. This parameter is not returned if the job is successful. |
| ErrorMessage | String | The resource operated "%s" cannot be found. | The error message returned if the job failed. This parameter is not returned if the job is successful. |
| ErrorCode | String | InvalidParameter.ResourceNotFound | The error code returned if the job failed. This parameter is not returned if the job is successful. |
| Success | Boolean | true | Indicates whether the job is created. Valid values:
|
| Code | String | InvalidParameter.NullValue | The error code returned if the job failed to be created. This parameter is not returned if the job is created. |
| Message | String | The specified parameter "%s" cannot be null. | The error message returned if the job failed to be created. This parameter is not returned if the job is created. |
| RequestId | String | 25818875-5F78-4A45S71F6-D73936451234 | The ID of the request. |
Examples
Sample requests
http(s)://mts.cn-hangzhou.aliyuncs.com/?Action=SubmitJobs
&Input={"Bucket":"exampleBucket","Location":"oss-cn-hangzhou","Object":"example.flv","Referer": "The parameter that you set in the OSS console to enable the hotlink protection feature"}
&Outputs=[{"OutputObject":"exampleOutput.mp4","TemplateId":"6181666213ab41b9bc21da8ff5ff****","WaterMarks":[{"InputFile":{"Bucket":"exampleBucket","Location":"oss-cn-hangzhou","Object":"image_01.png"},"WaterMarkTemplateId":"9b772ce2740d4d55876d8b542d47****"}],"UserData":"testid-001"}]
&OutputBucket=exampleBucket
&OutputLocation=oss-cn-hangzhou
&PipelineId=dd3dae411e704030b921e52698e5****
&<Common request parameters>
Sample success responses
XML format
HTTP/1.1 200 OK
Content-Type:application/xml
<SubmitJobsResponse>
<JobResultList>
<Job>
<CreationTime>2014-01-10T12:00:00Z</CreationTime>
<Percent>100</Percent>
<FinishTime>2014-01-10T12:20:00Z</FinishTime>
<State>Submitted</State>
<JobId>31fa3c9ca8134f9cec2b4b0b0f78****</JobId>
<Code>InternalError</Code>
<Message>The operation has failed due to some unknown error, exception or failure.</Message>
<Output>
<Video>
<Bufsize>1000</Bufsize>
<Degrain>5</Degrain>
<BitrateBnd>
<Max>20</Max>
<Min>10</Min>
</BitrateBnd>
<PixFmt>yuvj420p</PixFmt>
<Pad>1280:800:0:140</Pad>
<Codec>H.264</Codec>
<Height>1280</Height>
<Qscale>15</Qscale>
<Crop>1280:800:0:140</Crop>
<Bitrate>10</Bitrate>
<Maxrate>10</Maxrate>
<MaxFps>15</MaxFps>
<Profile>baseline</Profile>
<Crf>22</Crf>
<Gop>1</Gop>
<Width>1080</Width>
<Fps>60</Fps>
<Preset>veryfast</Preset>
<ScanMode>interlaced</ScanMode>
<ResoPriority>1</ResoPriority>
</Video>
<TransConfig>
<IsCheckAudioBitrate>false</IsCheckAudioBitrate>
<TransMode>onepass</TransMode>
<IsCheckReso>false</IsCheckReso>
<IsCheckVideoBitrateFail>true</IsCheckVideoBitrateFail>
<AdjDarMethod>crop</AdjDarMethod>
<IsCheckVideoBitrate>false</IsCheckVideoBitrate>
<IsCheckResoFail>false</IsCheckResoFail>
<IsCheckAudioBitrateFail>true</IsCheckAudioBitrateFail>
</TransConfig>
<Encryption>
<Type>hls-aes-128</Type>
<Key>encryptionkey128</Key>
<KeyType>Base64</KeyType>
<Id>31fa3c9ca8134f9cec2b4b0b0f78****</Id>
<KeyUri>https://1161758785*****.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/HLS-decyptServer/decyptServer/</KeyUri>
<SkipCnt>3</SkipCnt>
</Encryption>
<WaterMarkList>
<Type>Image</Type>
<ReferPos>TopRight</ReferPos>
<Dx>1</Dx>
<Width>1080</Width>
<Height>1280</Height>
<InputFile>
<Object>example-logo-****.png</Object>
<Location>oss-cn-hangzhou</Location>
<Bucket>example-bucket</Bucket>
</InputFile>
<WaterMarkTemplateId>88c6ca184c0e47098a5b665e2a12****</WaterMarkTemplateId>
<Dy>1</Dy>
</WaterMarkList>
<WaterMarkConfigUrl>http://example.com/configure</WaterMarkConfigUrl>
<DeWatermark>{"0": [{"l": 10,"t": 10,"w": 10,"h": 10},{"l": 100,"t": 0.1,"w": 10,"h": 10}],"128000": [],"250000": [{"l": 0.2,"t": 0.1,"w": 0.01,"h": 0.05}]}</DeWatermark>
<M3U8NonStandardSupport>
<TS>
<SizeSupport>true</SizeSupport>
<Md5Support>true</Md5Support>
</TS>
</M3U8NonStandardSupport>
<Priority>5</Priority>
<Audio>
<Profile>aac_low</Profile>
<Codec>aac</Codec>
<Samplerate>32000</Samplerate>
<Qscale>15</Qscale>
<Channels>6</Channels>
<Volume>
<Method>auto</Method>
<Level>-20</Level>
</Volume>
<Bitrate>128</Bitrate>
</Audio>
<AudioStreamMap>0:a:0</AudioStreamMap>
<MergeList>
<Start>00000.50</Start>
<RoleArn>acs:ram::<your uid>:role/<your role name></RoleArn>
<MergeURL>http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/example-object-****.flv</MergeURL>
<Duration>00000.20</Duration>
</MergeList>
<SuperReso>
<IsHalfSample>true</IsHalfSample>
</SuperReso>
<UserData>example data</UserData>
<OutSubtitleList>
<Map>0:v:0</Map>
<OutSubtitleFile>
<RoleArn>acs:ram::<your uid>:role/<your role name></RoleArn>
<Object>example-output.flv</Object>
<Location>oss-cn-hangzhou</Location>
<Bucket>example-bucket-****</Bucket>
</OutSubtitleFile>
<Success>true</Success>
<Message>The specified parameter "%s" cannot be null.</Message>
</OutSubtitleList>
<DigiWaterMark>
<Type>Image</Type>
<Alpha>1.0</Alpha>
<InputFile>
<Object>example-intput.flv</Object>
<Location>oss-cn-hangzhou</Location>
<Bucket>example-bucket-****</Bucket>
</InputFile>
</DigiWaterMark>
<VideoStreamMap>0:a:0</VideoStreamMap>
<OutputFile>
<RoleArn>acs:ram::<your uid>:role/<your role name></RoleArn>
<Object>example-output.flv</Object>
<Location>oss-cn-hangzhou</Location>
<Bucket>example-bucket-****</Bucket>
</OutputFile>
<AmixList>
<Map>0:a:0</Map>
<Start>0</Start>
<AmixURL>https://outpu***.oss-cn-shanghai.aliyuncs.com/mp4-to-mp3%5E1571025263578816%40.mp3</AmixURL>
<Duration>20</Duration>
<MixDurMode>long</MixDurMode>
</AmixList>
<Rotate>180</Rotate>
<Container>
<Format>flv</Format>
</Container>
<Clip>
<TimeSpan>
<Seek>01:59:59.999</Seek>
<Duration>01:00:59.999</Duration>
</TimeSpan>
</Clip>
<MergeConfigUrl>`{"MergeList":[{"MergeURL":"http://exampleBucket****.oss-cn-hangzhou.aliyuncs.com/video_01.mp4"}]}</MergeConfigUrl>
<OpeningList>
<openUrl>http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/opening_01.flv</openUrl>
<Start>1</Start>
<Width>1920</Width>
<Height>1080</Height>
</OpeningList>
<MuxConfig>
<Webp>
<Loop>0</Loop>
</Webp>
<Gif>
<FinalDelay>0</FinalDelay>
<DitherMode>bayer</DitherMode>
<Loop>0</Loop>
<IsCustomPalette>false</IsCustomPalette>
</Gif>
<Segment>
<Duration>20</Duration>
</Segment>
</MuxConfig>
<TailSlateList>
<Start>1</Start>
<BgColor>White</BgColor>
<IsMergeAudio>false</IsMergeAudio>
<Width>1920</Width>
<Height>1080</Height>
<BlendDuration>2</BlendDuration>
<TailUrl>http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/opening_01.flv</TailUrl>
</TailSlateList>
<TemplateId>S00000000-000010</TemplateId>
<SubtitleConfig>
<ExtSubtitleList>
<CharEnc>UTF-8</CharEnc>
<FontName>"WenQuanYi Zen Hei", "Yuanti SC Regular", "SimSun"</FontName>
<Input>
<Object>example-output.flv</Object>
<Location>oss-cn-hangzhou</Location>
<Bucket>example-bucket-****</Bucket>
</Input>
</ExtSubtitleList>
<SubtitleList>
<Map>0:a:0</Map>
</SubtitleList>
</SubtitleConfig>
<Properties>
<Width>1280</Width>
<Height>720</Height>
<Duration>55</Duration>
<Fps>25</Fps>
<Bitrate>1000</Bitrate>
<FileFormat>QuickTime / MOV</FileFormat>
<Streams>
<VideoStreamList>
<Index>0</Index>
<Timebase>1/24000</Timebase>
<AvgFPS>23.976025</AvgFPS>
<PixFmt>yuv420p</PixFmt>
<Sar>1:1</Sar>
<Lang>eng</Lang>
<CodecLongName>H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10</CodecLongName>
<Height>720</Height>
<NumFrames>25</NumFrames>
<Bitrate>1496.46</Bitrate>
<CodecTagString>avc1</CodecTagString>
<HasBFrames>2</HasBFrames>
<Profile>high</Profile>
<StartTime>0.000000</StartTime>
<NetworkCost>
<PreloadTime>8</PreloadTime>
<AvgBitrate>100</AvgBitrate>
<CostBandwidth>10</CostBandwidth>
</NetworkCost>
<Dar>16:9</Dar>
<CodecName>h264</CodecName>
<Width>1280</Width>
<Duration>17.225542</Duration>
<Fps>23.976025</Fps>
<CodecTag>0x31637661</CodecTag>
<CodecTimeBase>1001/48000</CodecTimeBase>
<Level>51</Level>
</VideoStreamList>
<AudioStreamList>
<Timebase>1/44100</Timebase>
<Index>1</Index>
<SampleFmt>fltp</SampleFmt>
<ChannelLayout>stereo</ChannelLayout>
<Lang>eng</Lang>
<Samplerate>44100</Samplerate>
<CodecLongName>AAC (Advanced Audio Coding)</CodecLongName>
<Channels>2</Channels>
<NumFrames>25</NumFrames>
<Bitrate>128.806</Bitrate>
<CodecTagString>mp4a</CodecTagString>
<StartTime>0.000000</StartTime>
<CodecName>aac</CodecName>
<Duration>17.159546</Duration>
<CodecTag>0x6134706d</CodecTag>
<CodecTimeBase>1/44100</CodecTimeBase>
</AudioStreamList>
<SubtitleStreamList>
<Index>1</Index>
<Lang>eng</Lang>
</SubtitleStreamList>
</Streams>
<Format>
<StartTime>0.000000</StartTime>
<NumPrograms>0</NumPrograms>
<Size>3509895</Size>
<NumStreams>2</NumStreams>
<FormatLongName>QuickTime / MOV</FormatLongName>
<Duration>55</Duration>
<Bitrate>1000</Bitrate>
<FormatName>mov</FormatName>
</Format>
<FileSize>3509895</FileSize>
</Properties>
</Output>
<PipelineId>88c6ca184c0e47098a5b665e2a126797</PipelineId>
<Input>
<Object>example.flv</Object>
<Location>oss-cn-hangzhou</Location>
<Bucket>example-bucket-****</Bucket>
</Input>
<MNSMessageResult>
<MessageId>123</MessageId>
<ErrorMessage>The resource operated "%s" cannot be found.</ErrorMessage>
<ErrorCode>InvalidParameter.ResourceNotFound</ErrorCode>
</MNSMessageResult>
</Job>
<Success>true</Success>
<Code>InvalidParameter.NullValue</Code>
<Message>The specified parameter "%s" cannot be null.</Message>
</JobResultList>
<RequestId>25818875-5F78-4A45S71F6-D73936451234</RequestId>
</SubmitJobsResponse>
JSON format
HTTP/1.1 200 OK
Content-Type:application/json
{
"JobResultList" : [ {
"Job" : {
"CreationTime" : "2014-01-10T12:00:00Z",
"Percent" : 100,
"FinishTime" : "2014-01-10T12:20:00Z",
"State" : "Submitted",
"JobId" : "31fa3c9ca8134f9cec2b4b0b0f78****",
"Code" : "InternalError",
"Message" : "The operation has failed due to some unknown error, exception or failure.",
"Output" : {
"Video" : {
"Bufsize" : "1000",
"Degrain" : "5",
"BitrateBnd" : {
"Max" : "20",
"Min" : "10"
},
"PixFmt" : "yuvj420p",
"Pad" : "1280:800:0:140",
"Codec" : "H.264",
"Height" : "1280",
"Qscale" : "15",
"Crop" : "1280:800:0:140",
"Bitrate" : "10",
"Maxrate" : "10",
"MaxFps" : "15",
"Profile" : "baseline",
"Crf" : "22",
"Gop" : "1",
"Width" : "1080",
"Fps" : "60",
"Preset" : "veryfast",
"ScanMode" : "interlaced",
"ResoPriority" : "1"
},
"TransConfig" : {
"IsCheckAudioBitrate" : "false",
"TransMode" : "onepass",
"IsCheckReso" : "false",
"IsCheckVideoBitrateFail" : "true",
"AdjDarMethod" : "crop",
"IsCheckVideoBitrate" : "false",
"IsCheckResoFail" : "false",
"IsCheckAudioBitrateFail" : "true"
},
"Encryption" : {
"Type" : "hls-aes-128",
"Key" : "encryptionkey128",
"KeyType" : "Base64",
"Id" : "31fa3c9ca8134f9cec2b4b0b0f78****",
"KeyUri" : "https://1161758785*****.cn-shanghai.fc.aliyuncs.com/2016-08-15/proxy/HLS-decyptServer/decyptServer/",
"SkipCnt" : "3"
},
"WaterMarkList" : [ {
"Type" : "Image",
"ReferPos" : "TopRight",
"Dx" : "1",
"Width" : "1080",
"Height" : "1280",
"InputFile" : {
"Object" : "example-logo-****.png",
"Location" : "oss-cn-hangzhou",
"Bucket" : "example-bucket"
},
"WaterMarkTemplateId" : "88c6ca184c0e47098a5b665e2a12****",
"Dy" : "1"
} ],
"WaterMarkConfigUrl" : "http://example.com/configure",
"DeWatermark" : "{\"0\": [{\"l\": 10,\"t\": 10,\"w\": 10,\"h\": 10},{\"l\": 100,\"t\": 0.1,\"w\": 10,\"h\": 10}],\"128000\": [],\"250000\": [{\"l\": 0.2,\"t\": 0.1,\"w\": 0.01,\"h\": 0.05}]}",
"M3U8NonStandardSupport" : {
"TS" : {
"SizeSupport" : true,
"Md5Support" : true
}
},
"Priority" : "5",
"Audio" : {
"Profile" : "aac_low",
"Codec" : "aac",
"Samplerate" : "32000",
"Qscale" : "15",
"Channels" : "6",
"Volume" : {
"Method" : "auto",
"Level" : "-20"
},
"Bitrate" : "128"
},
"AudioStreamMap" : "0:a:0",
"MergeList" : [ {
"Start" : "00000.50",
"RoleArn" : "acs:ram::<your uid>:role/<your role name>",
"MergeURL" : "http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/example-object-****.flv",
"Duration" : "00000.20"
} ],
"SuperReso" : {
"IsHalfSample" : "true"
},
"UserData" : "example data",
"OutSubtitleList" : [ {
"Map" : "0:v:0",
"OutSubtitleFile" : {
"RoleArn" : "acs:ram::<your uid>:role/<your role name>",
"Object" : "example-output.flv",
"Location" : "oss-cn-hangzhou",
"Bucket" : "example-bucket-****"
},
"Success" : true,
"Message" : "The specified parameter "%s" cannot be null."
} ],
"DigiWaterMark" : {
"Type" : "Image",
"Alpha" : "1.0",
"InputFile" : {
"Object" : "example-intput.flv",
"Location" : "oss-cn-hangzhou",
"Bucket" : "example-bucket-****"
}
},
"VideoStreamMap" : "0:a:0",
"OutputFile" : {
"RoleArn" : "acs:ram::<your uid>:role/<your role name>",
"Object" : "example-output.flv",
"Location" : "oss-cn-hangzhou",
"Bucket" : "example-bucket-****"
},
"AmixList" : [ {
"Map" : "0:a:0",
"Start" : "0",
"AmixURL" : "https://outpu***.oss-cn-shanghai.aliyuncs.com/mp4-to-mp3%5E1571025263578816%40.mp3",
"Duration" : "20",
"MixDurMode" : "long"
} ],
"Rotate" : "180",
"Container" : {
"Format" : "flv"
},
"Clip" : {
"TimeSpan" : {
"Seek" : "01:59:59.999",
"Duration" : "01:00:59.999"
}
},
"MergeConfigUrl" : "`{\"MergeList\":[{\"MergeURL\":\"http://exampleBucket****.oss-cn-hangzhou.aliyuncs.com/video_01.mp4\"}]}",
"OpeningList" : [ {
"openUrl" : "http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/opening_01.flv",
"Start" : "1",
"Width" : "1920",
"Height" : "1080"
} ],
"MuxConfig" : {
"Webp" : {
"Loop" : "0"
},
"Gif" : {
"FinalDelay" : "0",
"DitherMode" : "bayer",
"Loop" : "0",
"IsCustomPalette" : "false"
},
"Segment" : {
"Duration" : "20"
}
},
"TailSlateList" : [ {
"Start" : "1",
"BgColor" : "White",
"IsMergeAudio" : false,
"Width" : "1920",
"Height" : "1080",
"BlendDuration" : "2",
"TailUrl" : "http://example-bucket-****.oss-cn-hangzhou.aliyuncs.com/opening_01.flv"
} ],
"TemplateId" : "S00000000-000010",
"SubtitleConfig" : {
"ExtSubtitleList" : [ {
"CharEnc" : "UTF-8",
"FontName" : "\"WenQuanYi Zen Hei\", \"Yuanti SC Regular\", \"SimSun\"",
"Input" : {
"Object" : "example-output.flv",
"Location" : "oss-cn-hangzhou",
"Bucket" : "example-bucket-****"
}
} ],
"SubtitleList" : [ {
"Map" : "0:a:0"
} ]
},
"Properties" : {
"Width" : "1280",
"Height" : "720",
"Duration" : "55",
"Fps" : "25",
"Bitrate" : "1000",
"FileFormat" : "QuickTime / MOV",
"Streams" : {
"VideoStreamList" : [ {
"Index" : "0",
"Timebase" : "1/24000",
"AvgFPS" : "23.976025",
"PixFmt" : "yuv420p",
"Sar" : "1:1",
"Lang" : "eng",
"CodecLongName" : "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
"Height" : "720",
"NumFrames" : "25",
"Bitrate" : "1496.46",
"CodecTagString" : "avc1",
"HasBFrames" : "2",
"Profile" : "high",
"StartTime" : "0.000000",
"NetworkCost" : {
"PreloadTime" : "8",
"AvgBitrate" : "100",
"CostBandwidth" : "10"
},
"Dar" : "16:9",
"CodecName" : "h264",
"Width" : "1280",
"Duration" : "17.225542",
"Fps" : "23.976025",
"CodecTag" : "0x31637661",
"CodecTimeBase" : "1001/48000",
"Level" : "51"
} ],
"AudioStreamList" : [ {
"Timebase" : "1/44100",
"Index" : "1",
"SampleFmt" : "fltp",
"ChannelLayout" : "stereo",
"Lang" : "eng",
"Samplerate" : "44100",
"CodecLongName" : "AAC (Advanced Audio Coding)",
"Channels" : "2",
"NumFrames" : "25",
"Bitrate" : "128.806",
"CodecTagString" : "mp4a",
"StartTime" : "0.000000",
"CodecName" : "aac",
"Duration" : "17.159546",
"CodecTag" : "0x6134706d",
"CodecTimeBase" : "1/44100"
} ],
"SubtitleStreamList" : [ {
"Index" : "1",
"Lang" : "eng"
} ]
},
"Format" : {
"StartTime" : "0.000000",
"NumPrograms" : "0",
"Size" : "3509895",
"NumStreams" : "2",
"FormatLongName" : "QuickTime / MOV",
"Duration" : "55",
"Bitrate" : "1000",
"FormatName" : "mov"
},
"FileSize" : "3509895"
}
},
"PipelineId" : "88c6ca184c0e47098a5b665e2a126797",
"Input" : {
"Object" : "example.flv",
"Location" : "oss-cn-hangzhou",
"Bucket" : "example-bucket-****"
},
"MNSMessageResult" : {
"MessageId" : "123",
"ErrorMessage" : "The resource operated \"%s\" cannot be found.",
"ErrorCode" : "InvalidParameter.ResourceNotFound"
}
},
"Success" : true,
"Code" : "InvalidParameter.NullValue",
"Message" : "The specified parameter \"%s\" cannot be null."
} ],
"RequestId" : "25818875-5F78-4A45S71F6-D73936451234"
}
Error codes
For a list of error codes, see Service error codes.