阿里视频云 关注 视频服务

阿里视频云技术专家孙小军:短视频SDK非编架构与渲染引擎技术实现

  1. 云栖社区>
  2. 阿里视频云>
  3. 博客>
  4. 正文

阿里视频云技术专家孙小军:短视频SDK非编架构与渲染引擎技术实现

樰篱 2018-06-14 16:31:27 浏览2631 评论1

摘要: 在6月8日上海云栖视频专场中,阿里视频云技术专家孙小军进行了一场短视频技术分享,解读了短视频非编架构和渲染技术架构的实现原理。阿里云短视频SDK服务了1000多家企业用户,遇到了不同垂直行业、不同业务场景的客户。

在6月8日上海云栖视频专场中,阿里视频云技术专家孙小军进行了一场短视频技术分享,解读了短视频非编架构和渲染技术架构的实现原理。阿里云短视频SDK服务了1000多家企业用户,遇到了不同垂直行业、不同业务场景的客户。除了面临多样性需求的技术挑战外,还面临着扩展性、性能及兼容性上的考量。
IMG_3274

那么,在基础架构研发层面是如何解决这些问题呢?

image

阿里云的短视频SDK从非线性编辑入手,主要目标是对音视频素材做任意部分的随机存取、修改和处理。其次,阿里云短视频SDK对渲染效果进行管道化处理,提供渲染底座,方便对接不同的视频算法及组合复杂的渲染流程。

在传统的非编场景中,当我们有编辑需求时,是这么操作的。左上角有素材裁剪,导入或采集的视频,要做裁剪、倒放、拉伸等等处理,下一步是添加一些滤镜效果,如果有多段视频,可以选择不同方式的转场。下面在整个视频时间轴上存在不同轨道,每个轨道上可以在不同的时间段放不同的素材,每个素材可以拉伸时长、变速等。

image

一、短视频的非编架构是怎样的?

通过提炼,我们抽取了五层架构。最上面一层是产品级的DEMO,方便用户快速修改发布上线;第二层是成熟的、开源的UI控件,像时间轴空间、文字动图编辑控件等,用户可以直接使用也可以定制化;第三层是针对短视频场景进行一些编排,包括录制场景、视频导入裁剪、多段拼接、编辑场景等;第四层是多媒体领域通用性的组件,包括渲染、音频处理、编解码等;最下层是多媒体分发框架,是对包括线程模型、时钟机制、监控、状态管理等跨平台的基础能力的抽象。下面我们从几个重点层级详细展开。

image

多媒体分发框架

无论是音视频编解码、渲染等基础组件,还是编辑、导入拼接等业务场景的编排组件,都是基于多媒体分发框架上实现的。多媒体分发框架包括线程模型、模块间消息订阅互发等基础服务的封装,通过Clock机制让多个组件之间组合出多样性的时钟同步方案,并通过这些组件之间的统一状态迁移和数据链路的状态监控,可以方便业务编排层快速构建具体的业务场景。

多媒体通用组件

非编场景下的典型的时间轴和多轨道的技术,短视频SDK是如何实现的呢?抽取了音视频缓冲池处理,将素材做映射拉伸,比如对每一个素材做快放、倒放的效果,生成某一个轨道上的视频片段,每个轨道上可以添加多个音频、视频、图片等素材。通过素材的绝对时戳、相对时戳以及与全局时戳的映射关系,就可以灵活组装出各种非编效果。

image

短视频场景编排层

在这一层上会实现短视频场景下的各类编排方式。以编辑场景为例:预览和合成效果上是有重叠的,在这一层中可以按下图方式编排流程。
1、创建缓冲池、渲染、编排、封装等组件,注册到消息分发框架;
2、创建Clock注入组件,订阅主从时钟关系;
3、组装数据流订阅关系,渲染订阅缓冲池流、编排订阅渲染流、Muxer订阅编码等;
4、针对业务场景编排渲染节点;
5、编排层组件统一管理各组件状态迁移Init->Prepared->Playing;
6、编排层可以Buffer监控、调整、上报;

image

二、复杂的渲染效果是如何实现的?

image

上图是短视频录制渲染与编辑渲染的pipeline,可以看出录制场景和编辑场景下渲染流程存在较大差异。在业务丰富度高的toB业务场景中,需要有灵活的渲染节点编排的能力和对接第三方渲染的能力,同时对于终端平台还存在多平台适配问题,需要统一接口并针对平台特性进行优化,来保证性能。

针对以上的问题,在渲染引擎上阿里云短视频SDK抽离出四层概念。第一层是GPU抽象层,这一层是为了解决OpenGL、Mental等渲染适配的问题;第二层是解析和运行层,针对不同的pipeline节点编排,解析并生成链路,并按照驱动模式去运行;第三层是渲染服务层,可以实现状态迁移和模块间信令交互等;第四层是渲染业务编排层,根据不同业务场景来排版渲染的pipeline。

非编能力与渲染引擎能为用户带来什么价值?

第一, 当用户提出新的个性化需求的时候,如多滤镜分屏显示,只需要编排能力就可以组装出用户需要的效果。后续将会开放渲染节点编排,用户可以自行编排渲染节点,实现更符合自己业务特色的渲染效果。

第二, 集成了短视频SDK后,后续将会开放定制动图、滤镜和MV素材。

第三, 针对某个素材,实现各种类型的时间特效,非线性叠加变换。

第四, 可扩展丰富的转场效果,包括多边形、淡入淡出、百叶窗等。

第五, 对非编全链路pipeline做了大量的性能优化,渲染引擎做了CPU到GPU性能优化,集成短视频SDK后,用户可以获得更好的性能体验。

image

作为基础架构研发,孙小军所在的团队也遇到了一些坑点。如果要实现跨多段,全局时间重叠,并且要实现反复时间特效的时候,业内的玩法是预处理合成一个视频,然后再针对这段视频进行反复处理。但是我们也会遇到一些客户的反馈,在这个过程中预处理时,用户的等待时间很长,失去了灵活性。那阿里云短视频SDK做的改变是,在这条线上通过非编,将反复的时间段转换成多个part段,通过part的反复来达到整体非编的效果。

短视频V3.6版本上线

短视频SDK近期刚刚发布的V3.6版本就采用了非编架构和渲染引擎,在功能层面,除了原本的短视频基础能力之外,新增了特效滤镜、时间特效等功能,可以快速实现类似“抖音”等当红短视频APP上的酷炫效果。

image

对业务感兴趣的朋友,可以扫码下载DEMO,或者加入钉钉合作群与专家直接交流。

image

用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击

网友评论

1F
穆记老婆饼

不错😊

(来自社区APP)
樰篱
文章196篇 | 关注448
关注
集音视频上传、自动化转码处理、媒体资源管理、分发加速于一体的一站式音视频点播解决方案。 查看详情
基于领先的内容接入与分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高... 查看详情
CDN
是将源站内容分发至全国所有的节点,缩短用户查看对象的延迟,提高用户访问网站的响应速度与网站的... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航