视频云基础架构专家筱骏在2018云栖大会上海峰会中做了题为非编架构与视频渲染助力短视频能力快速落地的分享,本次主要从三个方面进行分享,就短视频的概念和功能、技术方案的实现、遇到的坑等方面的内容做了深入的分析。带你深入了解非编架构与视频渲染的魅力。
数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!
直播视频回顾
PPT下载请点击
以下是精彩视频内容整理:
短视频制作的过程
短视频制作过程大致可分为三个步骤:首先是视音频采集/输入,主要包括视频、音频从摄像头和麦克风中的数据采集,以及导入视频(MP4、MOV)、导入照片(jpeg、png)和导入音乐(MP3)等操作;导入工作完成之后要做的是视音频的编辑/加工,也就是对各种素材的处理,例如实时美颜、变速、实时混音、音频特效(变声、变调)以及实时滤镜(特效滤镜)等,也包括人脸识别、贴纸、气泡与字幕、MV效果、时间特效(慢速、快速、反复和倒放)以及涂鸦等常见的素材处理;处理完成后进入到合成输出环节,主要是导出360、540和720等不同的分辨率,以及导出MP4、MOV等多种视频格式,然后做视频的发布。
阿里云的视频在面临不同行业时设置了大概九个场景,分别是社交、宠物、美食、社区、旅游、电商、母婴、媒体以及教育。作为toB的SDK在面临众多行业的同时,也面临着技术上的挑战,除了面临丰富多样的客户场景需求之外,还面临着扩展性、性能及兼容性上的考量,以及在高清视频的实时处理能力、各种素材的输入和各种素材在合并后的输出等众多挑战。
短视频SDK的技术挑战
在面临众多挑战时,阿里云的视频将从非线性编辑、渲染引擎两个方面应对短视频下的技术挑战,首先是非线性编辑,主要目标是对原素材任意部分的随机存取、修改和处理。其次是渲染引擎,主要是提供渲染底座,方便对接不同的视频算法以及组合复杂的渲染流程。
典型非编场景
上图是一个传统的非编软件,可以看到在非编场景下编辑时会面临很多有特色的操作。例如素材裁剪,对导入的视频或者采集的视频可能需要做一些部分的裁剪或拉伸等操作。还会有一些传统的滤镜,对素材在不同阶段做一些不同的滤镜效果,以及在多段短视频中传递一些转场方式。对于时间轴+轨道的展现方式,可以看到有多个轨道,并且每个轨道上也可以存放多个素材,进而可以让这些素材在整个时间轴上进行拉伸,然后对每个视频进行特殊的处理。
短视频的非编架构
- 阿里云的短视频在非编架构上的实现可以分成不同的层次。
- 最底层多媒体的分发框架:其主要作用是提供基础的能力,例如线程模型、数据监控、时钟机制以及buffer监控管理等等。
- 通用组件:其特点是底层代码高度模块化,根据不同的业务场景按需打包,控制包大小,针对不同场景,在多媒体行业上提炼出来的共性的基础能力,例如渲染音频处理,音视频的编解码和短视频的缓冲等。
- 短视频场景的编排:其特点是业务组件层多平台接口统一,多平台接入简单。在短视频中有数据的导入、直接实时地录制、导入裁剪、多段视频的拼接以及导出合成等功能。
- UI控件:提供成熟稳定的UI控件来完成定制化,可以方便客户快速集成。
- Demo:提*品级别的Demo并向开发者开源。
多媒体分发框架
不论是基础性组件还是适合某一场景下编排的组件,它们都集成于多媒体分发框架上的基础能力,通过基础能力的集成,提供了组件之间的互发以及相互之间的消息订阅等能力。通过Clock机制让组件之间按时间的方式串联起来,组件的统一状态迁移也使得我们可以更快的完成业务,并且组件之间数据的传递可以将整条数据链监控起来。
多媒体通用组件
对于如何实现非编场景下的典型的多轨道+时间轴的技术问题,首先要抽取音视频缓冲池处理,也就是说将一些素材做各种时间映射和拉伸,例如对每个素材做快放或者倒放的效果,或者一些非线性的效果,让它在时间轴上做拉伸后生成了某一轨道上的视频片段,展现了每个视频的多轨道叠加,这就涉及到了文件流绝对时戳、文件流相对时戳、时间映射后的时戳、全局时戳等处理方式,通过这些方式就可以组装出各种非编效果。
上图分别是短视频录制渲染 pipeline(左)与短视频编辑渲染 pipeline(右)两个典型场景,可以看到两种pipeline在渲染诉求上是完全不同的。对于toB场景来说业务丰富度更高一些,每个客户都会有对应场景下的要求,这样就需要针对这些pipeline有灵活的编排能力,以适应不同业务场景下的客户需求,同时有需要有能够灵活扩展,快速对接第三方渲染的能力,除此之外对于跨平台问题,也做了统一接口处理,针对平台特性进行了优化,支持硬编硬解(性能)。
对于渲染的管道化处理进行了抽离处理,GPU抽象层解决了OpenGL平台适配问题,这个层面会涉及解析运行等操作。由于pipeline有不同的节点,针对这些节点编排后怎样解析进而生成链路,最终以一种驱动模式运行的问题,我们的解决方式就是采用渲染服务,渲染管道有一个统一的状态使整个业务层面统一运行起来。
非编&渲染引擎的改进优势
在集成短视频SDK后,可以开放定制动图、滤镜和MV素材等功能。对于云端的短视频,在非编架构上可以对每个素材做各种类型的时间特效非线性叠加变换,并且渲染转场效果也可以进行扩展出更多的类型,例如多边形、淡入淡出和百叶窗等等。
阿里云短视频SDK最新版本增加了特效滤镜、时间特效以及做了性能提升。通过非编架构和渲染引擎可以使得短视频SDK做出行业领域里面各种酷炫的效果,也能够缩短客户在需求上的迭代速度。