Netflix:為什麼建立專門的媒體資料庫?

LiveVideoStack發表於2018-10-25
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 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的核心特徵。媒體時間軸的規範表示可以支援大量用例,同時有效地解決使用者查詢模式。這構成了本系列下一篇文章的主題。


相關文章