天天看點

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體驗效果的主要因素。需要将各種複雜程度的業務工作流程聚集在一起,以實作這種體驗。

與故事相關的藝術品圖像和标題概要(見上圖),以及富有洞察力的視訊預覽在幫助使用者找到相關的節目和電影方面有很長的路要走。Netflix不斷擴大的内容攝取量規模,要求開發能夠幫助我們的創意團隊及時合成高品質數字商品資産的系統。例如,這可以通過向它們提供有意義的原始圖像和從源視訊資産中自動(或通過算法)提取視訊剪輯完成。這可以作為建立引人入勝的數字媒體資産的起點。

如下所示,内容推薦系統經濟地表達了針對最終使用者的内容偏好和品味。Netflix目錄中内容緊湊且有效的特征表示對此功能是至關重要。例如,可以通過建構使用媒體檔案(音頻,定時文本,視訊)以及标題中繼資料(類型标簽,概要)作為其輸入的機器學習模型。

高效的音頻和視訊編碼方式可以更有效的利用比特流。對視訊時間和空間分析(例如,檢測鏡頭時刻和場景變化)以及識别視訊幀中的顯著的部分和對象有助于為視訊編碼系統生成關鍵資訊。

最後,在Netflix上保持對源内容品質的高标準對于終端使用者的體驗非常重要。上圖說明了一個這樣的用例。該圖像對應于來自西方古典類型的标題的視訊幀。這種情況下,在視訊中可以看到用于制作标題的相機。我們非常希望具有一種自動分析系統,該系統将檢測和定位(可能通過矩形邊界框)相機的存在。另一種這樣的情況如下圖所示。在該種情況下,字幕文本被放置在視訊呈現的文本頂部,導緻這兩個文本都是不可讀的。而視訊文本檢測算法以及字幕的定時和定位知識可以用于自動解決該問題。

我們需要注意的是,以上說明的看似完全不同的用例實際上與核心元件算法的使用重疊。例如,鏡頭變化資料對視訊編碼用例起着至關重要的作用。不同的鏡頭具有不同的視覺特性并且具有不同的比特預算。出于同樣的原因,鏡頭變化資料也是從源視訊資産中生成各種原始圖像和視訊剪輯的基本要素。通過從每個鏡頭中選擇最優秀的候選者,可以獲得高品質的原始藝術品候選者的集合。同樣,可以通過組合每個鏡頭表示來構造視訊媒體的有意義的潛在表示。

作為另一個示例,雖然視訊文本檢測資料在内容品質控制中起着非常寶貴的作用,但是對于視訊編碼和藝術品自動化用例也是有益的—包含大量文本的視訊幀通常不用作良好的藝術品圖像候選者。

此外,許多這些分析在計算上代價往往非常昂貴——在處理不同的業務用例時重複相同的計算是非常低效的。總之,這些原因共同構成了一個資料系統的論據,該資料系統可以作為與媒體時間軸相關的任何分析的通用存儲。換句話說,我們需要一個“媒體資料庫”。

媒體資料庫的特征

媒體資料庫容納對應于不同模态媒體的媒體分析資料——這些媒體分析資料包括音頻,視訊,圖像和文本(例如:字幕)。期望在媒體時間軸上提供任意查詢。例如,音軌的時間線中的什麼時間間隔包含音樂,或者包含文本的視訊中的視訊幀清單,或者對應于對話的字幕檔案中的時間間隔的集合。 鑒于其範圍的廣度,我們認為以下是媒體資料庫的重要特征:

1、對結構化資料的親和力:具有模式的資料适用于基于機器的處理,是以可用于大規模分析和消費。在我們的案例中,架構合規性允許我們索引資料,這反過來又可以實作資料搜尋和挖掘機會。此外,這就把資料的創造者從需要高端服務的消費者中解脫出來了。

2、有效的媒體時間線模組化:服務從周期性的面向樣本的(例如,視訊幀)到基于事件的(例如,定時文本間隔)的各種類型的媒體時間線資料的能力是媒體資料庫的基本特征。

3、時空查詢能力:媒體資料庫本地支援媒體資料的時間(例如,音頻軌道中的時間間隔)以及空間(例如,圖像的部分)特征,并且在這些次元上提供高效查詢能力。作為示例,媒體資料庫使得檢查連續的視訊幀序列是否包含視訊幀的特定空間區域(如左上角)中的文本變得容易。這樣的查詢可以用于檢測視訊和字幕中存在的文本之間的沖突。

4、多租戶:精心設計的媒體資料庫可以用作支援來自多個應用的多個分析資料的平台。 是以,它允許存儲任意資料,隻要它是結構化的。另外,如果該資料也可以與媒體資源的特定時間間隔相關聯,則每個租戶可以從我們系統的有效查詢能力中受益。

5、可擴充性:可擴充的基于微服務的模型至關重要。這意味着系統必須解決各種負載情況下的可用性和一緻性的相關問題。

NMDB介紹

上面概述的用例激發了我們建構NMDB——一種通用存儲,用于與媒體時間軸相關的任何分析,可用于在媒體時間軸上大規模回答時空查詢。Netflix目錄包含大量不同形式的媒體資産——靜态資産的示例包括圖像,可播放資産的示例包括音頻,文本和視訊。如上所述,無數業務應用程式可以從通路與這些資産相關的深入語義資訊中受益。 NMDB的主要目标是提供這些應用程式所需的必要資料—我們将NMDB視為構成各種Netflix媒體處理系統主幹的資料系統。

媒體時間軸資料的高效模組化是NMDB的核心特征。媒體時間軸的規範表示可以支援大量用例,同時有效地解決使用者查詢模式。這構成了本系列下一篇文章的主題。