天天看點

Hulu直播服務難點解析(一):系統需求

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/83053654

Hulu在其部落格釋出了建立直播服務遇到的挑戰及解決方案,這對于以前隻提供點播服務的系統而言是一次徹底的更新。LiveVideoStack對原文進行了摘譯。

文 / Allison Deal

譯 / 許海燕

原文:https://medium.com/hulu-tech-blog/the-anatomy-of-a-live-ott-service-c8f6078b24d3

https://medium.com/hulu-tech-blog/the-challenges-of-live-linear-video-ingest-part-one-live-versus-on-demand-system-requirements-89238f3af4f6

“Anatomy”系列是一組視覺效果,它展示了幕後OTT電視的系統功能。 

我們可以看到電視在幾十年裡最重大的轉變:觀衆可以在旅途中或任何裝置上觀看更多電視節目。流媒體的收視率持續上升,dMVPD正在建立新的系統和流程,以便通過網際網路提供電視直播。

要把Hulu和Live TV一起帶給我們的觀衆,這個幕後有很多工作要做。下面這張圖展示了從我們的網絡合作夥伴接收内容并将其發送到全國各地的觀衆裝置上的複雜過程。

在去年5月推出直播電視服務之前,Hulu向數百萬的觀衆提供了點播内容,為他們提供了一個最大的内容庫以及他們最喜歡的當季播出的節目。雖然我們的視訊攝取系統對于SVOD來說并不簡單,但添加直播電視後又再增加了一層複雜性,這就給Hulu的小規模但強大的視訊團隊帶來了獨特的挑戰。

直播電視需要與SVOD截然不同的系統,我們的團隊不得不使用一個全新的技術棧來啟動直播服務。現有的SVOD系統也需要修改,這樣我們就可以同時支援這兩種産品。在這個系列的文章的第一部分中,我将高度概述在設計我們的實時視訊攝取系統時我們所要考慮的主要挑戰和需求。

建立一個SVOD直播系統

直播服務的需求與SVOD服務的需求有很大的不同,我們現有的點播視訊和中繼資料攝取處理系統無法充分支援實時線性流的攝取,原因如下:

1、直播系統必須具有高可用性和彈性,因為從丢失的資料中恢複過來的靈活性很小。對于點播視訊,内容通常在被發送給觀衆之前的數小時甚至數天内收到,如果我們遇到檔案問題,我們就有時間要求内容合作夥伴修改或重新送出檔案。這使我們有時間在平台提供内容之前解決内容的任何技術問題。但是,這種政策不适用于直播服務。

2、點播視訊是在内容(事件)級别上攝取的,但是頻道的線性流需要連續的24/7攝取。

3、點播中繼資料也是基于内容的,而直播流中繼資料是以頻道和時間戳為導向的。一個節目的持續時間是針對視訊點播内容預先設定的,并且不會改變,但直播節目具有靈活的節目界限,當長時間的體育賽事或突發新聞發生時,這些界限可能會發生變化。

除了應對這些挑戰之外,我們還需要在建構新的攝取系統時滿足一些需求和設計目标。

需求和設計目标

功能

我們的直播電視需要将視訊傳送到各種各樣的裝置上,這意味着該服務需要同時生成基于HTTP的動态自适應流媒體(MPEG-DASH)和Apple的HTTP直播流媒體(HLS)媒體格式。在較高的層次上,我們的系統必須從供應商處擷取視訊流,重新封裝和打包成視訊片段,并将它們釋出到CDN的源站。除了視訊工作流之外,該服務還需要能夠處理從攝取的流中獲得的廣告和節目标記,以準确的開始和結束時間,以及識别廣告部分來将直播内容作為節目(而不是簡單地作為頻道)呈現。

可靠性

我們的直播電視服務無論是有無計劃的都不應該有任何停止播放的時候。視訊播放對于觀衆來說應該是連續無縫的。

相容性

我們的視訊攝取系統需要與多個供應商和網絡相容,這些供應商和網絡提供了來自全國各地的頻道的視訊内容。它需要适應供應商特定的編碼輸出,包括不同的段長度,段命名方案以及不同的分辨率和碼率。

安全性

内容保護對于MPEG-DASH和HLS格式都至關重要。我們的實時攝取服務需要使用基于MPEG公共加密(CENC)規範的AES-128加密媒體片段,将它們打包為fMP4和MPEG-TS檔案格式,并在所有流格式中應用商業DRM。

容錯性

這個系統需要具有容錯能力,以至于一個頻道的播放卡頓或者其他問題不會影響任何其他頻道的攝取進而影響我們觀衆的體驗

性能

為了向觀衆提供實時體驗,系統必須具有高性能并且要在平均每個片段播放給觀衆所花費的時間内處理每個片段,以避免大量的作業隊列。

可伸縮性

系統必須能夠擴充到能同時處理數千個頻道,以便當我們的内容合作夥伴的數量增長時,系統可以處理其他頻道。

可擴充性

系統需要進行設計,以便輕松添加新功能,例如動态廣告插入,處理音頻和視訊輸入檔案以及處理不同的視訊幀率,進而使我們有機會輕松地為觀衆帶來新的和擴充的功能。

在設計和建構直播電視的新視訊攝取平台時,我們考慮了所有這些系統需求。在這個系列的文章的第二部分中,我們将讨論如何設計和實作帶有這些參數的系統。

繼續閱讀