tencent cloud

Feedback

Creating Audio/Video Transcoding Template

Last updated: 2024-06-12 15:47:04

    Overview

    This API is used to create an audio/video transcoding template.
    

    Request

    Sample request

    POST /template HTTP/1.1
    Host: <BucketName-APPID>.ci.<Region>.myqcloud.com
    Date: <GMT Date>
    Authorization: <Auth String>
    Content-Length: <length>
    Content-Type: application/xml
    
    <body>
    Note:
    Authorization: Auth String (See Request Signature for details.)
    When this feature is used by a sub-account, relevant permissions must be granted as instructed in Authorization Granularity Details.

    Request headers

    This API only uses Common Request Headers.

    Request body

    This request requires the following request body:
    <Request>
    <Tag>Transcode</Tag>
    <Name>TemplateName</Name>
    <Container>
    <Format>mp4</Format>
    </Container>
    <Video>
    <Codec>H.264</Codec>
    <Profile>high</Profile>
    <Bitrate>1000</Bitrate>
    <Width>1280</Width>
    <Fps>30</Fps>
    <Preset>medium</Preset>
    </Video>
    <Audio>
    <Codec>aac</Codec>
    <Samplerate>44100</Samplerate>
    <Bitrate>128</Bitrate>
    <Channels>4</Channels>
    </Audio>
    <TransConfig>
    <AdjDarMethod>scale</AdjDarMethod>
    <IsCheckReso>false</IsCheckReso>
    <ResoAdjMethod>1</ResoAdjMethod>
    </TransConfig>
    <TimeInterval>
    <Start>0</Start>
    <Duration>60</Duration>
    </TimeInterval>
    <AudioMixArray>
    <AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix1.mp3</AudioSource>
    <MixMode>Once</MixMode>
    <Replace>true</Replace>
    <EffectConfig>
    <EnableStartFadein>true</EnableStartFadein>
    <StartFadeinTime>3</StartFadeinTime>
    <EnableEndFadeout>false</EnableEndFadeout>
    <EndFadeoutTime>0</EndFadeoutTime>
    <EnableBgmFade>true</EnableBgmFade>
    <BgmFadeTime>1.7</BgmFadeTime>
    </EffectConfig>
    </AudioMixArray>
    <AudioMixArray>
    <AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix2.mp3</AudioSource>
    <MixMode>Once</MixMode>
    <Replace>true</Replace>
    <EffectConfig>
    <EnableStartFadein>true</EnableStartFadein>
    <StartFadeinTime>3</StartFadeinTime>
    <EnableEndFadeout>false</EnableEndFadeout>
    <EndFadeoutTime>0</EndFadeoutTime>
    <EnableBgmFade>true</EnableBgmFade>
    <BgmFadeTime>1.7</BgmFadeTime>
    </EffectConfig>
    </AudioMixArray>
    </Request>
    
    The nodes are described as follows:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Request
    None
    Request container
    Container
    Yes
    Request has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Constraints
    Tag
    Request
    Task type: Transcode
    String
    Yes
    None
    Name
    Request
    Template name, which can contain letters, digits, underscores (_), hyphens (-), and asterisks (*).
    String
    Yes
    None
    Container
    Request
    Container format
    Container
    Yes
    None
    Video
    Request
    Video information
    Container
    No
    If Video is not passed in, the video information will be deleted.
    TimeInterval
    Request
    Time interval
    Container
    No
    None
    Audio
    Request
    Audio information
    Container
    No
    If Audio is not passed in, the audio information will be deleted.
    TransConfig
    Request
    Transcoding configuration
    Container
    No
    None
    AudioMix
    Request
    Audio mix parameter as described in Structure.
    Container
    No
    Valid if Audio.Remove is false
    AudioMixArray
    Request
    Up to two audio mix parameters as described in Structure.
    Container array
    No
    Valid if Audio.Remove is false
    
    Container
    has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Format
    Request.Container
    Container format. See the following table for valid values.
    String
    Yes
    ClipConfig
    Request.Container
    Segment configuration. This node will take effect only when format is hls or dash.
    Container
    No
    ClipConfig has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Duration
    Request.Container.ClipConfig
    Segment duration. Default value: 5s.
    String
    No
    Audio/Video formats supported by different container formats are as follows:
    Container
    Audio Codecs
    Video Codecs
    mp4/hls/mkv
    aac, mp3
    H.264, H.265, AV1
    hls/mkv
    aac, mp3
    H.264, H.265
    ts/flv/avi/mov
    aac, mp3
    H.264
    dash
    aac
    H.264
    WebM
    Vorbis, Opus
    VP8, VP9, AV1
    AAC
    AAC
    Not supported
    MP3
    MP3
    Not supported
    FLAC
    FLAC
    Not supported
    AMR
    AMR
    Not supported
    adts
    aac
    Not supported
    m4a
    aac
    Not supported
    wav
    pcm_s16le
    Not supported
    
    ideo has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Default Value
    Constraints
    Codec
    Request.Video
    Codec format
    String
    No
    H.264
    If format is WebM, the default value is VP8.
    H.264
    H.265
    VP8
    VP9
    AV1
    Width
    Request.Video
    Width
    String
    No
    Original video width
    Value range: [128, 4096]
    Unit: px
    If only Width is set, Height is calculated according to the original video aspect ratio.
    This parameter must be an even number.
    Height
    Request.Video
    Height
    String
    No
    Original video height
    Value range: [128, 4096]
    Unit: px
    If only Height is set, Width is calculated according to the original video aspect ratio.
    This parameter must be an even number.
    Fps
    Request.Video
    Frame rate
    String
    No
    None
    Value range: (0, 60]
    Unit: fps
    Remove
    Request.Video
    Whether to delete the video stream
    String
    No
    false
    Valid values: true, false.
    Profile
    Request.Video
    Encoding level
    String
    No
    high
    Valid values: baseline, main, high, auto.
    If Pixfmt is auto, this parameter can only be auto and will be changed to auto if set to other values.
    baseline: Suitable for mobile devices.
    main: Suitable for standard resolution devices.
    high: Suitable for high resolution devices.
    Only H.264 supports this parameter.
    Bitrate
    Request.Video
    Bitrate of the video output file
    String
    No
    None
    Value range: [10, 50000] kbps
    auto indicates adaptive bitrate.
    Crf
    Request.Video
    Bitrate, which is a quality control factor
    String
    No
    None
    Value range: (0, 51]
    If Crf is set, the setting of Bitrate will become invalid.
    If Bitrate is empty, 25 is used for this parameter by default.
    Gop
    Request.Video
    Maximum number of frames between two keyframes
    String
    No
    None
    Value range: [1, 100000]
    Preset
    Request.Video
    Video algorithm preset
    String
    No
    If Codec is H.264, the default value is medium.
    If Codec is VP8, the default value is good.
    If Codec is AV1, the default value is 5.
    Valid values for H.264: veryfast, fast, medium, slow, slower.
    Valid values for VP8: good, realtime.
    Valid values for AV1: 5 (recommend), 4.
    H.265 and VP9 don't support this parameter.
    Bufsize
    Request.Video
    Buffer size
    String
    No
    None
    Value range: [1000, 128000]
    Unit: KB
    If Codec is VP8 or VP9, this parameter is not supported.
    Maxrate
    Request.Video
    Peak video bitrate
    String
    No
    None
    Value range: [10, 50000]
    Unit: Kbps
    If Codec is VP8 or VP9, this parameter is not supported.
    Pixfmt
    Request.Video
    Video color format
    String
    No
    None
    Valid values for H.264: yuv420p, yuv422p, yuv444p, yuvj420p, yuvj422p, yuvj444p, auto
    Valid values for H.265: yuv420p, yuv420p10le, auto
    If Codec is VP8, VP9, or AV1, this parameter is not supported.
    LongShortMode
    Request.Video
    Whether to use long short mode
    String
    No
    false
    Valid values: true, false.
    If Codec is VP8, VP9, or AV1, this parameter is not supported.
    Rotate
    Request.Video
    Rotation angle
    String
    No
    None
    Value range: [0, 360)
    Unit: Degree
    TimeInterval has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Default Value
    Constraints
    Start
    Request.TimeInterval
    Start time
    String
    No
    0
    Value range: [0, video duration]
    Unit: Second
    The float format is supported, accurate to the millisecond.
    Duration
    Request.TimeInterval
    Duration
    String
    No
    Original video duration
    Value range: [0, video duration]
    Unit: Second
    The float format is supported, accurate to the millisecond.
    Audio has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Default Value
    Constraints
    Codec
    Request.Audio
    Codec format
    String
    No
    aac
    If format is WebM, the default value is Vorbis.
    If format is wav, the default value is pcm_s16le.
    Valid values: aac, mp3, flac, amr, Vorbis, opus, pcm_s16le.
    Samplerate
    Request.Audio
    Sample rate
    String
    No
    If Codec is opus, the default value is 48000.
    Unit: Hz
    Valid values: 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000, 88200, 96000.
    Different container formats support different MP3 sample rates, as shown in the table below.
    If Codec is amr, the value can only be 8000.
    If Codec is opus, the value can be 8000, 16000, 24000, or 48000.
    Bitrate
    Request.Audio
    Original audio bitrate
    String
    No
    None
    Unit: Kbps
    Value range: [8, 1000]
    Channels
    Request.Audio
    Number of sound channels
    String
    No
    None
    If Codec is aac or flac, the value can be 1, 2, 4, 5, 6, or 8.
    If Codec is mp3 or opus, the value can only be 1 or 2.
    If Codec is Vorbis, the value can only be 2.
    If Codec is amr, the value can only be 1.
    If Codec is pcm_s16le, the value can only be 1 or 2.
    If Codec is dash, the value cannot be 8.
    Remove
    Request.Audio
    Whether to delete the source audio stream
    String
    No
    false
    Valid values: true, false.
    KeepTwoTracks
    Request.Audio
    Keep double audio track
    String
    No
    false
    Valid values: true, false. If Video.Codec is H.265, this parameter will not take effect.
    SwitchTrack
    Request.Audio
    Switch the track
    String
    No
    false
    Valid values: true, false. If Video.Codec is H.265, this parameter will not take effect.
    SampleFormat
    Request.Audio
    Sampling bit width
    String
    No
    None
    If Codec is aac, the value can be fltp.
    If Codec is mp3, the value can be fltp, s16p, or s32p.
    If Codec is flac, the value can be s16, s32, s16p, or s32p.
    If Codec is amr, the value can be s16 or s16p.
    If Codec is opus, the value can be s16.
    If Codec is pcm_s16le, the value can be s16.
    If Codec is Vorbis, the value can be fltp.
    If Video.Codec is H.265, this parameter will not take effect.
    Note:
    Y indicates supported, and N indicates unsupported.
    Audio.Codec supports sample rates as follows:
    Audio.Codec
    aac
    amr
    flac
    opus
    Vorbis
    pcm_s16le
    mp3
    8000
    Y
    Y
    Y
    Y
    Y
    Y
    Different sample rates are supported for different container formats.
    11025
    Y
    N
    Y
    N
    Y
    Y
    12000
    Y
    N
    Y
    N
    Y
    Y
    16000
    Y
    N
    Y
    Y
    Y
    Y
    22050
    Y
    N
    Y
    N
    Y
    Y
    24000
    Y
    N
    Y
    Y
    Y
    Y
    32,000
    Y
    N
    Y
    N
    Y
    Y
    44100
    Y
    N
    Y
    N
    Y
    Y
    48000
    Y
    N
    Y
    Y
    Y
    Y
    88200
    Y
    N
    Y
    N
    Y
    Y
    96000
    Y
    N
    Y
    N
    Y
    Y
    
    If Audio.Codec is mp3, Container.Format supports sample rates as follows:
    Container Format/Audio Sample Rate
    8000
    11025
    12000
    16000
    22050
    24000
    32000
    44100
    48000
    88200
    96000
    flv
    N
    N
    N
    N
    Y
    N
    N
    Y
    N
    N
    N
    mp4
    N
    N
    N
    Y
    Y
    Y
    Y
    Y
    Y
    N
    N
    hls/ts/mp3/mkv/avi/mov
    Y
    Y
    Y
    Y
    Y
    Y
    Y
    Y
    Y
    N
    N
    
    TransConfig
    has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Default Value
    Constraints
    AdjDarMethod
    Request.TransConfig
    Resolution adjustment method
    String
    No
    none
    Valid values: scale, crop, pad, none.
    If the aspect ratio of the output video is different from that of the original video, the resolution is adjusted according to this parameter.
    IsCheckReso
    Request.TransConfig
    Whether to check the resolution
    String
    No
    false
    Valid values: true, false.
    If the value is false, transcoding is performed based on settings.
    ResoAdjMethod
    Request.TransConfig
    Resolution adjustment method
    String
    No
    0
    Valid values: 0, 1. 0 indicates to use the original video resolution, and 1 indicates to return the transcoding failure message.
    This parameter will take effect only when IsCheckReso is true.
    IsCheckVideoBitrate
    Request.TransConfig
    Whether to check the video bitrate
    String
    No
    false
    Valid values: true, false.
    If the value is false, transcoding is performed based on settings.
    VideoBitrateAdjMethod
    Request.TransConfig
    Video bitrate adjustment method
    String
    No
    0
    Valid values: 0, 1. When the output video has a higher bitrate than the input video, 0 indicates to use the original video bitrate, and 1 indicates to return the transcoding failure message.
    This parameter will take effect only when IsCheckVideoBitrate is true.
    IsCheckAudioBitrate
    Request.TransConfig
    Whether to check the audio bitrate
    String
    No
    false
    Valid values: true, false.
    If the value is false, transcoding is performed based on settings.
    AudioBitrateAdjMethod
    Request.TransConfig
    Audio bitrate adjustment method
    String
    No
    0
    Valid values: 0, 1. When the output audio has a higher bitrate than the input audio, 0 indicates to use the original audio bitrate, and 1 indicates to return the transcoding failure message.
    This parameter will take effect only when IsCheckAudioBitrate is true.
    IsCheckVideoFps
    Request.TransConfig
    Whether to check the video frame rate
    String
    No
    false
    Valid values: true, false.
    If the value is false, transcoding is performed based on settings.
    VideoFpsAdjMethod
    Request.TransConfig
    Video frame rate adjustment method
    String
    No
    0
    Valid values: 0, 1. When the output video has a higher frame rate than the input video, 0 indicates to use the original video frame rate, and 1 indicates to return the transcoding failure message.
    This parameter will take effect only when IsCheckVideoFps is true.
    DeleteMetadata
    Request.TransConfig
    Whether to delete metadata from the file
    String
    No
    false
    Valid values: true, false.
    If the value is false, the source file information is retained.
    IsHdr2Sdr
    Request.TransConfig
    Whether to enable HDR-to-SDR conversion
    String
    No
    false
    Valid values: true, false.
    TranscodeIndex
    Request.TransConfig
    The stream number to be processed, which corresponds to Response.MediaInfo.Stream.Video.Index and Response.MediaInfo.Stream.Audio.Index in the media information. For more information, see Getting Media File Information.
    String
    No
    None
    None
    HlsEncrypt
    Request.TransConfig
    HLS encryption configuration
    Container
    No
    None
    None
    DashEncrypt
    Request.TransConfig
    DASH encryption configuration
    Container
    No
    None
    None
    The AdjDarMethod parameter is illustrated as follows:
    
    
    
    HlsEncrypt has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Default Value
    Constraints
    IsHlsEncrypt
    Request.TransConfig.HlsEncrypt
    Whether to enable HLS encryption
    String
    No
    false
    Valid values: true, false.
    Encryption is supported only when Container.Format is hls.
    UriKey
    Request.TransConfig.HlsEncrypt
    HLS encryption key
    String
    No
    None
    This parameter will take effect only when IsHlsEncrypt is true.
    DashEncrypt has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Required
    Default Value
    Constraints
    IsEncrypt
    Request.TransConfig.DashEncrypt
    Whether to enable DASH encryption
    String
    No
    false
    Valid values: true, false.
    Encryption is supported only when Container.Format is dash.
    UriKey
    Request.TransConfig.DashEncrypt
    DASH encryption key
    String
    No
    None
    This parameter will take effect only when IsEncrypt is true.

    Response

    Response headers

    This API only returns Common Response Headers.

    Response body

    The response body returns application/xml data. The following contains all the nodes:
    The nodes are described as follows:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Response
    None
    Result storage container
    Container
    
    Response
    has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    TemplateId
    Response.Template
    Template ID
    String
    Name
    Response.Template
    Template name
    String
    BucketId
    Response.Template
    Template bucket
    String
    Category
    Response.Template
    Template category: Custom or Official
    String
    Tag
    Response.Template
    Task type: Transcode
    String
    UpdateTime
    Response.Template
    Update time
    String
    CreateTime
    Response.Template
    Creation time
    String
    TransTpl
    Response.Template
    Template parameters
    Container
    TransTpl has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    TimeInterval
    Response.Template.TransTpl
    Same as Request.TimeInterval in the request body.
    Container
    Container
    Response.Template.TransTpl
    Same as Request.Container in the request body.
    Container
    Video
    Response.Template.TransTpl
    Same as Request.Video in the request body.
    Container
    Audio
    Response.Template.TransTpl
    Same as Request.Audio in the request body.
    Container
    TransConfig
    Response.Template.TransTpl
    Same as Request.TransConfig in the request body.
    Container
    AudioMix
    Response.Template.TransTpl
    Same as Request.AudioMix in the request body.
    Container
    AudioMixArray
    Response.Template.TransTpl
    Same as Request.AudioMixArray in the request body.
    Container array

    Error codes

    No special error message will be returned for this request. For the common error messages, please see Error Codes.

    Examples

    Request

    POST /template HTTP/1.1
    Authorization: q-sign-algorithm=sha1&q-ak=AKIDZfbOAo7cllgPvF9cXFrJD0a1ICvR****&q-sign-time=1497530202;1497610202&q-key-time=1497530202;1497610202&q-header-list=&q-url-param-list=&q-signature=28e9a4986df11bed0255e97ff90500557e0e****
    Host: test-1234567890.ci.ap-beijing.myqcloud.com
    Content-Length: 1666
    Content-Type: application/xml
    
    <Request>
    <Tag>Transcode</Tag>
    <Name>TemplateName</Name>
    <Container>
    <Format>mp4</Format>
    </Container>
    <Video>
    <Codec>H.264</Codec>
    <Profile>high</Profile>
    <Bitrate>1000</Bitrate>
    <Width>1280</Width>
    <Fps>30</Fps>
    <Preset>medium</Preset>
    </Video>
    <Audio>
    <Codec>aac</Codec>
    <Samplerate>44100</Samplerate>
    <Bitrate>128</Bitrate>
    <Channels>4</Channels>
    </Audio>
    <TransConfig>
    <AdjDarMethod>scale</AdjDarMethod>
    <IsCheckReso>false</IsCheckReso>
    <ResoAdjMethod>1</ResoAdjMethod>
    </TransConfig>
    <TimeInterval>
    <Start>0</Start>
    <Duration>60</Duration>
    </TimeInterval>
    <AudioMixArray>
    <AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix1.mp3</AudioSource>
    <MixMode>Once</MixMode>
    <Replace>true</Replace>
    <EffectConfig>
    <EnableStartFadein>true</EnableStartFadein>
    <StartFadeinTime>3</StartFadeinTime>
    <EnableEndFadeout>false</EnableEndFadeout>
    <EndFadeoutTime>0</EndFadeoutTime>
    <EnableBgmFade>true</EnableBgmFade>
    <BgmFadeTime>1.7</BgmFadeTime>
    </EffectConfig>
    </AudioMixArray>
    <AudioMixArray>
    <AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix2.mp3</AudioSource>
    <MixMode>Once</MixMode>
    <Replace>true</Replace>
    <EffectConfig>
    <EnableStartFadein>true</EnableStartFadein>
    <StartFadeinTime>3</StartFadeinTime>
    <EnableEndFadeout>false</EnableEndFadeout>
    <EndFadeoutTime>0</EndFadeoutTime>
    <EnableBgmFade>true</EnableBgmFade>
    <BgmFadeTime>1.7</BgmFadeTime>
    </EffectConfig>
    </AudioMixArray>
    </Request>

    Response

    HTTP/1.1 200 OK
    Content-Type: application/xml
    Content-Length: 100
    Connection: keep-alive
    Date: Thu, 14 Jul 2022 12:37:29 GMT
    Server: tencent-ci
    x-ci-request-id: NTk0MjdmODlfMjQ4OGY3XzYzYzhf****
    
    <Response>
    <Template>
    <Tag>Transcode</Tag>
    <TemplateId>t1460606b9752148c4ab182f55163ba7cd</TemplateId>
    <Name>TemplateName</Name>
    <BucketId>test-1234567890</BucketId>
    <Category>Custom</Category>
    <Container>
    <Format>mp4</Format>
    </Container>
    <Video>
    <Codec>H.264</Codec>
    <Profile>high</Profile>
    <Bitrate>1000</Bitrate>
    <Width>1280</Width>
    <Fps>30</Fps>
    <Preset>medium</Preset>
    </Video>
    <Audio>
    <Codec>aac</Codec>
    <Samplerate>44100</Samplerate>
    <Bitrate>128</Bitrate>
    <Channels>4</Channels>
    </Audio>
    <TransConfig>
    <AdjDarMethod>scale</AdjDarMethod>
    <IsCheckReso>false</IsCheckReso>
    <ResoAdjMethod>1</ResoAdjMethod>
    </TransConfig>
    <TimeInterval>
    <Start>0</Start>
    <Duration>60</Duration>
    </TimeInterval>
    <AudioMixArray>
    <AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix1.mp3</AudioSource>
    <MixMode>Once</MixMode>
    <Replace>true</Replace>
    <EffectConfig>
    <EnableStartFadein>true</EnableStartFadein>
    <StartFadeinTime>3</StartFadeinTime>
    <EnableEndFadeout>false</EnableEndFadeout>
    <EndFadeoutTime>0</EndFadeoutTime>
    <EnableBgmFade>true</EnableBgmFade>
    <BgmFadeTime>1.7</BgmFadeTime>
    </EffectConfig>
    </AudioMixArray>
    <AudioMixArray>
    <AudioSource>https://test-xxx.cos.ap-chongqing.myqcloud.com/mix2.mp3</AudioSource>
    <MixMode>Once</MixMode>
    <Replace>true</Replace>
    <EffectConfig>
    <EnableStartFadein>true</EnableStartFadein>
    <StartFadeinTime>3</StartFadeinTime>
    <EnableEndFadeout>false</EnableEndFadeout>
    <EndFadeoutTime>0</EndFadeoutTime>
    <EnableBgmFade>true</EnableBgmFade>
    <BgmFadeTime>1.7</BgmFadeTime>
    </EffectConfig>
    </AudioMixArray>
    <CreateTime>2020-08-05T11:35:24+0800</CreateTime>
    <UpdateTime>2020-08-31T16:15:20+0800</UpdateTime>
    </Template>
    </Response>