tencent cloud

Feedback

Audio/Video Transcoding

Last updated: 2024-02-27 15:42:23

    Feature Description

    CI supports user-defined callback URLs. After a job is completed, the system sends an HTTP POST request with the body containing notification content to a user-defined callback URL. You can use the configured callback URL to learn about the processing progress and status of the job so that you can perform other operations as needed.

    Callback Content

    After the job is completed, the system sends the callback content to the configured callback URL. The response body is returned as application/xml data. The following contains all the nodes:
    <Response>
    <EventName>TaskFinish</EventName>
    <JobsDetail>
    <Code>Success</Code>
    <CreationTime>2022-06-30T15:29:42+0800</CreationTime>
    <EndTime>2022-06-30T15:30:08+0800</EndTime>
    <Input>
    <BucketId>test-123456789</BucketId>
    <Object>input/demo.mp4</Object>
    <Region>ap-chongqing</Region>
    </Input>
    <JobId>j68427030f84611ecb8546d80f2baf56f</JobId>
    <Message>success</Message>
    <Operation>
    <MediaInfo>
    <Format>
    <Duration>13</Duration>
    <NumStream>1</NumStream>
    <Size>1909389</Size>
    </Format>
    <Stream>
    <Audio>
    <Bitrate>128000</Bitrate>
    <Channel>2</Channel>
    <ChannelLayout>stereo</ChannelLayout>
    <CodecLongName>AAC (Advanced Audio Coding)</CodecLongName>
    <CodecName>aac</CodecName>
    <CodecTag>0x6134706d</CodecTag>
    <CodecTagString>mp4a</CodecTagString>
    <CodecTimeBase>1/44100</CodecTimeBase>
    <Duration>13.653</Duration>
    <Index>1</Index>
    <Language>und</Language>
    <SampleFmt>fltp</SampleFmt>
    <SampleRate>44100</SampleRate>
    <StartTime>0.000000</StartTime>
    <Timebase>1/44100</Timebase>
    </Audio>
    <Subtitle/>
    <Video>
    <AvgFps>50.000</AvgFps>
    <Bitrate>1031968</Bitrate>
    <CodecLongName>H.265 / HEVC (High Efficiency Video Coding)</CodecLongName>
    <CodecName>hevc</CodecName>
    <CodecTag>0x31637668</CodecTag>
    <CodecTagString>hvc1</CodecTagString>
    <CodecTimeBase>1/50</CodecTimeBase>
    <ColorPrimaries>bt470bg</ColorPrimaries>
    <ColorRange>tv</ColorRange>
    <ColorTransfer>smpte170m</ColorTransfer>
    <Duration>12.960</Duration>
    <FieldOrder>Unknown</FieldOrder>
    <Fps>50/1</Fps>
    <HasBFrame>4</HasBFrame>
    <Height>960</Height>
    <Index>0</Index>
    <Language>und</Language>
    <Level>4</Level>
    <NumFrames>648</NumFrames>
    <PixFormat>hvc1</PixFormat>
    <Profile>Main</Profile>
    <RefFrames>1</RefFrames>
    <Rotation>0</Rotation>
    <StartTime>0.000000</StartTime>
    <Timebase>1/12800</Timebase>
    <Width>540</Width>
    </Video>
    </Stream>
    </MediaInfo>
    <MediaResult>
    <OutputFile>
    <Bucket>test-123456789</Bucket>
    <Md5Info>
    <Md5>2db78d168edf2f883adce89a1b4ca033</Md5>
    <ObjectName>output/transcode.mp4</ObjectName>
    </Md5Info>
    <ObjectName>output/transcode.mp4</ObjectName>
    <ObjectPrefix/>
    <Region>ap-chongqing</Region>
    </OutputFile>
    </MediaResult>
    <Output>
    <Bucket>test-123456789</Bucket>
    <Object>output/transcode.mp4</Object>
    <Region>ap-chongqing</Region>
    </Output>
    <TemplateId>t1995d523e42df4c5e858f244b4174360c</TemplateId>
    <TemplateName>trans_993874</TemplateName>
    <UserData>This is my Transcode job.</UserData>
    </Operation>
    <Progress>100</Progress>
    <QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
    <StartTime>2022-06-30T15:29:42+0800</StartTime>
    <State>Success</State>
    <Tag>Transcode</Tag>
    </JobsDetail>
    </Response>
    The nodes are as described below:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Response
    None
    Response container
    Container
    Response has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    EventName
    Response
    Fixed value: TaskFinish.
    String
    JobsDetail
    Response
    Job details
    Container array
    If the job is triggered by a workflow, Response.JobsDetail.Input will also contain a CosHeaders node of the container array type.
    CosHeaders has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    Key
    Response.JobsDetail.Input.CosHeaders
    Name of the custom header
    String
    Value
    Response.JobsDetail.Input.CosHeaders
    Value of the custom header
    String
    If the job is triggered by a workflow, Response.JobsDetail will also contain a Workflow node of the container type.
    Workflow has the following sub-nodes:
    Node Name (Keyword)
    Parent Node
    Description
    Type
    RunId
    Response.Workflow
    Workflow instance ID
    String
    WorkflowId
    Response.Workflow
    Workflow ID
    String
    WorkflowName
    Response.Workflow
    Workflow name
    String
    Name
    Response.Workflow
    Workflow node name
    String

    Samples

    Sample 1: Job callback triggered by a job API

    <Response>
    <EventName>TaskFinish</EventName>
    <JobsDetail>
    <Code>Success</Code>
    <CreationTime>2022-06-30T15:29:42+0800</CreationTime>
    <EndTime>2022-06-30T15:29:48+0800</EndTime>
    <Input>
    <BucketId>test-123456789</BucketId>
    <Object>input/demo.mp4</Object>
    <Region>ap-chongqing</Region>
    </Input>
    <JobId>j682b9662f84611ecb8546d80f2baf56f</JobId>
    <Message/>
    <Operation>
    <MediaInfo>
    <Format>
    <Bitrate>97624.424000</Bitrate>
    <Duration>0.870000</Duration>
    <FormatLongName>CompuServe Graphics Interchange Format (GIF)</FormatLongName>
    <FormatName>gif</FormatName>
    <NumProgram>0</NumProgram>
    <NumStream>1</NumStream>
    <Size>10616656</Size>
    <StartTime>0.000000</StartTime>
    </Format>
    <Stream>
    <Audio/>
    <Subtitle/>
    <Video>
    <AvgFps>14.666667</AvgFps>
    <CodecLongName>CompuServe GIF (Graphics Interchange Format)</CodecLongName>
    <CodecName>gif</CodecName>
    <CodecTag>0x0000</CodecTag>
    <CodecTagString>[0][0][0][0]</CodecTagString>
    <CodecTimeBase>1/100</CodecTimeBase>
    <ColorPrimaries>unknown</ColorPrimaries>
    <ColorRange>unknown</ColorRange>
    <ColorTransfer>unknown</ColorTransfer>
    <Duration>0.870000</Duration>
    <Fps>15.083333</Fps>
    <HasBFrame>0</HasBFrame>
    <Height>2258</Height>
    <Index>0</Index>
    <Level>-99</Level>
    <NumFrames>7</NumFrames>
    <PixFormat>bgra</PixFormat>
    <RefFrames>1</RefFrames>
    <Rotation>0.000000</Rotation>
    <StartTime>0.000000</StartTime>
    <Timebase>1/100</Timebase>
    <Width>1280</Width>
    </Video>
    </Stream>
    </MediaInfo>
    <MediaResult>
    <OutputFile>
    <Bucket>test-123456789</Bucket>
    <Md5Info>
    <Md5>3df1f845d2ffd20a525a93ec40014d90</Md5>
    <ObjectName>output/animation.gif</ObjectName>
    </Md5Info>
    <ObjectName>output/animation.gif</ObjectName>
    <ObjectPrefix/>
    <Region>ap-chongqing</Region>
    </OutputFile>
    </MediaResult>
    <Output>
    <Bucket>test-123456789</Bucket>
    <Object>output/animation.gif</Object>
    <Region>ap-chongqing</Region>
    </Output>
    <TemplateId>t1f16e1dfbdc994105b31292d45710642a</TemplateId>
    <TemplateName>template_name1512456</TemplateName>
    <UserData>This is my Animation job.</UserData>
    </Operation>
    <QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
    <StartTime>2022-06-30T15:29:43+0800</StartTime>
    <State>Success</State>
    <Tag>Animation</Tag>
    </JobsDetail>
    </Response>

    Sample 2: Job callback triggered by a workflow

    <Response>
    <EventName>TaskFinish</EventName>
    <JobsDetail>
    <Code>Success</Code>
    <CreationTime>2022-06-30T15:29:42+0800</CreationTime>
    <EndTime>2022-06-30T15:30:08+0800</EndTime>
    <Input>
    <BucketId>test-123456789</BucketId>
    <Object>input/demo.mp4</Object>
    <Region>ap-chongqing</Region>
    <CosHeaders>
    <Key>Content-Type</Key>
    <Value>video/mp4</Value>
    </CosHeaders>
    <CosHeaders>
    <Key>x-cos-request-id</Key>
    <Value>NjJiZDYwYTFfNjUzYTYyNjRfZjEwZl8xMmZhYzY5</Value>
    </CosHeaders>
    <CosHeaders>
    <Key>EventName</Key>
    <Value>cos:ObjectCreated:Put</Value>
    </CosHeaders>
    <CosHeaders>
    <Key>Size</Key>
    <Value>1424687</Value>
    </CosHeaders>
    </Input>
    <JobId>j68427030f84611ecb8546d80f2baf56f</JobId>
    <Message>success</Message>
    <Operation>
    <MediaInfo>
    <Format>
    <Duration>13</Duration>
    <NumStream>1</NumStream>
    <Size>1909389</Size>
    </Format>
    <Stream>
    <Audio>
    <Bitrate>128000</Bitrate>
    <Channel>2</Channel>
    <ChannelLayout>stereo</ChannelLayout>
    <CodecLongName>AAC (Advanced Audio Coding)</CodecLongName>
    <CodecName>aac</CodecName>
    <CodecTag>0x6134706d</CodecTag>
    <CodecTagString>mp4a</CodecTagString>
    <CodecTimeBase>1/44100</CodecTimeBase>
    <Duration>13.653</Duration>
    <Index>1</Index>
    <Language>und</Language>
    <SampleFmt>fltp</SampleFmt>
    <SampleRate>44100</SampleRate>
    <StartTime>0.000000</StartTime>
    <Timebase>1/44100</Timebase>
    </Audio>
    <Subtitle/>
    <Video>
    <AvgFps>50.000</AvgFps>
    <Bitrate>1031968</Bitrate>
    <CodecLongName>H.265 / HEVC (High Efficiency Video Coding)</CodecLongName>
    <CodecName>hevc</CodecName>
    <CodecTag>0x31637668</CodecTag>
    <CodecTagString>hvc1</CodecTagString>
    <CodecTimeBase>1/50</CodecTimeBase>
    <ColorPrimaries>bt470bg</ColorPrimaries>
    <ColorRange>tv</ColorRange>
    <ColorTransfer>smpte170m</ColorTransfer>
    <Duration>12.960</Duration>
    <FieldOrder>Unknown</FieldOrder>
    <Fps>50/1</Fps>
    <HasBFrame>4</HasBFrame>
    <Height>960</Height>
    <Index>0</Index>
    <Language>und</Language>
    <Level>4</Level>
    <NumFrames>648</NumFrames>
    <PixFormat>hvc1</PixFormat>
    <Profile>Main</Profile>
    <RefFrames>1</RefFrames>
    <Rotation>0</Rotation>
    <StartTime>0.000000</StartTime>
    <Timebase>1/12800</Timebase>
    <Width>540</Width>
    </Video>
    </Stream>
    </MediaInfo>
    <MediaResult>
    <OutputFile>
    <Bucket>test-123456789</Bucket>
    <Md5Info>
    <Md5>2db78d168edf2f883adce89a1b4ca033</Md5>
    <ObjectName>output/transcode.mp4</ObjectName>
    </Md5Info>
    <ObjectName>output/transcode.mp4</ObjectName>
    <ObjectPrefix/>
    <Region>ap-chongqing</Region>
    </OutputFile>
    </MediaResult>
    <Output>
    <Bucket>test-123456789</Bucket>
    <Object>output/transcode.mp4</Object>
    <Region>ap-chongqing</Region>
    </Output>
    <TemplateId>t1995d523e42df4c5e858f244b4174360c</TemplateId>
    <TemplateName>trans_993874</TemplateName>
    <UserData>This is my Transcode job.</UserData>
    </Operation>
    <Progress>100</Progress>
    <QueueId>p2242ab62c7c94486915508540933a2c6</QueueId>
    <StartTime>2022-06-30T15:29:42+0800</StartTime>
    <State>Success</State>
    <Tag>Transcode</Tag>
    <Workflow>
    <Name>Transcode_1581665960537</Name>
    <RunId>ic90edd59f84f11ec9d4f525400a3c59f</RunId>
    <WorkflowId>web6ac56c1ef54dbfa44d7f4103203be9</WorkflowId>
    <WorkflowName>workflow-test</WorkflowName>
    </Workflow>
    </JobsDetail>
    </Response>

    Sample 3: Job callback in JSON format triggered by a workflow

    {
    "EventName": "TaskFinish",
    "JobsDetail": [{
    "Code": "Success",
    "CreationTime": "2022-06-30T15:29:42+0800",
    "EndTime": "2022-06-30T15:30:08+0800",
    "Input": {
    "BucketId": "test-123456789",
    "Object": "input/demo.mp4",
    "Region": "ap-chongqing",
    "CosHeaders": [{
    "Key": "Content-Type",
    "Value": "video/mp4"
    },
    {
    "Key": "x-cos-request-id",
    "Value": "NjJiZDYwYTFfNjUzYTYyNjRfZjEwZl8xMmZhYzY5"
    },
    {
    "Key": "EventName",
    "Value": "cos:ObjectCreated:Put"
    },
    {
    "Key": "Size",
    "Value": "1424687"
    }
    ]
    },
    "JobId": "j68427030f84611ecb8546d80f2baf56f",
    "Message": "success",
    "Operation": {
    "MediaInfo": {
    "Format": {
    "Duration": "13",
    "NumStream": "1",
    "Size": "1909389"
    },
    "Stream": {
    "Audio": {
    "Bitrate": "128000",
    "Channel": "2",
    "ChannelLayout": "stereo",
    "CodecLongName": "AAC (Advanced Audio Coding)",
    "CodecName": "aac",
    "CodecTag": "0x6134706d",
    "CodecTagString": "mp4a",
    "CodecTimeBase": "1/44100",
    "Duration": "13.653",
    "Index": "1",
    "Language": "und",
    "SampleFmt": "fltp",
    "SampleRate": "44100",
    "StartTime": "0.000000",
    "Timebase": "1/44100"
    },
    "Video": {
    "AvgFps": "50.000",
    "Bitrate": "1031968",
    "CodecLongName": "H.265 / HEVC (High Efficiency Video Coding)",
    "CodecName": "hevc",
    "CodecTag": "0x31637668",
    "CodecTagString": "hvc1",
    "CodecTimeBase": "1/50",
    "ColorPrimaries": "bt470bg",
    "ColorRange": "tv",
    "ColorTransfer": "smpte170m",
    "Duration": "12.960",
    "FieldOrder": "Unknown",
    "Fps": "50/1",
    "HasBFrame": "4",
    "Height": "960",
    "Index": "0",
    "Language": "und",
    "Level": "4",
    "NumFrames": "648",
    "PixFormat": "hvc1",
    "Profile": "Main",
    "RefFrames": "1",
    "Rotation": "0",
    "StartTime": "0.000000",
    "Timebase": "1/12800",
    "Width": "540"
    }
    }
    },
    "MediaResult": {
    "OutputFile": {
    "Bucket": "test-123456789",
    "Md5Info": {
    "Md5": "2db78d168edf2f883adce89a1b4ca033",
    "ObjectName": "output/transcode.mp4"
    },
    "ObjectName": "output/transcode.mp4",
    "Region": "ap-chongqing"
    }
    },
    "Output": {
    "Bucket": "test-123456789",
    "Object": "output/transcode.mp4",
    "Region": "ap-chongqing"
    },
    "TemplateId": "t1995d523e42df4c5e858f244b4174360c",
    "TemplateName": "trans_993874",
    "UserData": "This is my Transcode job."
    },
    "Progress": "100",
    "QueueId": "p2242ab62c7c94486915508540933a2c6",
    "StartTime": "2022-06-30T15:29:42+0800",
    "State": "Success",
    "Tag": "Transcode",
    "Workflow": {
    "Name": "Transcode_1581665960537",
    "RunId": "ic90edd59f84f11ec9d4f525400a3c59f",
    "WorkflowId": "web6ac56c1ef54dbfa44d7f4103203be9",
    "WorkflowName": "workflow-test"
    }
    }]
    }