理解直播及其工作原理
點擊上方“LiveVideoStack”關注我們
翻譯 | 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及其工作原理
掃描圖中二維碼或點擊閱讀原文
了解大會更多信息
喜歡我們的內容就點個“在看”吧!
總結
以上是生活随笔為你收集整理的理解直播及其工作原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序——校园服务小程序(四)校园论
- 下一篇: c++学习笔记:黑客攻击系统-功能菜单