AQ 录制,与编辑时间线

472 阅读4分钟
原文链接: zhuanlan.zhihu.com

最近参与开发公司的一个软件,名字叫 「AQ 录制」。软件的网址在这里:

AQ录制官方网站 - 使用AI技术捕捉游戏高光,录制高品质游戏视频、屏幕截图的永久免费录制软件aq-game.yy.com图标

大家可以下来看看。

我之前不知道公司有这个项目存在,直到同事找来,才恍然发觉公司居然有这样的东西。

「AQ 录制」的基本功能很简单,就是录制电脑桌面。主要是玩游戏的时候,自动录制游戏内容,再提供基本的视频编辑功能。

「AQ 录制」最大的卖点,是通过 AI 识别游戏画面里的内容,判断玩家当前场景,自动录制游戏的“高光时刻”。游戏里“高光”,通常是指己方击杀他人,集中在FPS、MOBA 等游戏类型。「AQ 录制」支持的都是国内外比较热门的游戏,想来是期望以此作为切入点,打入到游戏类视频作者之中。

这款软件是免费的,按他们的说法,是永久免费无广告无水印全功能无限制。我倒是好奇他们怎么盈利,不能盈利的产品很难维持下去。这里也算留个记号,看看以后会不会打脸。

软件为什么叫「AQ 录制」呢?我问过最初的开发者,AQ 原指快捷键 Alt + Q。我猜测最初是需要用户按快捷键才开始录制视频。后来有了 AI 自动录制之后,就不用快捷键了,AQ 也仅仅是个名字。估计以后 A 更多是指 AI。

以上也算是为「AQ 录制」打打广告,毕竟我有参与开发,下面记录我在其中做的事情。

----------------

软件最核心的技术,是如何识别出游戏中的高光时刻。不过我不是做这个,我是做后期的视频编辑功能。开发 PC 版本的视频编辑 SDK。SDK 虽然还没有成熟,但也部分应用到「AQ 录制」中。

我们参考了不同的软件编辑功能,调查了一些开源项目,最终确定整体架构。用 C++ 从头开始编写,是个跨平台的 SDK。

其实视频编辑的基本框架都比较固定和成熟了,网上都可以查到,但还是记录一下。

基本架构

视频编辑,从下到上,核心可分为三层。

  1. codec。封装音视频编解码,复用内存、解码器等,从媒体素材中解码出图像音频数据。
  2. timeline。在 codec 的基础上,添加时间线(Timeline)、轨道(Track)、片段(Clip)等概念,可将多个媒体素材变成概念上的整体。
  3. filter。用于在视频或者音频上添加特效。定义好特效接口好,特效就可以无限扩展。

最基础的概念可能是时间线。

Timeline 示意图

如图,以时间线为准。在时间线上可添加多个视轨(VideoTrack)和音轨(AudioTrack),每个 Track 又可放置多个片段片段(Clip),Clip 和 Clip 之间可有间隙(Gap),或者转场。

Clip 用于表示媒体资源的某个时间区间(比如 0 到 3 秒)的内容。

在 Timeline、Track、Clip 每层之中都可放置特效(Filter)。放在时间线上的东西,是概念上的整体。时间线驱动视频实时预览和合成。编辑行为,其实都是在操作时间线上的数据。

某一时刻切片

在时间线上配置好轨道、片段和特效后,传入时间戳。时间线就驱动解码器和特效的运行,合成最终一帧。如示意图,是某一时刻(传入时间戳)的程序运行切片。

上图有两个 Track,各自从 SampleSource 中解码出的一帧图像(或音频)。每个轨道各自经过 Filter 叠加特效。再经过 MixFilter 对两个轨道进行合成,合成的结果又可经过 Filter,生成最终的结果。

其中所有 Filter 共享一个环境,可读写其中的共享数据。比如复用纹理池,AI 识别出的人面数据。Filter 和 Filter 之间有某些数据交换等。

音频和视频的 Filter 原理是相同的。比如添加不同的音频 Filter,就可自定义混音等。

合成视频例子

如合成视频例子中,Track 和 Timeline 上的特效如下