热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Netflix:为什么建立专门的媒体数据库?

netflix,为什么,建立,专
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/83373969

本文解释了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体验效果的主要因素。需要将各种复杂程度的业务工作流程聚集在一起,以实现这种体验。


640?wx_fmt=png


与故事相关的艺术品图像和标题概要(见上图),以及富有洞察力的视频预览在帮助用户找到相关的节目和电影方面有很长的路要走。Netflix不断扩大的内容摄取量规模,要求开发能够帮助我们的创意团队及时合成高质量数字商品资产的系统。例如,这可以通过向它们提供有意义的原始图像和从源视频资产中自动(或通过算法)提取视频剪辑完成。这可以作为创建引人入胜的数字媒体资产的起点。


如下所示,内容推荐系统经济地表达了针对最终用户的内容偏好和品味。Netflix目录中内容紧凑且有效的特征表示对此功能是至关重要。例如,可以通过构建使用媒体文件(音频,定时文本,视频)以及标题元数据(类型标签,概要)作为其输入的机器学习模型。


640?wx_fmt=png


高效的音频和视频编码方式可以更有效的利用比特流。对视频时间和空间分析(例如,检测镜头时刻和场景变化)以及识别视频帧中的显著的部分和对象有助于为视频编码系统生成关键信息。


640?wx_fmt=png


最后,在Netflix上保持对源内容质量的高标准对于终端用户的体验非常重要。上图说明了一个这样的用例。该图像对应于来自西方古典类型的标题的视频帧。这种情况下,在视频中可以看到用于制作标题的相机。我们非常希望具有一种自动分析系统,该系统将检测和定位(可能通过矩形边界框)相机的存在。另一种这样的情况如下图所示。在该种情况下,字幕文本被放置在视频呈现的文本顶部,导致这两个文本都是不可读的。而视频文本检测算法以及字幕的定时和定位知识可以用于自动解决该问题。


640?wx_fmt=png


我们需要注意的是,以上说明的看似完全不同的用例实际上与核心组件算法的使用重叠。例如,镜头变化数据对视频编码用例起着至关重要的作用。不同的镜头具有不同的视觉特性并且具有不同的比特预算。出于同样的原因,镜头变化数据也是从源视频资产中生成各种原始图像和视频剪辑的基本要素。通过从每个镜头中选择最优秀的候选者,可以获得高质量的原始艺术品候选者的集合。同样,可以通过组合每个镜头表示来构造视频媒体的有意义的潜在表示。


作为另一个示例,虽然视频文本检测数据在内容质量控制中起着非常宝贵的作用,但是对于视频编码和艺术品自动化用例也是有益的—包含大量文本的视频帧通常不用作良好的艺术品图像候选者。


此外,许多这些分析在计算上代价往往非常昂贵——在处理不同的业务用例时重复相同的计算是非常低效的。总之,这些原因共同构成了一个数据系统的论据,该数据系统可以作为与媒体时间轴相关的任何分析的通用存储。换句话说,我们需要一个“媒体数据库”。


媒体数据库的特征


媒体数据库容纳对应于不同模态媒体的媒体分析数据——这些媒体分析数据包括音频,视频,图像和文本(例如:字幕)。期望在媒体时间轴上提供任意查询。例如,音轨的时间线中的什么时间间隔包含音乐,或者包含文本的视频中的视频帧列表,或者对应于对话的字幕文件中的时间间隔的集合。 鉴于其范围的广度,我们认为以下是媒体数据库的重要特征:


1、对结构化数据的亲和力:具有模式的数据适用于基于机器的处理,因此可用于大规模分析和消费。在我们的案例中,架构合规性允许我们索引数据,这反过来又可以实现数据搜索和挖掘机会。此外,这就把数据的创造者从需要高端服务的消费者中解脱出来了。


2、有效的媒体时间线建模:服务从周期性的面向样本的(例如,视频帧)到基于事件的(例如,定时文本间隔)的各种类型的媒体时间线数据的能力是媒体数据库的基本特征。


3、时空查询能力:媒体数据库本地支持媒体数据的时间(例如,音频轨道中的时间间隔)以及空间(例如,图像的部分)特征,并且在这些维度上提供高效查询能力。作为示例,媒体数据库使得检查连续的视频帧序列是否包含视频帧的特定空间区域(如左上角)中的文本变得容易。这样的查询可以用于检测视频和字幕中存在的文本之间的冲突。


4、多租户:精心设计的媒体数据库可以用作支持来自多个应用的多个分析数据的平台。 因此,它允许存储任意数据,只要它是结构化的。另外,如果该数据也可以与媒体资源的特定时间间隔相关联,则每个租户可以从我们系统的有效查询能力中受益。


5、可扩展性:可扩展的基于微服务的模型至关重要。这意味着系统必须解决各种负载情况下的可用性和一致性的相关问题。


NMDB介绍


上面概述的用例激发了我们构建NMDB——一种通用存储,用于与媒体时间轴相关的任何分析,可用于在媒体时间轴上大规模回答时空查询。Netflix目录包含大量不同形式的媒体资产——静态资产的示例包括图像,可播放资产的示例包括音频,文本和视频。如上所述,无数业务应用程序可以从访问与这些资产相关的深入语义信息中受益。 NMDB的主要目标是提供这些应用程序所需的必要数据—我们将NMDB视为构成各种Netflix媒体处理系统主干的数据系统。


媒体时间轴数据的高效建模是NMDB的核心特征。媒体时间轴的规范表示可以支持大量用例,同时有效地解决用户查询模式。这构成了本系列下一篇文章的主题。


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 我们有(据我所知)星型模式SQL数据库中的数据文件。该数据库有5个不同的文件,扩展名为 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
mobiledu2502912377
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有