tencent cloud

APIs

ComposeMedia

Download
フォーカスモード
フォントサイズ
最終更新日: 2026-05-19 15:01:58

1. API Description

Domain name for API request: vod.intl.tencentcloudapi.com.

This API is used to compose a media file. You can use it to do the following:

  1. Rotation/Flipping: Rotate a video or image by a specific angle or flip a video or image.
  2. Audio control: Increase/Lower the volume of an audio/video file or mute an audio/video file.
  3. Overlaying: Overlay videos/images in a specified sequence to achieve the picture-in-picture effect.
  4. Audio mixing: Mix the audios of audio/video files.
    5 Audio extraction: Extract audio from a video.
  5. Clipping: Clip segments from audio/video files according to a specified start and end time.
  6. Splicing: Splice videos/audios/images in a specified sequence.
  7. Transition: Add transition effects between video segments or images that are spliced together.

The output file is in MP4 or MP3 format. In the callback for media composition, the event type is ComposeMediaComplete.

A maximum of 100 requests can be initiated per second for this API.

We recommend you to use API Explorer
Try it
API Explorer provides a range of capabilities, including online call, signature authentication, SDK code generation, and API quick search. It enables you to view the request, response, and auto-generated examples.

2. Input Parameters

The following request parameter list only provides API request parameters and some common parameters. For the complete common parameter list, see Common Request Parameters.

Parameter Name Required Type Description
Action Yes String Common Params. The value used for this API: ComposeMedia.
Version Yes String Common Params. The value used for this API: 2018-07-17.
Region No String Common Params. This parameter is not required.
Tracks.N Yes Array of MediaTrack The input media track list includes multiple track information composed of materials such as video, audio, and images. Among them:
  • The input multiple tracks are aligned with the output media file timeline on the timeline.
  • Overlap materials on different tracks at the same time point on the timeline. Perform image overlay of videos or images in track order, with materials of higher track order overlaid on top. Mix audio materials.
  • Each type of track supports up to 10 video, audio, or image tracks.
  • The total number of media segments placed on all types of tracks supports up to 500.
  • Output Yes ComposeMediaOutput Output media file information.
    SubAppId No Integer On-demand application ID. Customers who activate on-demand services from December 25, 2023 must fill this field with the app ID when accessing resources in on-demand applications (whether default or newly created).
    Canvas No Canvas Canvas used when making video files.
    SessionContext No String Identify source context. This is used to pass through user request information. The ComposeMediaComplete callback returns the value of this field. The maximum length is 1000 characters.
    SessionId No String Identifier for task deduplication. If a request with the same identifier has been sent within the past three days, an error is returned for the current request. The maximum length is 50 characters. If this is not specified or left empty, deduplication is not performed.

    3. Output Parameters

    Parameter Name Type Description
    TaskId String Task ID for media file production. The state of the production task (task type is MakeMedia) can be queried through this ID.
    RequestId String The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.

    4. Example

    Example1 Crop and stitch two video streams together

    Extract seconds 2 to 62 from 5285485487985271487 and seconds 6 to 81 from 5285485487985271488 for splicing, set a 5-second fade-in and fade-out transition in the middle. Paste an image 5285485487985271489 from second 3 to 18 of the video at position (20px, 20px) with width and height (100px, 100px).

    Input Example

    POST / HTTP/1.1
    Host: vod.intl.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: ComposeMedia
    <Common request parameters>
    
    {
        "Output": {
            "Container": "mp4",
            "FileName": "output"
        },
        "Tracks": [
            {
                "TrackItems": [
                    {
                        "StickerItem": {
                            "CoordinateOrigin": "TopLeft",
                            "XPos": "20px",
                            "YPos": "20px",
                            "Height": "100px",
                            "Width": "100px",
                            "StartTime": 3,
                            "Duration": 15,
                            "SourceMedia": "5285485487985271489"
                        },
                        "Type": "Sticker"
                    }
                ],
                "Type": "Sticker"
            },
            {
                "TrackItems": [
                    {
                        "TransitionItem": {
                            "Duration": 5,
                            "MediaTransitions": [
                                {
                                    "Type": "ImageFadeInFadeOut"
                                }
                            ]
                        },
                        "Type": "Transition"
                    },
                    {
                        "Type": "Video",
                        "VideoItem": {
                            "Duration": 60,
                            "SourceMedia": "5285485487985271487",
                            "SourceMediaStartTime": 2
                        }
                    },
                    {
                        "Type": "Video",
                        "VideoItem": {
                            "Duration": 75,
                            "SourceMedia": "5285485487985271488",
                            "SourceMediaStartTime": 6
                        }
                    }
                ],
                "Type": "Video"
            }
        ]
    }
    

    Output Example

    {
        "Response": {
            "RequestId": "6ca31e3a-6b8e-4b4e-9256-fdc700064ef3",
            "TaskId": "125xxx65-ComposeMedia-bffb15f07530b57bc1aabb01fac74bc2"
        }
    }
    

    Example2 Dubbing videos in VOD

    Eliminate the original audio of 5285485487985271487, start using 5285485487985271488 for dubbing from 5 seconds, and use the 2nd to 16th seconds of 5285485487985271489 for dubbing from 20 seconds, then generate a new video on demand.

    Input Example

    POST / HTTP/1.1
    Host: vod.intl.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: ComposeMedia
    <Common request parameters>
    
    {
        "Output": {
            "Container": "mp4",
            "FileName": "output"
        },
        "Tracks": [
            {
                "TrackItems": [
                    {
                        "Type": "Empty",
                        "EmptyItem": {
                            "Duration": 5
                        }
                    },
                    {
                        "AudioItem": {
                            "SourceMedia": "5285485487985271488",
                            "Duration": 15
                        },
                        "Type": "Audio"
                    },
                    {
                        "AudioItem": {
                            "Duration": 14,
                            "SourceMedia": "5285485487985271489",
                            "SourceMediaStartTime": 2
                        },
                        "Type": "Audio"
                    }
                ],
                "Type": "Audio"
            },
            {
                "TrackItems": [
                    {
                        "Type": "Video",
                        "VideoItem": {
                            "SourceMedia": "5285485487985271487",
                            "AudioOperations": [
                                {
                                    "VolumeParam": {
                                        "Mute": 1
                                    },
                                    "Type": "Volume"
                                }
                            ]
                        }
                    }
                ],
                "Type": "Video"
            }
        ]
    }
    

    Output Example

    {
        "Response": {
            "RequestId": "6ca31e3a-6b8e-4b4e-9256-fdc700064ef3",
            "TaskId": "125xxx65-ComposeMedia-bffb15f07530b57bc1aabb01fac74bca"
        }
    }
    

    Example3 Display a video as Picture-in-Picture of another video

    Use 5285485487985271487 as the main picture of Picture-in-Picture. Use 5285485487985271488 as the sub-screen of Picture-in-Picture. The sub-screen has a center offset of 25% from the main picture (i.e., at the bottom-right corner) and a width of 30% of the frame.

    Input Example

    POST / HTTP/1.1
    Host: vod.intl.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: ComposeMedia
    <Common request parameters>
    
    {
        "Output": {
            "Container": "mp4",
            "FileName": "output"
        },
        "Tracks": [
            {
                "TrackItems": [
                    {
                        "Type": "Video",
                        "VideoItem": {
                            "SourceMedia": "5285485487985271487"
                        }
                    }
                ],
                "Type": "Video"
            },
            {
                "TrackItems": [
                    {
                        "Type": "Video",
                        "VideoItem": {
                            "CoordinateOrigin": "Center",
                            "Width": "30%",
                            "SourceMedia": "5285485487985271488",
                            "XPos": "25%",
                            "YPos": "25%"
                        }
                    }
                ],
                "Type": "Video"
            }
        ]
    }
    

    Output Example

    {
        "Response": {
            "RequestId": "6ca31e3a-6b8e-4b4e-9256-fdc700064ef3",
            "TaskId": "125xxx65-ComposeMedia-bffb15f07530b57bc1aabb01fac74bca"
        }
    }
    

    5. Developer Resources

    SDK

    TencentCloud API 3.0 integrates SDKs that support various programming languages to make it easier for you to call APIs.

    Command Line Interface

    6. Error Code

    The following only lists the error codes related to the API business logic. For other error codes, see Common Error Codes.

    Error Code Description
    FailedOperation Operation failed.
    FailedOperation.InvalidVodUser The VOD service is not activated.
    FailedOperation.UploadCosFail Operation failed: failed to upload file to COS.
    InternalError Internal error.
    InternalError.GetFileInfoError Internal error: an error occurred while getting media file information.
    InternalError.GetMediaListError Internal error: an error occurred while getting the media list.
    InvalidParameter Parameter error.
    InvalidParameterValue.ClipDuration Incorrect parameter value: the clipping duration is too long.
    InvalidParameterValue.SessionContextTooLong SessionContext is too long.
    InvalidParameterValue.SessionId The deduplication ID already exists. The request is removed due to duplication.
    UnauthorizedOperation Unauthorized operation.

    ヘルプとサポート

    この記事はお役に立ちましたか?

    フィードバック