- WebRTC音視頻實時互動技術:原理、實戰與源碼分析
- 李超編著
- 1381字
- 2021-08-06 14:49:28
1.3 音視頻直播的兩條技術路線
壓縮技術解決了,高速公路建成了,接下來就是如何利用這些技術進行產品化了。音視頻直播就是眾多音視頻應用中最亮眼,也是大家最需要的應用。對于不同的行業和領域,在使用音視頻直播時,人們往往給直播不同的稱謂,比如:在教育領域中使用的直播稱為在線教育直播,在遠程辦公領域的直播稱為網絡音視頻會議,在娛樂領域則稱為娛樂直播,等等。
雖然所有的直播底層都是使用音視頻和網絡傳輸技術,但由于應用的場景不同、目標不同,所以它們的技術方案也有很大的區別。
對于音視頻會議來講,它關注的是實時通話的質量,也就是說當你開啟攝像頭、打開麥克風后,遠端的用戶就可以立即看到你的視頻、聽到你的聲音。同樣,你也可以立即看到對方的視頻、聽到對方的聲音。而娛樂直播則與音視頻會議不同,它追求的目標是可以讓盡可能多的用戶觀看到節目,視頻清晰、不卡頓。但它對音視頻延遲要求不高,因此這類直播的實時性比較差。
由此,我們可以知道音視頻直播分成了兩條技術路線:一條是以音視頻會議為代表的實時互動直播;另一條是以娛樂直播為代表的流媒體分發。
所謂實時互動直播,就是指以實時互動為目標的直播。其中1996年朱敏創建的WebEx公司應該是這個領域中影響最廣泛的一家公司。在20世紀90年代末就可實現多人實時互動聊天,可見它當時的技術有多么前沿。WebEx僅用四年時間就成功在美國上市,當時引起了不小的轟動。現在大家熟知的Zoom創始人袁征、聲網創始人趙斌都是WebEx的早期員工。
而娛樂直播是從2002年開始真正發展起來的,當時Adobe推出了基于RTMP的流媒體服務器FMS,它推動了媒體分發技術的廣泛應用。從FMS之后,各種流媒體服務器相繼上市,如Wowza、Red5、Nginx-Rtmp Module、SRS等。之后各大CDN廠商看到了這個巨大的市場,紛紛推出了各自的直播系統,從而形成了現在以阿里、騰訊為首,多家CDN并存的市場格局。
這兩種技術各有優缺點:互動直播主要解決人們遠程音視頻交流的問題,所以其優點是實時性強,時延一般低于500ms;而娛樂直播則主要解決音視頻的大規模分發問題,因此其在大規模分發上更具優勢,但實時性比較差,通常時延在3s以上。表1.1中給出了目前常見的幾種直播技術。
表1.1 直播技術

在表1.1中,只有WebRTC技術用于實時互動直播,而其他幾種技術都用于娛樂直播。實際上,最初娛樂直播也只有RTMP這一種方案可選,但后來由于蘋果宣布不再支持RTMP,并推出了自己的解決方案HLS,最終導致RTMP走向了消亡。HLS是基于HTTP的,它首先對媒體流(文件)進行切片,然后通過HTTP傳輸,接收端則需要將接收到的切片進行緩沖,之后才能將媒體流平穩地播放出來。基于上述機制,HLS在實時性方面比RTMP差很多,但使用它的好處也是顯而易見的(蘋果產品原生支持),而且娛樂直播本來也對實時性要求不高,因此這種方案被大家廣泛采納。隨著Adobe公司宣布不再維護RTMP,那些已經廣泛使用RTMP的公司不得不變更方案。然而,將RTMP換成HLS需要付出高昂的成本,于是有人提出了HTTP-FLV方案,即傳輸的內容仍然使用RTMP格式,但底層傳輸協議換成HTTP,這種方案既可以保障其實時性比HLS好,又可以節約升級的成本,因此也受到各方的歡迎。不過HTTP-FLV的擴展性比較差,因此它只是一種臨時方案。HLS方案雖然不錯(有大量的用戶使用),但其他公司也有類似的方案,這使得各直播廠商不得不寫多套代碼,費時費力。于是,FFMPEG推出了DASH方案,該方案與HLS類似,也是以切片的方式傳輸數據,最終該方案成為國際標準,從而使直播廠商只要寫一套代碼就可以實現切片傳輸了。
- JSP網絡編程(學習筆記)
- JavaScript高效圖形編程
- Instant Apache Stanbol
- Julia機器學習核心編程:人人可用的高性能科學計算
- PhpStorm Cookbook
- 深度學習:Java語言實現
- jQuery for Designers Beginner's Guide Second Edition
- Flask Web開發:基于Python的Web應用開發實戰(第2版)
- Unity 5.X從入門到精通
- Java程序設計教程
- Java程序設計實用教程(第2版)
- Oracle Database XE 11gR2 Jump Start Guide
- Enterprise Application Architecture with .NET Core
- Improving your Penetration Testing Skills
- Learning PrimeFaces Extensions Development