概述
视频剪辑(云剪辑)服务是视频点播的制作中心,提供在线可视化的剪辑平台(控制台)及相应的OpenAPI。本文为您介绍云剪辑的整体工作流程、核心链路以及API的用法及示例。
简介
视频制作在整个视频链路(采集、制作、播放/互动、媒资管理)中具有非常重要的地位,将前期的采集拍摄和最终的分发播放连成一体,起着承前启后的作用。云剪辑服务就是视频点播的制作中心,支持剪切拼接、混音、字幕、图片叠加、遮标、转场特效等一系列功能。
云剪辑是一个云端一体的产品,包括前端组件/页面与后端服务两大部分。
云剪辑前端组件/页面
包括剪切、拼接、遮标、文字、调整顺序等组件或页面功能。具体操作,请参见视频剪辑。
后端服务
分为两部分内容:媒体合成服务和云剪辑工程管理服务。
您可以利用在线的云剪辑工具,对上传到点播媒资库的云端素材进行剪辑,提交合成;
也可以自行组织时间线数据,直接提交合成。
合成的新视频将存储到点播媒资库,您可以对它们快速进行分发播放,无需再进行下载和上传的操作。
云剪辑系统架构图如下:
名词 | 说明 |
素材 | 用于进行剪辑制作的原材料。 可用于剪辑的媒体资源需要存到点播媒资库,支持类型包括视频、音频、图片和文本。 |
云剪辑工程 | 用于描述一次视频创作过程中涉及的数据。一般包括基本元数据(如标题、创建时间等),本次视频创作所需的素材,以及描述实际视频创作内容的时间线。 |
时间线 | 将素材按照视频创意进行编排和特效设计的产物。 |
媒体合成 | 当视频创作完成后,可将最终制作好的时间线提交合成,生成新的媒体资源。媒体资源的合成是一个异步的过程,合成任务则描述了任务从开始创建到最终完成的过程。 |
成片 | 云剪辑的最终产物,也会存储到点播媒资库。 |
使用前提
输入:可用于剪辑的媒体资源需要存到点播媒资库(多种途径:上传、直播录制)。
输出:剪辑合成的媒体资源也将存到点播媒资库。
使用限制
不同服务地域对云剪辑能力的支持情况不同,使用前,请先确认您的服务地域是否支持,具体支持情况,请参见服务地域。
核心链路
云剪辑的核心链路分为输入、处理和输出三部分。
输入
云剪辑素材库,用来进行剪辑制作的原材料。
按素材类型,素材库可分为视频、音频、图片。各类素材文件支持的格式如下:
素材
支持格式
视频
封装格式:3GP、AVI、FLV、MP4、M3U8、MPG、ASF、WMV、MKV、MOV、TS、WebM、MXF等。
编码格式:H.264/AVC、H.263、 H.263+、MPEG-1、MPEG-2、MPEG-4、MJPEG、VP8、VP9、Quicktime、RealVideo、Windows Media Video等。
音频
封装格式:3GP、AVI、FLV、MP4、M3U8、MPG、ASF、WMV、MKV、MOV、TS、WebM、MXF等。
编码格式:AAC、AC-3、ADPCM、AMR、DSD、MP1、MP2、MP3、PCM、RealAudio、Windows Media Audio。
图片
JPG、JPEG、PNG、GIF、APNG
说明目前素材库的来源为点播媒资库资源。点播媒资库资源,一般包括源文件与转码输出文件。为了保证得到最好质量的成片,云剪辑合成服务使用点播资源的源文件进行剪辑与合成。
处理
剪辑合成处理过程中最核心的对象是:时间线(Timeline)。Timeline包含了多个轨道(又叫多层),每个轨道又可以包含多个素材片段(clip)。您可以为这些clip指定入出点、顺序以及相应的effect等参数。
Timeline来源如下:
使用前端剪辑组件进行剪辑操作,并进行保存,可生成Timeline数据。
可以通过调用视频合成服务的OpenAPI或SDK,直接传入Timeline数据。
媒体合成服务是云剪辑的核心服务,负责最终成片的生成。该服务的处理模式为异步处理。用户调用视频合成接口,该服务会同步返回合成的新资源ID,并根据参数的情况启动异步的合成任务。
用户可以通过接收媒体合成完成事件的通知,来获取合成完成的状态,当接收到该通知时,标志着新资源的源文件已经合成完毕。
也可以主动根据新资源ID查询资源状态,当资源状态在上传完成状态之后,标志着新资源的源文件已经合成完毕。
说明这种方式效率相对较低,建议通过事件回调方式接收合成完成通知。
云剪辑工程管理服务包括云剪辑工程的创建、更新、删除、获取,查询,以及为云剪辑工程设置素材等服务。对云剪辑服务有更深入管理需求的用户,可以使用云剪辑工程管理服务对视频创作过程的工程进行管理。
输出
云剪辑合成的目标成片。目前,云剪辑成片均输出到点播媒资库,支持三种输出资源类型:视频、纯音频和GIF。
云剪辑合成输出最核心设计原则是:源文件输入输出。
云剪辑服务用于合成的是素材的原始文件,而合成的成片文件也作为点播资源的原始文件存储到媒资库。云剪辑合成的目标媒体资源(Media),还有以下几个原则:
目标媒体资源分辨率与Timeline所使用的素材源文件分辨率有关:取其最大宽高。例如:Timeline使用了3个素材,其源文件分辨率分别为:1280×720,1920×1080,720×1280,则目标成片的分辨率为1920×1280。
目标媒体资源码率与Timeline所使用的素材源文件码率有关:取其最大码率。
云剪辑默认的合成目标类型为视频,编码格式是H.264,封装格式为MP4;也支持用户配置和请求级别的合成模板指定,对输出目标资源类型(纯音频、GIF等)以及合成模板的详细参数进行设置。
合成目标文件的输出格式如下:
素材
支持格式
视频
封装格式:FLV、MP4、TS、M3U8、MPD。
编码格式:H.264/AVC、H.265/HEVC。
音频
封装格式:FLV、MP4、TS、M3U8、MPD。
编码格式:MP3、AAC、VORBIS、FLAC。
图片
GIF
云剪辑合成完成,即目标资源的源片生成完毕之后,可根据需要自动发起针对该源片的转码和截图流程,方便客户快速分发。
可通过
ProduceConfig
中的TemplateGroupId
来设置源片合成之后启动的转码流程,不设置该参数时,合成之后根据配置的默认模板组启动转码流程。转码模板组的具体配置参考转码设置。转码和截图流程是在媒体合成的源片生成之后才发起的,属于媒体合成的后处理流程。
媒体合成API用法
通过时间线合成
直接指定时间线,即Timeline数据,调用ProduceEditingProjectVideo接口,绝大多数场景下,使用这种方式即可,见下图:
通过云剪辑工程合成
通过云剪辑工程ID进行媒体合成的方式,适用于对云剪辑工程进行深入管理,并经由云剪辑工程来提交合成任务的场景。这种方式又可细分为两种:
方式1
创建云剪辑工程,创建时直接指定工程的Timeline数据,对应AddEditingProject接口。
根据工程ID合成,对应ProduceEditingProjectVideo接口。
方式2
创建云剪辑工程,创建时根据需要指定工程的Timeline数据(也可以在创建的时候不指定),对应AddEditingProject接口。
更新云剪辑工程的Timeline数据,对应UpdateEditingProject接口。
根据工程ID合成,对应ProduceEditingProjectVideo接口。
使用示例
视频剪辑提供了丰富的使用示例,特别是通过时间线(Timeline)进行剪辑合成,覆盖如下方面: