在6月8日上海云栖视频专场中,阿里视频云技术专家孙小军进行了一场短视频技术分享,解读了短视频非编架构和渲染技术架构的实现原理。阿里云短视频SDK服务了1000多家企业用户,遇到了不同垂直行业、不同业务场景的客户。除了面临多样性需求的技术挑战外,还面临着扩展性、性能及兼容性上的考量。
那么,在基础架构研发层面是如何解决这些问题呢?
阿里云的短视频SDK从非线性编辑入手,主要目标是对音视频素材做任意部分的随机存取、修改和处理。其次,阿里云短视频SDK对渲染效果进行管道化处理,提供渲染底座,方便对接不同的视频算法及组合复杂的渲染流程。
在传统的非编场景中,当我们有编辑需求时,是这么操作的。左上角有素材裁剪,导入或采集的视频,要做裁剪、倒放、拉伸等等处理,下一步是添加一些滤镜效果,如果有多段视频,可以选择不同方式的转场。下面在整个视频时间轴上存在不同轨道,每个轨道上可以在不同的时间段放不同的素材,每个素材可以拉伸时长、变速等。
一、短视频的非编架构是怎样的?
通过提炼,我们抽取了五层架构。最上面一层是产品级的DEMO,方便用户快速修改发布上线;第二层是成熟的、开源的UI控件,像时间轴空间、文字动图编辑控件等,用户可以直接使用也可以定制化;第三层是针对短视频场景进行一些编排,包括录制场景、视频导入裁剪、多段拼接、编辑场景等;第四层是多媒体领域通用性的组件,包括渲染、音频处理、编解码等;最下层是多媒体分发框架,是对包括线程模型、时钟机制、监控、状态管理等跨平台的基础能力的抽象。下面我们从几个重点层级详细展开。
多媒体分发框架
无论是音视频编解码、渲染等基础组件,还是编辑、导入拼接等业务场景的编排组件,都是基于多媒体分发框架上实现的。多媒体分发框架包括线程模型、模块间消息订阅互发等基础服务的封装,通过Clock机制让多个组件之间组合出多样性的时钟同步方案,并通过这些组件之间的统一状态迁移和数据链路的状态监控,可以方便业务编排层快速构建具体的业务场景。