歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~html
與生活緊密相連的音視頻,爲什麼有那麼多格式?直播、點播以及即時視頻其中又有怎樣的機制支撐?面對紛繁複雜的音視頻知識,應該如何學起?快速探索,音視頻技術再也不神祕。瀏覽器
面對一門技術,咱們熟悉而陌生,咱們可以熟練的基於平臺的API完成各類各樣的需求,掌握平臺特性、框架與原理。但隨着技術點不斷深刻,卻發現本身存在基礎性與深度性的知識盲區。bash
侷限於平臺API開發,並不能使咱們走的很遠。突破技術成長必經的瓶頸期,關鍵在於技術沉澱與對業務方向相結合,須要咱們對知識積累與深刻。本文分享了筆者對音視頻技術知識網絡的探索路徑,但願能給你們帶來幫助。服務器
定義:對連續變化圖像在空間座標上作離散化處理,將模擬信號轉變成數字信號的過程,即爲圖像進行採樣。網絡
**通俗來講:**採集就是將看到的東西轉成二進制流的過程。框架
「圖像」是個集合的概念,幀、頂場、底場均可以稱爲圖像。機器學習
RGB分別表明紅綠藍,每種顏色須要用3個數字表示,一個數字佔用1字節,一種顏色則須要3字節,24位。ide
更高效的顏色模型?YUV性能
YCbCr顏色模型是YUV家族的一員,關鍵特色在於它亮度信號Y與色度信號U、V相互分離。當缺失U、V,僅有Y信號時,也可以表示出黑白圖像。
Y = kr\*R + kg\*G + kb\*B
複製代碼
Y 即「亮度」,kr、kg、kb 即 R、G、B 的權重值。
Cr = R – Y; Cg = G – Y; Cb = B – Y;
複製代碼
疑問:對比RGB模型,YCbCr模型每一個像素也須要3個信號表示,爲何說該模型更高效?
人眼對亮度分辨率敏感度高於色彩敏感度。
基於人眼視覺特性,很明顯,咱們須要從顏色方面入手,因而提出「色度取樣」,使顏色存儲減半或者更多。容易實現,編碼壓力較小,收益較高。
咱們知道顯示器掃描原理分爲逐行掃描與隔行掃描,每條掃描線被掃描時,色度數值傳送頻率會比亮度低,顏色取樣方式有多種,取樣方式一般基於亮度值,以4:X:Y的形式描述,X和Y是每兩個色度通道中的數值的相對數量:
繼續舉個栗子:
咱們有這樣一幅圖片,上面有像素陣列:
會有如下幾種採樣優化方式:
上圖能夠很直觀的看出:採用YCbCr顏色模型後,並不須要每一個像素都存有3個份量,顏色份量經過「色度取樣」後,有效的減小了顏色份量的存儲。
<img src="ask.qcloudimg.com/draft/25578…"
width="70%" />
成像傳感器
舉個栗子,對於黑白圖像圖(a)爲連續圖像,若是須要轉換成數字形式,須要幾步主要操做:
取樣:(a)圖上沿AB線段等間隔對該圖像取樣,獲得灰度級曲線(b)
量化:
(c)圖右側將灰度分爲8個灰度級,再橫向每一取樣的連續灰度值,量化爲8個灰度之一,最終獲得(d)圖,感知器輸出的量化完成流產生數字圖像的過程。
a. 圖像投影至傳感器陣列 b. 圖像取樣與量化結果
播放器播放從互聯網上播放視頻,須要通過:解協議、解封裝、解碼、音視頻同步這幾個核心步驟。
視頻編解碼過程是數字視頻壓縮與解壓縮的過程。
選取音視頻編碼方案時,須要考慮:視頻的質量、碼率、編碼算法和解碼算法的複雜度、針對數據丟失和錯誤的魯棒性(Robustness)、編輯的方便性、隨機訪問、編碼算法設計的完美性、端到端的延時以及其它一些因素。
H.26X 系列,由國際電傳視訊聯盟遠程通訊標準化組織(ITU-T)主導,包括 H.26一、H.26二、H.26三、H.26四、H.265。
MPEG 系列,由國際標準組織機構(ISO)下屬的運動圖象專家組(MPEG)開發。
除了視頻,音頻固然也須要編碼,而音頻經常使用編碼格式:
音視頻加工處理,是業務的核心需求,對開發者自由度最大的一個環節,經過音視頻處理,能夠實現各類各樣炫酷的特效。
**圖像、視頻常見處理方式:**美化、裁剪、縮放、旋轉、疊加、編解碼等。
**音頻常見處理方式:**重採樣、去噪,回聲消除,混音、編解碼等
常見框架:
(傳送門:音視頻開發開源碼工程彙總)
流媒體,指經過互聯網以流式傳輸方式的媒體。流媒體協議,則是服務器與客戶端之間通訊遵循但規定。說到音視頻傳輸,咱們不得不提流媒體協議,常見流媒體協議有:
協議 | 概述 | 特色 | 應用場景 |
---|---|---|---|
RTP | (Real-time Transport Protocol)一種網絡傳輸協議,RTP協議詳細說明了在互聯網上傳遞音頻和視頻的標準數據包格式。 | 基於UDP 協議實現 | RTP協議經常使用於流媒體系統(配合 RTSP 協議) |
RTCP | (Real-time Transport Control Protoco)實時傳輸協議(RTP)的一個姐妹協議。 | RTCP爲RTP媒體流提供信道外(out-of-band)控制。RTCP 自己並不傳輸數據,但和 RTP 一塊兒協做將多媒體數據打包和發送。RTCP 按期在流多媒體會話參加者之間傳輸控制數據。 | 爲 RTP 所提供的服務質量(Quality of Service)提供反饋。 |
RTSP | (Real Time Streaming Protocol)定義了一對多應用程序如何有效地經過 IP 網絡傳送多媒體數據。 | RTSP 在體系結構上位於 RTP 和 RTCP 之上,使用 TCP 或 UDP 完成數據傳輸 | 使用 RTSP 時,客戶機和服務器均可以發出請求,即 RTSP 能夠是雙向的。 |
RTMP | (Real Time Messaging Protocol)Adobe Systems 公司爲 Flash 播放器和服務器之間音頻、視頻和數據傳輸開發的開放協議。 | 協議基於 TCP,是一個協議族,包括 RTMP 基本協議及 RTMPT/RTMPS/RTMPE 等多種變種。 | 一種設計用來進行實時數據通訊的網絡協議,主要用來在 Flash/AIR 平臺和支持RTMP協議的流媒體/交互服務器之間進行音視頻和數據通訊。 |
RTMFP | (Real Time Media Flow0 Protoco)Adobe 公司開發的一套新的通訊協議,全稱 Real Time Media Flow Protocol | 協議基於 UDP,支持 C/S 模式和 P2P 模式,即該協議可讓使用 Adobe Flash Player 的終端用戶之間進行直接通訊 | Adobe Flash Player 的終端用戶之間進行直接通訊 |
HTTP | (HyperText Transfer Protoco)運行在 TCP 之上 | 這個協議是你們很是熟悉的,它也能夠用到視頻業務中來。 | |
HLS | (HTTP Live Streaming)是蘋果公司實現的基於 HTTP 的流媒體傳輸協議,全稱 ,可支持流媒體的直播和點播 | 短時長的媒體文件(MPEG-TS 格式),客戶端不斷的下載並播放這些小文件。因爲數據經過 HTTP 協議傳輸,因此徹底不用考慮防火牆或者代理的問題,並且分段文件的時長很短,客戶端能夠很快的選擇和切換碼率,以適應不一樣帶寬條件下的播放 HLS 的這種技術特色,決定了它的延遲通常老是會高於普通的流媒體直播協議 | 主要應用在 iOS 系統,爲 iOS 設備(如 iPhone、iPad)提供音視頻直播和點播方案。 |
公司 | 協議 | 封裝 | 視頻編碼 | 音頻編碼 | 播放器 |
---|---|---|---|---|---|
CNTV | HTTP | MP4 | H.264 | AAC | Flash |
CNTV(部分) | RTMP | FLV | H.264 | AAC | Flash |
華數 TV | HTTP | MP4 | H.264 | AAC | Flash |
優酷網 | HTTP | FLV | H.264 | AAC | Flash |
土豆網 | HTTP | F4V | H.264 | AAC | Flash |
56網 | HTTP | FLV | H.264 | AAC | Flash |
音悅臺 | HTTP | MP4 | H.264 | AAC | Flash |
樂視網 | HTTP | FLV | H.264 | AAC | Flash |
新浪視頻 | HTTP | FLV | H.264 | AAC | Flash |
網絡視頻點播業務採用 HTTP 有兩方面優點:
對於封裝格式:MP4,FLV,F4V 幾者只是容器,帶來的差別不大,而關鍵的是音視頻解碼方式:H.264與AAC,這兩種編碼標準目前仍被最普遍的應用。
公司 | 協議 | 封裝 | 視頻編碼 | 音頻編碼 | 播放器 |
---|---|---|---|---|---|
華數TV | RTMP | FLV | H.264 | AAC | Flash |
六間房 | RTMP | FLV | H.264 | AAC | Flash |
中國教育電視臺 | RTMP | FLV | H.264 | AAC | Flash |
北廣傳媒移動電視 | RTMP | FLV | H.264 | AAC | Flash |
上海IPTV | RTSP+RTP | TS | H.264 | MP2 | 機頂盒 |
網絡視頻直播服務採用 RTMP 做爲直播協議的好處是能夠直接被 Flash 播放器支持,而 Flash 播放器在 PC 時代有着極高的普及率,而且與瀏覽器結合的很好。所以這種流媒體直播平臺基本上能夠實現了「無插件直播」,極大下降了用戶使用成本。
封裝格式、視頻編碼、音頻編碼、播放器方面幾乎所有采用了 FLV、H.26四、AAC、Flash。FLV、RTMP、Flash 都是 Adobe 公司的產品,天生有着良好的結合性。
以上爲PC時代舊數據,現移動互聯網已爆發,H5 以及客戶端應用的普及,行業中對視頻業務技術方案的選擇也逐漸在發生着變化,而咱們則須要結合眼下的實際狀況和技術發展的趨勢去作出合適的技術選型。
音視頻技術道路很長,本文旨在搭建音視頻知識知識網,許多知識未能深刻,後續仍須要咱們不斷學習與實踐,抱着追求極致的精神去探索發現,加油,咱們共同快速成長!
此文已由做者受權騰訊雲+社區發佈,更多原文請點擊
搜索關注公衆號「雲加社區」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!
海量技術實踐經驗,盡在雲加社區!