作者:luckyzhliu
这几年短视频行业的迅速发展,视频内容生产作为内容生态的重要一环。智影是一个集素材搜集、视频剪辑、后期包装、渲染导出和发布于一体的免费在线剪辑平台,能够为用户提供从端到端的一站式视频剪辑及制作服务。智影已接入多个腾讯系内容生态产品,帮助用户提升视频剪辑效率和成片优质率。背后的技术方案是如何实现的呢,一起来看看 TAVMedia。
背景
这几年短视频行业的迅速发展,视频内容生产作为内容生态的重要一环,逐渐成为内容平台必备基础能力,像手 Q、抖音、快手、视频号等各种内容或社交类产品,都需要音视频编辑能力。除短视频行业之外,AMS 广告对于动态视频需求也愈发强烈,游戏行业对于战报视频也成为刚性需求,比如头部的王者战报、吃鸡战报等等。
但是音视频编辑相关业务复杂度,技术门槛比较高,已成为业务团队最主要的发展瓶颈。从下边的框架图,可以看出视频发布的技术需求非常复杂,最上层用户可以感知的业务能力,比如视频裁剪拼接、音乐或贴纸添加、AI 效果和模板应用等等,而只是冰山浮出水面的一角,要实现这些复杂的视频发布需求,需要设计一个庞大的渲染系统,还要解决大量音视频相关的硬件兼容性问题。
迭代与演进
当前团队的主要成员都是最早微视发布器的骨干,深耕视频剪辑这个领域已有 4 年+,已接入腾讯 40 多款业务目前已对外开源的PAG就是团队的产物,视频剪辑方案也经历了 TAVKit、Light SDK 这 2 个历史版本迭代,最终走到了 TAVMedia。
TAVMedia 是什么
TAVMedia 全平台视频剪辑方案集合了跨平台渲染框架、音视频编解码、PAG 动画工作流、可自定义扩展的滤镜框架、视频生成云服务等能力,新的方案提供了行业领先的动效素材生产工具,动效素材资源商店,有利支撑了业务方海量动效素材需求,当前已为 AMS 模板产量带来了 16 倍的增速,为智影提供了 3500+可复用的素材;TAVMedia 实现了全平台覆盖,包括 Web 端、服务端、移动端、PC 端,并为各端提供了一致性对外接口,除了标准化原子素材格式 PAG,也统一了模板素材、自由剪辑模板的格式,让视频生成服务和特效素材可以在各个业务场景中打通复用。标准化了视频渲染生成服务,为腾讯智影、AMS 等业务服务端渲染效率提升了 3-5 倍,显著降低了服务器成本,在腾讯视频年中运营活动中,实现了仅 1 人天的开发成本就完成了服务对接。
TAVkit
TAVKit 以 Timeline 的轨道结构与渲染链的组织方式来串联了微视内的视频剪辑能力,灵活支持了 AI 特效、PAG 模板、一键出片等需求, 2019 年立项开发,带 UI 的版本 TAVCut 获得腾讯 2020 年上半年卓越研发奖,目前已接入了王者荣耀、手 Q、微视、鹅剪等公司内部业务。但由于 TAVKit 诞生自移动端业务,因此只支持 android、iOS 两端,没有做到跨平台,且同时需要维护 2 套代码。
Light SDK
为了解决视频剪辑方案跨平台的问题,2020 年 Light SDK 应运而生,该方案通过 ECS 系统,灵活组织了这些年积累的 100 多项能力;一套代码应用到移动端、PC 端,减少了代码维护与问题解决的成本;统一了拍摄与视频剪辑方案,该方案比较完美的解决了拍摄上的 AI 能力如何应用到视频剪辑上的问题,只是输入源上一个来自 Camera,一个来自视频画面,当前美摄 SDK、剪映 SDK 都是这种方式,但拍摄与视频剪辑还存在许多差别,简单列举下:
- 同一时刻,拍摄的画面只有一路而视频剪辑可以有多路,所以在 AI 识别与特效处理上都有逻辑上的不同
- 拍摄中的 AI 事件与数据具有不确定性,而视频剪辑中的画面都是固定的,也就是 AI 时间与事件都是确定的,这点就可以做诸多优化。
- 为了兼容拍摄,AI 触发与脚本控制的玩法,需一开始时初始化耗时比较高的触发需显示的资源(相应的内存占用也高),在该资源显示完后也不敢对其进行回收,因为怕又被触发显示,这样会导致内存占用高。
- 在 AI 触发或者脚本控制的相关玩法中,seek 时的画面与预览画面不一致,因为有可能 seek 会跳过视频触发点。
目前手 Q、微视 android 都已迁移到这种方案,该方案提供了可视化的玩法编辑器Tecent Effect Studio,一套玩法可同时应用在拍摄与视频编辑的场景,虽有些资源占用上的瑕疵,但微视与手 Q 这种移动端上的拍摄与后编辑都需要的业务不失为比较好的方案。
TAVMedia
针对 light sdk 里视频编辑和拍摄合并的 ecs 架构导致无法真正对视频编辑进行优化的问题,同时也有不少 web 端与服务端的业务过来咨询视频剪辑的方案,为了真正做到全平台覆盖(支持 Web、小程序和服务端),我们启动了 TAVMedia。在 TAVCut、Light SDK 这 2 个方案的积累下,TAVMedia 做了如下的优化:
- 业务中所有轨道数据(图片、视频、特效、滤镜)在 TAVMedia 都有对应的 clip,而非 Light SDK 中的模板数据。
- 所有渲染结构都支持 CPU\GPU 任务分离,充分利用每个渲染间隔,高并发渲染。
- 渲染节点之间绝大部分由纹理传递方式改为 FrameBuffer 传递方式,减少离屏的次数实现渲染合并。
- 在扩展性上,业务可自定义的 effect 效果,只需要将其 add 到 TAVMedia 的 Composition 中即可。
- 更加灵活的预加载策略,在视频、特效、PAG 轨道确定的情况下,预初始化 CPU 资源。
针对 web 端和服务端的应用场景,我们做了如下的优化:
- TAVMedia 支持渲染结构实时序列化和反序列化,方便草稿存储、web 端预览与服务器导出间通信。
- 更加智能的分段导出策略,根据服务器的 CPU 数量,以及导出一段视频所需的线程数量,智能分段导出。
- 纯净的视频片段(该视频段没有特效滤镜),无需渲染,只需要转码导出,减少渲染耗时。
上诉点的技术细节,在后续的文章中逐一介绍。
工作流程
除 SDK 之外,我们还提供了可视化的制作工具,设计师只需要在自己最熟悉的动效制作环境 AE 中,设计完成后一键导出成 PAG,包括原子特效与视频模板,并在桌面端提供了效果一致的预览工具,来查看效果与性能,确认 OK 之后,可一键上传到动池素材商店,当然也可以私藏。各个垂直场景在自己动效产能不够情况下,也可以在动池素材商店下单,内外部设计师接单之后用制作工具设计完成后,再上传到各业务的素材管理后端,通过 TAVMedia SDK 渲染导出成 MP4。另外这个视频中所用到的 AI 事件比如游戏事件、AMS 广告事件都前置识别,这样有几个优点:
- AI 事件识别库与 TAVMedia 渲染库,从流程上做到解耦。
- 解决在 AI 触发或者脚本控制的相关玩法中,seek 时的画面与预览画面不一致的问题
- 兼容各个业务情况,比如游戏事件、音乐卡点、AMS 广告事件都是前置预设好的。
业务落地形式
SDK
智影是 TAVMedia 第一个落地业务,TAVMedia SDK 为智影带来了:
- 为智影提供了 3500+可复用的素材。
- 从 Web 端到服务端全套解决方案,且 web 端和服务端协议数据打通。
- 渲染性能相比于原来老的渲染导出性能提升了将近 3.9 倍,也意味着服务器成本降低了 80%左右。
PaaS 服务
除提供 SDK 外,还可以提供标准化的视频渲染 Paas 化服务,以 AMS 广告业务(之前已接入 PAG 的方案)为例,接入 TAVMedia Paas 服务可以为其带来:
- 性能优化:同样的资源情况下,通过提升 CPU 利用率和优化渲染链路,使得渲染耗时比降低 26.67% ,从 0.451 到 0.331
- 成本优化:同样任务量,同样的任务完成时间,CPU 核心降低 24.6%,内存降低 94.5%,总成本钱降低 39.2%。详见(实验设计,根据 52 个生产环境录制请求和 16 个 consumer 实例集群测试结论)
- 稳定性加固:解决自动扩缩容问题、增加监控手段 7 个,定位问题手段 2 个,最终成功率 SLI 保障(内网) 99.95%(原来旧集群 99.95%)
- 迁移成本低:1 人天完成开发,协议兼容现有 AMS 业务请求,增加少量字段如鉴权和租户信息
- 减少人力成本:不需要 AMS 运维
- 新业务接入效率高:增加 TAVMedia-Template 适配层,新业务进入服务端只需更新 js 文件即可
1.平均渲染耗时减少: 31.91%
2.平均渲染耗时比减少: 26.67%
智影,在云端剪出你的故事!
欢迎登录智影:https://zenvideo.qq.com
欢迎关注智影公众号智影 Zenvideo 了解最新产品与活动信息