写点什么

Electric Eye:Netflix 的音视频测试框架

  • 2015-10-08
  • 本文字数:1833 字

    阅读完需:约 6 分钟

作为一家北美视频租赁供应商, Netflix 还研发了从拇指大小的电视棒到超大屏幕的曲面高清电视等各种各样的设备。如何能够更好的实现这些设备上视频、音频以及字幕的正确同步一直是 Netflix 专注的问题。近日,Netflix 推出了一个自动化的计算机视觉和音频测试框架——电眼(Electric Eye),以辅助在这些设备上进行的同步测试。

提起电眼,首先需要说到美国的二十一世纪通信和视频辅助行动(Twenty-First Century Communications and Video Accessibility Act,CCVA)。CCVA 行动由美国国会提出,主要为残疾人在通信和视频方面提供特殊的帮助。隐藏式字幕(Closed Caption,CC)就是在这种背景下诞生的一种特殊字幕。其最初设计的目的是将节目中的音频或对白等通过文字在屏幕上显示出来,为有听力障碍的人理解电视节目提供帮助。CC 一般采用 Timed Text Markup Language(TTML)进行编写,详细描述了字幕的内容、出现的时间和位置以及消失的时间等等。以往,Netflix 都是采用人工方式来将 CC 和视频结合起来,确定其内容和显示方式。但是,这种方式效率低下,且容易出错。此外,设备多样性也使得该问题不易解决。同步显示还需要考虑到各个设备的特点。由此,电眼项目诞生。

作为该项目的第一步,Netflix 采用 OpenCV 建立了一个针对平面电视的模型,并将问题切分为了两个子问题——获得一个针对电视的可以测试的框架,然后从该框架提取出字幕进行对比。OpenCV 本身已经内置了在平面上探测棋盘模式的功能,并能够产生透视角修正矩阵(perspective-correction matrix)基于该矩阵封装图像的代码。这样,大概的功能已经实现。

但是,接下来还有很多小问题。最主要的就是电视本身是会发射光线的。这就导致摄像机摄录电视中视频时容易出现模糊、鬼影等问题。而视频内容如果为全黑屏又无法显示视频和字幕是否同步。因此,Netflix 选取了一段水流的画面作为测试视频,将其亮度降低了50%,然后在其上覆盖字幕。屏幕上部显示的是应该正确出现、已经内嵌在视频中的字幕,而下部显示的是经过解析显示出的字幕。通过比较这两个字母,系统就可以知道CC 字幕是否正确显示。此外,测试环境中的灯光还容易引起水面反光太强,影响到字幕显示。针对这些问题,Netflix 结合环境矫正技术、传统的OpenCV 图像清理技术以及CV 等提出了解决方案。最终,原型系统可以在66ms 级别可靠的探测delta,从而引入第二个原型系统的创建。

在第一个系统的基础上,第二个系统加入了一些额外的要求:处理过程要实时进行和系统要能够处理音频。但是, OpenCV 并没有提供音频接口,且性能有限。为此,Netflix 团队采用了创造性的编码框架——Cinder 。作为知名的C++ 库,Cinder 还提供了能够桥接OpenCV 的CinderBlock 模块和音频DSP 库。因此,音视频同步测试也加入到了原型系统中。而测试内容也采用了 Archimedia 专门为 Netflix 设计的、用于音视频测试的 Test Pattern 。测试过程包含以下步骤:小球到达底部之前在英语 2.0 轨道播放 1250Hz 的声音,过程持续 400ms;一旦小球到达底部,声音转变为 1000Hz,持续 200ms。这些模式每 6 秒钟重复一次。

为了鉴别正在播放的声音,Netflix 采用了 Cinder 的 MonitorSpectralNode 类。这样,系统就可以抓取第一帧和最后一帧,并感知声音频率变化的时刻,从而进行简单的音视频同步测试。接下来,系统就需要识别小球的位置,实现测试过程的自动化。为了排除屏幕发光、摄像机延迟和像素反应时间等带来的影响,Netflix 采用了图像处理、直方图均衡化以及图像阈值等技术。最终,系统能够取得大约 33ms 的精度和每次测量正负 33ms 的误差。

此外,测试过程中还遇到音频频率不一致的问题。其中,电脑中音频为 44.1kHz,通过 HDMI 后变为 48kHz,而并非所有的摄像机都同时支持 44.1kHz 和 48kHz。因此,Netflix 花费了 5 个月的时间来解决这些问题,最终搭建成功了电眼系统。现在,电眼 1.0 版本正式亮相。Netflix 也在计划尽快开源其绝大部分代码。Netflix 的高级软件工程师 Michael Russel 表示,公司接下来会继续对电眼进行额外的测试,并寻找更多的应用场景。而且,Michael 透露,Netflix 开源电眼的目的则是希望更多测试者能够直接受益或者从中获得计算机视觉和音频处理的测试方面的灵感和经验。


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-10-08 19:002757
用户头像

发布了 268 篇内容, 共 126.0 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

探索人工智能在测试领域的新纪元:AI编写测试用例的前景

霍格沃兹测试开发学社

探索Photoshop 2024新功能,让设计更出彩!

Rose

Photoshop 2024破解版 Photoshop 2024直装版 ps2024新功能 ps2024中文版

掌控基础设施,加速 DevOps 之旅:IaC 深度解析

SEAL安全

DevOps 运维 IaC

mac电脑如何使用Linux系统?PD虚拟机安装Linux系统详细教程

Rose

Linux系统 mac电脑 pd虚拟机 19

Parallels Desktop 18:Mac上的Windows体验再升级,游戏、工作两不误

Rose

pd18虚拟机 Mac虚拟机下载 Parallels Desktop 18破解 Parallels 激活码 PD18安装教程

Final Cut Pro中文版 导出视频的教程(含fcpx安装包)

Rose

Final Cut Pro中文版 FCPX下载 fcpx Final Cut Pro教程 Mac软件视频编辑

✅真实对账系统是如何设计并优化的

派大星

互联网大厂面试 java 架构

实战剖析-vue项目首屏加载时长优化

京东科技开发者

低代码技术与仓储管理的新纪元:革命性的供应链变革

天津汇柏科技有限公司

低代码 仓储系统

苹果专业的视频下载器Downie 4 for mac的主要功能和优势

Rose

Mac 软件 视频下载工具 Downie 4许可证 Downie 4 Mac版

软件开发流变史:从瀑布开发到敏捷开发再到DevOps

敏捷开发

DevOps 敏捷 敏捷转型 瀑布模型 IT 运维

如何基于Django中的WebSockets和异步视图来实现实时通信功能

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号2024年4月PK榜

OpenHarmony napi开发-公开课

Laval小助手

入职3年-我如何做一名AI产品经理

京东科技开发者

体验稳定强大的数据处理神器——Microsoft Excel LTSC 2021

Rose

Excel 数据分析 Excel 2021破解版 Excel 2021永久版 Excel 许可证

CorelDRAW 2024(cdr2024注册机)最新图文安装教程

Rose

CorelDRAW2024下载 CorelDRAW破解补丁 CorelDRAW中文版安装 cdr2024安装教程

(含永久密钥)无缝衔接,畅享多系统!体验VMware虚拟机的强大功能

Rose

虚拟机软件 VMware Fusion 虚拟机 VM虚拟机密钥

前端代码规范 - JavaScript 部分规范

南城FE

JavaScript 前端 代码规范

ownips数据获取工具全面测评

Yan-英杰

TCP

SketchUp Pro草图大师2023中文直装版下载 mac/win

Rose

草图大师2023下载 SketchUp Pro 2023下载 SketchUp Pro 2023破解

库洛游戏宣布《战双帕弥什》将启动鸿蒙原生应用开发

最新动态

Datax助力轻松迁移SQLServer数据至GreatSQL

GreatSQL

ChatGPT助力测试领域!探索人工智能编写测试用例的新前景

测吧(北京)科技有限公司

测试

macos big sur 软件icons图标大全(新增至2719枚大苏尔风格图标)

Rose

icons图标大全 macos big sur 软件

实践展示openEuler部署Kubernetes 1.29.4版本集群

华为云开发者联盟

Kubernetes 华为云 集群 华为云开发者联盟 企业号2024年4月PK榜

如何使用Microsoft Remote Desktop for Mac微软远程?

Rose

Mac软件 microsoft remote desktop 微软远程管理

京东广告研发——AIGC在京东广告创意的技术应用

京东科技开发者

Electric Eye:Netflix的音视频测试框架_语言 & 开发_张天雷_InfoQ精选文章