本文解释了Netflix建立专门的媒体数据库的原因,包括精准的用户推荐,极致的编码以及更高效的实现创意。
文 / Rohit Puri
译 / 王月美
原文:https://medium.com/netflix-techblog/the-netflix-media-database-nmdb-9bf8e6d0944d
想象一下,我们正在研究下一代自适应视频流算法。我们的目标是最大限度地缩短全球数百万Netflix会员的播放启动时间。为此,我们需要收集ISO BMFF(基本媒体文件格式)格式化比特流的标题的聚合统计数据(包括最小值,最大值,中值,平均值,任意百分数)。Netflix转码集群为大量内容提供服务,并为每个内容生成大量的比特流(具有不同的编解码器+质量组合)。在过去,我们需要编写一次性脚本,以便在我们分析数据之前,以艰难的方式从比特流中抓取头部信息。很显然这种方法无法扩展——我们脚本中的软件错误会将导致重置整个工作。
此外,当分析我们的媒体数据的另一个完全不同的维度时,还需要一个新的“一次性”脚本来处理。对于来自不同域的问题多次重复这种方法使我们意识到这里存在一种模式,并让我们建立一个以可扩展的方式来解决这个问题的系统。
这篇博客文章介绍了Netflix媒体数据库(NMDB)——一种基于Netflix微服务平台构建的高度可查询的数据系统。NMDB用于在Netflix上持久保存有关各种媒体资产的技术元数据,并使用查找和运行时计算的组合近乎实时地提供查询。NMDB使得开发人员(如视频流研究人员)能够将时间集中在对媒体数据洞察的开发上,并制定出令人惊叹的数据驱动算法,而不用操心收集和组织数据的任务。
为何选择媒体数据库?
优化的用户界面,有意义的个性化推荐,高效的流媒体和大量内容是定义终端用户在Netflix体验效果的主要因素。需要将各种复杂程度的业务工作流程聚集在一起,以实现这种体验。
与故事相关的艺术品图像和标题概要(见上图),以及富有洞察力的视频预览在帮助用户找到相关的节目和电影方面有很长的路要走。Netflix不断扩大的内容摄取量规模,要求开发能够帮助我们的创意团队及时合成高质量数字商品资产的系统。例如,这可以通过向它们提供有意义的原始图像和从源视频资产中自动(或通过算法)提取视频剪辑完成。这可以作为创建引人入胜的数字媒体资产的起点。
如下所示,内容推荐系统经济地表达了针对最终用户的内容偏好和品味。Netflix目录中内容紧凑且有效的特征表示对此功能是至关重要。例如,可以通过构建使用媒体文件(音频,定时文本,视频)以及标题元数据(类型标签,概要)作为其输入的机器学习模型。
高效的音频和视频编码方式可以更有效的利用比特流。对视频时间和空间分析(例如,检测镜头时刻和场景变化)以及识别视频帧中的显著的部分和对象有助于为视频编码系统生成关键信息。
最后,在Netflix上保持对源内容质量的高标准对于终端用户的体验非常重要。上图说明了一个这样的用例。该图像对应于来自西方古典类型的标题的视频帧。这种情况下,在视频中可以看到用于制作标题的相机。我们非常希望具有一种自动分析系统,该系统将检测和定位(可能通过矩形边界框)相机的存在。另一种这样的情况如下图所示。在该种情况下,字幕文本被放置在视频呈现的文本顶部,导致这两个文本都是不可读的。而视频文本检测算法以及字幕的定时和定位知识可以用于自动解决该问题。
我们需要注意的是,以上说明的看似完全不同的用例实际上与核心组件算法的使用重叠。例如,镜头变化数据对视频编码用例起着至关重要的作用。不同的镜头具有不同的视觉特性并且具有不同的比特预算。出于同样的原因,镜头变化数据也是从源视频资产中生成各种原始图像和视频剪辑的基本要素。通过从每个镜头中选择最优秀的候选者,可以获得高质量的原始艺术品候选者的集合。同样,可以通过组合每个镜头表示来构造视频媒体的有意义的潜在表示。
作为另一个示例,虽然视频文本检测数据在内容质量控制中起着非常宝贵的作用,但是对于视频编码和艺术品自动化用例也是有益的—包含大量文本的视频帧通常不用作良好的艺术品图像候选者。
此外,许多这些分析在计算上代价往往非常昂贵——在处理不同的业务用例时重复相同的计算是非常低效的。总之,这些原因共同构成了一个数据系统的论据,该数据系统可以作为与媒体时间轴相关的任何分析的通用存储。换句话说,我们需要一个“媒体数据库”。
媒体数据库的特征
媒体数据库容纳对应于不同模态媒体的媒体分析数据——这些媒体分析数据包括音频,视频,图像和文本(例如:字幕)。期望在媒体时间轴上提供任意查询。例如,音轨的时间线中的什么时间间隔包含音乐,或者包含文本的视频中的视频帧列表,或者对应于对话的字幕文件中的时间间隔的集合。 鉴于其范围的广度,我们认为以下是媒体数据库的重要特征:
1、对结构化数据的亲和力:具有模式的数据适用于基于机器的处理,因此可用于大规模分析和消费。在我们的案例中,架构合规性允许我们索引数据,这反过来又可以实现数据搜索和挖掘机会。此外,这就把数据的创造者从需要高端服务的消费者中解脱出来了。
2、有效的媒体时间线建模:服务从周期性的面向样本的(例如,视频帧)到基于事件的(例如,定时文本间隔)的各种类型的媒体时间线数据的能力是媒体数据库的基本特征。
3、时空查询能力:媒体数据库本地支持媒体数据的时间(例如,音频轨道中的时间间隔)以及空间(例如,图像的部分)特征,并且在这些维度上提供高效查询能力。作为示例,媒体数据库使得检查连续的视频帧序列是否包含视频帧的特定空间区域(如左上角)中的文本变得容易。这样的查询可以用于检测视频和字幕中存在的文本之间的冲突。
4、多租户:精心设计的媒体数据库可以用作支持来自多个应用的多个分析数据的平台。 因此,它允许存储任意数据,只要它是结构化的。另外,如果该数据也可以与媒体资源的特定时间间隔相关联,则每个租户可以从我们系统的有效查询能力中受益。
5、可扩展性:可扩展的基于微服务的模型至关重要。这意味着系统必须解决各种负载情况下的可用性和一致性的相关问题。
NMDB介绍
上面概述的用例激发了我们构建NMDB——一种通用存储,用于与媒体时间轴相关的任何分析,可用于在媒体时间轴上大规模回答时空查询。Netflix目录包含大量不同形式的媒体资产——静态资产的示例包括图像,可播放资产的示例包括音频,文本和视频。如上所述,无数业务应用程序可以从访问与这些资产相关的深入语义信息中受益。 NMDB的主要目标是提供这些应用程序所需的必要数据—我们将NMDB视为构成各种Netflix媒体处理系统主干的数据系统。
媒体时间轴数据的高效建模是NMDB的核心特征。媒体时间轴的规范表示可以支持大量用例,同时有效地解决用户查询模式。这构成了本系列下一篇文章的主题。
领取专属 10元无门槛券
私享最新 技术干货