- WebRTC音視頻實時互動技術:原理、實戰與源碼分析
- 李超編著
- 783字
- 2021-08-06 14:49:30
第3章 音視頻實時通信的本質
通過上一章的學習,我們知道利用WebRTC開發實時音視頻直播系統有著巨大的優勢。但無論是自研引擎,還是使用WebRTC實現音視頻實時直播客戶端,首先要弄清楚的應該是實時通信的本質。
那么實時通信的本質究竟是什么呢?下面舉幾個例子說明。比如我們想聽某位名師的課程,是愿意線下面對面地聽他講呢,還是愿意在線聽他的視頻課呢?不出意外的話,我們一定會選擇面對面的授課方式,因為這樣的教學質量是最好的。再比如,我們特別喜歡某個歌手,他舉辦了一場演唱會,同時開通了線上直播,如果票價相同的話,你是愿意去現場聽呢,還是愿意在線聽呢?相信在條件允許的情況下,你一定會首選去現場聽,因為感覺不一樣。這樣的例子數不勝數!
實際上,對于這種互動性極強的場景,大多數人的第一選擇一定是線下交流。為什么大家更愿意選擇線下的交流方式呢?相信大家即使不知道這個問題的真正答案,也會回答:“感覺不一樣!”
到底是哪里感覺不一樣呢?總結起來有以下兩方面的原因:
一是實時性不夠。當音視頻經過網絡傳輸后,或多或少都會有一定的延遲,而這種延遲對于我們的互動交流產生了很大影響。
二是業務數據有損失。這里指的損失主要有三個方面:
·其一,攝像頭采集的角度過于狹小。也就是說,攝像頭無法將人眼所看到的內容全部采集到。
·其二,設備的質量無法保障。每個用戶使用的設備參差不齊,千差萬別。不同的設備可能存在色彩不一樣、亮度不一樣、聲音質量不一樣等問題,而且它們與人眼看到的色彩和人耳聽到的聲音很可能也是不一樣的。
·其三,現場的氛圍是無法通過攝像頭和麥克風采集到的。比如人與人的肢體接觸等。換句話說,除了視覺和聽覺之外,人類在線下通過其他方式獲得的感知是無法在線獲得的。
由于線上與真實場景存在這樣或那樣的不同,因此我們可以總結出,音視頻實時通信追求的本質是盡可能逼近或達到面對面交流的效果,同時這也是音視頻實時通信的目標。
- 精通Nginx(第2版)
- 零基礎PHP學習筆記
- 深度學習經典案例解析:基于MATLAB
- Python程序設計(第3版)
- AngularJS Web Application Development Blueprints
- .NET 4.0面向對象編程漫談:基礎篇
- JavaScript+jQuery開發實戰
- Practical Windows Forensics
- Node.js Design Patterns
- 持續輕量級Java EE開發:編寫可測試的代碼
- Quantum Computing and Blockchain in Business
- Practical Microservices
- UI設計基礎培訓教程(全彩版)
- Apache Solr for Indexing Data
- The Applied Data Science Workshop