视频合成

最近更新时间:2019-10-08 17:16:40

视频合成,是对云点播中的视频进行裁剪、拼接、重叠以及翻转等复杂操作,是一种离线任务。使用视频合成,可以达到以下效果:

  • 画面旋转:对视频、图片的画面旋转一定角度,或按照某个方向翻转。
  • 声音控制:升高降低视频、音频中声音的音量,或者对视频静音。
  • 画面叠加:将视频、图片中的画面依序叠加在一起,如实现“画中画”的效果。
  • 声音混合:将视频、音频中的声音混合在一起(混音)。
  • 声音提取:将视频中的音频提取出来(不保留画面)。
  • 裁剪:对视频、音频裁剪出指定时间段。
  • 拼接:对视频、音频、图片按时间顺序前后拼接。
  • 转场:将多段视频或图片拼接时,可以在段落之间添加转场效果。

合成后生成的媒体封装格式是 MP4(视频)或 MP3(音频)。

任务发起

视频合成任务,通过 服务端 API 方式发起。调用 API 的返回结果中包含任务 ID,用于关联 结果获取 时对应的任务结果。

结果获取

发起任务后,您可以通过异步等待 结果通知 和同步进行 任务查询 两种方式获取视频合成的执行结果。下面是发起视频合成任务后,普通回调方式下结果通知的示例(省略了值为 null 的字段):

{
    "EventType": "ComposeMediaComplete",
    "ComposeMediaCompleteEvent": {
        "TaskId": "ComposeMedia-f5ac8127b3b6b85cdc13f237c6005d8",
        "Status": "FINISH",
        "ErrCode": 0,
        "Message": "SUCCESS",
        "Input": {
            "Tracks": [{
                    "Type": "Video",
                    "TrackItems": [{
                        "Type": "Video",
                        "SourceMedia": "5285485487985271487",
                        "AudioOperations": [{
                            "Type": "Volume",
                            "VolumeParam": {
                                "Mute": 1
                            }
                        }]
                    }]
                },
                {
                    "Type": "Audio",
                    "TrackItems": [{
                            "Type": "Empty",
                            "EmptyItem": {
                                "Duration": 5
                            }
                        },
                        {
                            "Type": "Audio",
                            "AudioItem": {
                                "SourceMedia": "5285485487985271488",
                                "Duration": 15
                            }
                        },
                        {
                            "Type": "Audio",
                            "AudioItem": {
                                "SourceMedia": "5285485487985271489",
                                "SourceMediaStartTime": 2,
                                "Duration": 14
                            }
                        }
                    ]
                }
            ],
            "Output": {
                "FileName": "视频合成效果测试",
                "Container": "mp4"
            }
        },
        "Output": {
            "FileType": "mp4",
            "FileId": 5285485487985271490,
            "FileUrl": "http://125676836723.vod2.myqcloud.com/xxx/xxx/xxx.mp4"
        }
    }
}

回调结果中,Input.Tracks包含两个元素,Type分别是 Video 和 Audio,表示合成的视频包含一个视频轨和音频轨。

  • 视频轨道:来源视频 ID 是5285485487985271487,对其做了静音处理。
  • 音频轨道:包含5秒的静音,以及15秒和14秒的两个配音。

Output.FileId是视频合成后生成的新视频 FileId,视频播放 URL 是FileUrl中的值。