翻譯 | Alex 技術審校 | 章琦 本文來自OTTVerse,作者為Krishna Rao Vijayanagar。
直播 Easy Tech #011#
直播是指通過互聯網實時傳輸演出的音頻和視訊內容。隨著實時視訊的流行,直播儼然已成為眾多企業和組織市場戰略的重要組成部分。直播可用於活動(賽事)直播、提供客戶服務以及舉行網路研討會等一切內容。
本篇文章將帶你探索什麼是直播、直播的工作原理以及如何將它用於你自己的企業或者組織中。讓我們一起來看一個典型的直播架構,然後為你詳細解釋轉碼、封裝、DRM、廣告插入、基於CDN的傳輸、回放以及其他組成直播管道的服務。
注意:直播管道包含了各種組件、工具和系統,但為了控制文章長度,我並不會在文中提及。比如,我不會在文中深入講解OBS Studio、照相機、麥克風、綠幕、圖像、Overlay、渲染、後處理和字幕等。但是請繼續關註我的文章,後續會帶大家深入探索。
簡介完畢,讓我們一起開始直播旅程吧!
采集並傳送視訊到流媒體軟體或平臺
直播的第一步就是通過照相機采集視訊。照相機的分辨率、配置和性能取決於應用程序。如果你在向朋友直播,或許你的筆記本中內置的照相頭就足夠用了。但如果是直播一場音樂會或者體育賽事,那你最好使用專業的設備(燈光、照相機和其他專用設備等)。
在政治集會、音樂會、體育賽事等大型活動中,照相機饋送使用OB Van(戶外錄影轉播車)通過衛星傳輸到轉播站。這些本地/國家轉播站收到視訊後會對其進行處理,包括添加圖像、Slates(類似於拍攝電影時使用的場記板,以圖像或者短視訊形式插入在直播中)、廣告和提示文字等,然後將視訊發送給直播管道進行轉碼等操作。
對於較小規模的視訊制作,可以直接使用OBS Studio等專用軟體在計算機上現場處理照相機饋送(包括添加圖像、Slates等),然後通過專業的直播平臺在現場進行壓縮(或在雲上壓縮)。
在下一部分,我們將學習直播中最重要的內容——視訊轉碼。
視訊轉碼
視訊編碼是一門在減少視訊數據體積大小或碼率的同時而不對其質量產生不良影響(在人類的視覺感知下)的科學,也被稱為壓縮。而視訊轉碼是指重新編碼壓縮文件,但它多了一個編碼之前對傳入視訊解碼的步驟。
通常情況下,視訊轉碼器有很多功能,比如能夠:
- 編碼和解碼不同視訊編解碼器(如H.264/AVC、HEVC、AV1和VP9等)的碼率。
- 在不同的容器格式之間轉換(mp4、ts、fmp4、WebM和mkv等)
- 通過調整(放大和縮小)視訊尺寸而產生不同分辨率的輸出。這對於ABR和多碼率廣播來說至關重要。比如,1080p的輸入可以用來生成1080p、720p、640p和480p的輸出。
視訊轉碼由一系列被稱為視訊編解碼器的算法和工具實現。這些編解碼器被眾多公司和個人經過不斷討論、辯論和實驗後被開發出來。一旦某個視訊編解碼器被標準化,那麼任何人都可以購買許可證並根據標準來開發編解碼器。市面上流行的視訊編解碼器包括H.264/AVC、HEVC、AV1、VP9、LCEVC、VVC和EVC等等。
使用HLS和MPEG-DASH的ABR技術
在轉碼以後,被編碼後的碼流被發送給封裝器,並創建符合ABR的視訊流。
什麼是ABR? ABR是視訊傳輸中的一項技術:可以根據播放器的頻寬和緩沖自適應調整視訊發送。如果播放器的頻寬條件良好,那麼它就會請求高質量視訊版本;如果播放器的頻寬突然下降或者緩沖增加,那麼播放器就會請求低質量的視訊以防止過度緩沖。
MPEG-DASH和HLS(HTTP Live Streaming)是主流的基於HTTP的自適應碼率流媒體傳輸協議
為了支持基於HTTP的ABR視訊流,需要對轉碼器的輸出進行轉換,將其轉換為符合 HLS 或 MPEG-DASH 的視訊流的過程被稱為封裝。封裝過程包括:將視訊拆分為多個切片,然後將視訊切片編號、交付順序、輔助資訊、元數據等資訊記錄下來,並將這份記錄放到被稱為清單(DASH)或播放列表(HLS)的文件中。
這份清單首先被傳送給播放器。根據清單的指示,視訊播放器可以根據自身的緩存狀態和可用頻寬來合理請求視訊切片。
使用DRM和內容保護技術可以保護封裝視訊不被盜版和竊取。我們在下一部分會講到。
直播中的數字版權管理(DRM)
DRM(Digital Rights Management,數字版權管理)是指保護視訊內容不被盜版、非法重播、非法下載以及阻止其他未經授權的視訊內容消費的系統或技術。
DRM如何工作?
- DRM使用對稱加密算法(Symmetric-key algorithms)對視訊內容進行加密,對稱加密算法使用同一把密鑰加密和解密。
- 首先,通過密鑰(通常為AES-128)將內容加密,然後傳輸給客戶端。這把密鑰由專用服務器提供,安全可靠。
- 當客戶端想要播放加密視訊,就要向DRM服務器發送請求獲取解密密鑰。
- 服務器會對客戶端進行鑒權,如果客戶端通過鑒權,服務器就會將解密密鑰和許可規則發送給它。
- 在收到解密密鑰後,客戶端使用被稱為CDM(Content Decryption Module,內容解密模塊)的安全軟體解密,並解碼視訊,然後將其安全地發送給螢幕。
有多種許可規則可供視訊服務提供商配置,從而控制觀看視訊的人群、時間和地點。在大部分商業DRM實現中,你能:
- 阻止來自某些特定國家的觀眾
- 允許在特定時間內拜訪內容
- 防止某個用戶將電影投射到螢幕上
- 阻止免費用戶觀看付費內容
- 阻止在某些特定設備的回放
在減少盜版以及確保內容創作者能夠勞有所得方面,DRM發揮了重要作用。市面上有很多可以信賴的商業DRM技術,比如微軟的PlayReady、Google的Widevine和Apple的FairPlay。也有一些DRM供應商提供圍繞DRM解決方案的更多基礎設施,比如添加更多商業規則、分析或者視訊服務提供商工具等。
直播中的廣告插入
AVOD(Advertising-based Video On Demand,廣告型視訊點播)是通過在視訊流中插入廣告的方式產生收益的一種視訊點播商業模式。
按理來說,AVOD服務是免費觀看的,因為視訊服務提供商已經從你每次的觀看或者點擊中獲利。但他們將廣告捆綁到Freemium(是指用免費服務吸引用戶,然後通過增值服務將部分免費用戶轉化為收費用戶)服務中,所以你需要訂閱才能觀看免廣告內容。
VAST(Video Ad Serving Template,視訊廣告服務模板)和VPAID(Video Player-Ad Interface Definition,視訊播放器廣告接口定義)是主要的廣告服務標準,由IAB(Interactive Advertising Bureau,互聯網廣告署)制定。通過使用這些標準,整個廣告生態系統在創建、編輯、提供和跟蹤廣告的過程中緊密運作。
在廣告傳輸方面,有兩種在視訊中插入廣告的方法:CSAI(Client-Side Ad Insertion,客戶端廣告插入)和SSAI(Server-Side Ad Insertion,服務器端廣告插入)。
- CSAI是指從視訊播放器向響應廣告創意(Ad creative)的廣告服務器發出調用。因此,CSAI 是由播放器驅動的。
- SSAI是指將廣告直接插入(拼接到)視訊流中,無需調用服務器來接收廣告。SSAI的優勢是能夠避開廣告攔截器(因為廣告是由服務器發起而非客戶端)。
但是,播放器如何知道在什麼時間播放視訊?通過清單或者播放列表發送到播放器的資訊已經被廣告中斷資訊修飾過,所以清單將明確指定何時播放廣告、在何處獲取廣告以及向何處發送廣告跟蹤數據。
哪裡可以插入廣告?廣告可以插入到視訊播放前(pre-roll)、視訊播放中(mid-roll)或者在視訊結束後(post-roll)。插入位置的選擇取決於視訊服務提供商想要使用哪種廣告位置組合。他們也可以選擇將視訊組合成Ad-pods(YouTube推出的一款廣告產品,它允許廣告主在廣告時間延續播出兩支廣告。)。
直播中的CDN
CDN(Content Delivery Networks,內容分發網路)是分布在世界各地的服務器,用來快速有效傳輸直播視訊。CDN位於視訊播放器和源站之間,負責跨地理區域分發視訊內容。CDN通過有效調節流量、保護服務器免於過載和降低延遲保障了流暢的觀看體驗。
下面是對直播中CDN工作原理的簡單描述:
- 在轉碼、封裝、DRM和插入廣告後,最後視訊流被發送到源站上(基本上是指Web服務器)。
- 源站的URL(即可用視訊流所在的地址)被配置給CDN。
- 視訊播放器被編程為向CDN請求視訊切片,而不是直接向源站請求。
- 當第一個播放請求到達CDN,CDN緩存中可能沒有內容,於是它便將請求轉發給源站。當CDN收到來自源站的響應,它緩存住內容並且發送給播放器。
- 下一次另一個視訊播放器請求同一視訊切片時,CDN首先檢查緩存看是否已緩存過被請求的內容。如果緩存過,CDN將緩存視訊分發出去;如果沒被緩存過,CDN向源站請求發送視訊切片。
如下為直播時使用CDN的好處:
- 可擴展的視訊傳輸
- 降低延遲和減少緩存
- 減少源站上的負載
- 提升視訊質量
- 保護源站免遭DDoS攻擊
多屏視訊回放
現在為止,我們已經講了轉碼、封裝、使用DRM保護視訊、向視訊中插入廣告或廣告標記、將視訊存儲在源站上並設置CDN用於傳輸,現在讓我們來學習如何開發供人們播放和觀看視訊的播放器。
視訊播放器形態、大小不一,並且它們需要針對操作系統和環境進行定制。這是因為人們會在不同的設備上觀看視訊,如筆記本電腦、遊戲機、智能手機(iOS、Android系統)、智能電視、平板電腦、電視機頂盒(Roku、Chromecast、AmazonFireTV)。由於這種多樣化的生態系統,視訊播放器的開發和維護就需要多種編程技能,包括使用不同的編程語言進行編程,理解DRM、廣告插入和API的使用等。
讓我們來看看不同平臺上使用的視訊播放器:
- Android:Exoplayer
- iOS、tvOS:AVPlayer
- 用於聯網電視的Roku(用Brightscript所寫)、Amazon Fire TV和Chromecast
- Web/HTML5
- 用於Tizen操作系統和LG WebOS播放器的三星電視AVPlay
也有一些開源播放器,如Exoplayer、VideoJS、HLS.js、Dash.js和Shaka player等。除此之外,許多公司提供收費的視訊播放器並提供支持。這些商業播放器需要測試與HLS、DASH、DRM、廣告插入和字幕的兼容性,並(常常)帶有用於收集回放資訊的擴展API。
視訊分析:QoE和QoS
整個世界都在數據上運行,你的直播平臺也不例外。視訊直播提供商應該使用分析服務系統或者構建自己的分析系統來為直播收集使用、QoE和QoS數據。
這些數據不僅能夠告訴你服務表現,還能證明視訊流管道中每一部分都能通過合適的數據質量和數量來進行優化。
播放器中收集到的最重要的數據包括:
- 延遲或者首屏延遲:測量用戶按下播放鍵後視訊顯示的所需時間
- 緩沖時間:視訊緩沖所需時間
- 緩沖比:在播放特定數量視訊後,緩沖時間會達到多少?
- 播放次數(開始次數)
- 完播次數
- 視訊開始前退出:在用戶按下播放鍵以後,用戶會在第一幀顯示前退出嗎?如果發生了這種狀況,會是什麼原因?
- 對於AVOD提供商而言,追蹤廣告填充率、廣告QoE、完成率和完成四分位數等(用以優化和投遞)十分重要。
獲取訂閱者、視訊等相幹資訊並將這些數據聯繫在一起所產生的有用數據會幫助市場、銷售、內容生產/策劃團隊優化他們的未來活動。
訂閱和付費服務
訂閱和付費服務對於管理訂閱者、接受付費、續訂跟進十分必要,它們可以確保你的PVOD、SVOD和TVOD(PPV)業務正常運行。大部分人在想像如何構建直播系統的時候,只能想到編碼器和CDN,但事實上,諸如計費、付款、訂閱等輔助服務對於建立和運營您的業務也至關重要!
TVOD (按次付費)提供商也需要此類服務和工具來管理支付、允許付費用戶(僅限)拜訪內容、在特定時間內限制拜訪並實行某些限制。這些可以通過支付處理服務、訂閱管理服務和附有租用協議的 DRM 來實現。
重新「造輪子」毫無意義,花上100個小時自己來構建這些訂閱管理和支付服務,不如直接從現有供應商那裡購買。
結語
如你所見,直播需要許多移動組件,這些組件緊密地組合在一起從而獲得出色的用戶體驗。你可以使用開源或 COTS 應用程序自行設置所有組件,又或者可以選擇包含這些組件的 OVP(Online Video Platforms,在線視訊平臺)來快速上線。
在DIY和購買現成產品之間總是要權衡成本、上市時間、維護成本和質量等因素。你最好在仔細調查完所有影響業務的因素之後,再在二者之間做出決策。
我希望本篇文章能夠為你提供有用的資訊,助你理解直播及其工作原理。我們下次再見,祝大家直播愉快!
致謝
本文已獲得作者Krishna Rao Vijayanagar授權翻譯和發布,特此感謝。
原文鏈接:
https://ottverse.com/what-is-live-streaming-how-does-livestreaming-work/
延伸閱讀:
Easy Tech:什麼是I幀、P幀和B幀?
為什麼直播時要用CDN?
理解ABR及其工作原理
掃描圖中QRCode了解大會更多資訊
>理解直播及其工作原理