視頻通訊系統的關鍵技術與挑戰

當咱們觀看各種直播時,當咱們與家人朋友進行視頻通話時,當咱們利用遠程監控查看孩子在幼兒園的情況時,咱們所使用的技術就是視頻通訊技術。設計模式

隨着現代通訊技術和業務的發展,以傳送語言視頻爲一體的視頻通訊業務已經成爲通訊領域發展的熱點,其在視頻會議、遠程視頻醫療、遠程視頻教育等方面獲得愈來愈普遍的應用。而高效穩定的視頻通訊系統是開展各種視頻通訊業務的基礎。服務器

1、如何構建視頻通訊系統微信

構建視頻通訊系統是一項綜合了數據採集、處理和顯示技術數據壓縮編解碼技術和網絡傳輸技術的系統性工程。而一個基礎的視頻通訊系統過程主要包含如下三個步驟:網絡

1)數據發送方採集數據:包括音頻、視頻以及文本等多媒體數據。性能

2)經過網絡將壓縮的數據傳送到接收方。優化

3)數據接收方接收到數據後,解碼獲得多媒體數據,進行顯示和播放。網絡傳輸協議

可是在平常的業務中,不一樣的業務對視頻通訊系統的技術要求的側重點是不同的,例如:對於視頻會議,要求雙方或多方的視頻通訊過程能實時進行,延時儘量低,同時要保持通訊過程流暢不卡頓;而對於視頻監控系統,則對視頻清晰度要求較高,能保留畫面中的重要細節內容,而對延時比較寬容。編碼

儘管不一樣的業務有不一樣的側重點,構建一個高效穩定的視頻通訊系統,一直是視頻通訊運營商的追求。設計

(圖1. 構建一套視頻通訊系統,是一項綜合了音視頻處理、編解碼以及網絡傳輸等技術的綜合性工程。)視頻

 

2、如何構建高效穩定的視頻通訊系統

1. 數據採集技術要求能高效及時地獲取到高質量的原始數據

例如:在實時視頻通話應用中,對採集到的音頻通常要通過預處理,主要有濾除背景雜音,檢測並消除迴音等;在監控視頻中,則會對採集到的視頻進行去霧、改善強光干擾、夜間圖像加強等處理。

2. 數據壓縮技術:數據壓縮中的視頻壓縮技術,是整個視頻通訊系統中的核心技術。

因爲原始視頻的數據量很是大,若是不通過壓縮,將會給傳輸和存儲帶來極大的壓力。而高效的視頻編碼技術能在知足傳輸帶寬的限制下保持儘量高的質量,或者在保證必定質量的條件下,得到儘量高的壓縮率。

在低延時的業務中,對壓縮速度的要求也很是高。好比要達到每秒20幀的幀率,就要求壓縮每一幀的時間低於50毫秒,同時還要兼顧到壓縮的性能。目前主流的視頻編碼標準H.264/AVC,能夠得到不錯的性能和速度的折中。下一代的視頻編碼標準是H.265/HEVC,雖然其碼率相比H.264在同等編碼質量的狀況下能節省45%,可是因爲其專利問題和巨大的計算量,目前尚未獲得普遍應用。

在屏幕分享和視頻通話業務中,要根據不一樣的場景設置分辨率。前者須要看清屏幕文字等細節,對分辨率要求很高;後者,因爲人臉整體是平坦的,分辨率則能夠設置得低一些。若是是閉環的通訊系統,甚至能夠根據具體應用開發非標準編解碼技術或改進現有的標準編解碼技術。

3. 網絡傳輸技術視頻通訊系統的關鍵技術

壓縮後的數據須要根據合適的網絡傳輸協議打包,打包後的數據通過網絡傳輸到接收端,接收端再根據網絡協議解析出壓縮數據。根據業務類型以及傳輸數據的類型,須要選取不一樣的傳輸協議。最經常使用的兩種傳輸協議是傳輸控制協議TCP和用戶數據包協議UDP:TCP是面向鏈接的可靠傳輸協議,可是延時相對較大;UDP是無鏈接、不可靠的傳輸協議,可是延時相對較小。

在視頻通訊系統中,主要包括多媒體數據(音頻、視頻、文本等數據)和控制信令數據(登入服務器,用戶鏈接變更等消息)。其中控制信令數據,起到了調度通訊各方的做用,對整個系統的正常運行很是重要,須要穩定的傳輸,因此通常採用TCP協議,以達到穩定傳輸的目的。而對於多媒體數據,因爲對延時要求高,並且丟包對整個系統的運行影響不大,每每採用UDP協議,以達到及時傳輸的目的。

可是這樣的選擇也不是絕對的,好比在對多媒體數據延時要求不高的業務中,也能夠採用TCP。或者根據特定場景開發某種協議,好比基於UDP協議開發一種重傳機制的協議,在知足低延時的前提下,同時避免數據傳輸的丟失致使通訊中斷。總之,網絡傳輸技術對於通訊穩定流暢的進行相當重要,須要結合業務自己進行合理設計。

4. 多媒體數據的解碼播放視頻通訊系統的最後一步。

要達到音畫同步,同時避免出現花屏的效果。解碼時,須要根據解碼標準檢測是否丟失了數據,對解碼失敗的視頻幀採起不予顯示或請求重發等措施,避免出現不完整解碼幀,也就是花屏的現象。同時對音視頻的播放,要根據時間戳進行同步播放,不然會極大地影響用戶體驗。對於解碼獲得的音頻,因爲採樣率變化、壓縮失真等影響,每每要通過濾波、自動增益等處理,從而獲得圓潤而不刺耳的聲音效果。固然,在多人通訊中,首先還要對多路音頻進行混音。

 

3、構建高效穩定的視頻通訊系統的影響因素

傳輸帶寬的不穩定。網絡環境複雜多變,尤爲是移動網絡環境,傳輸帶寬多是實時變化的。在這樣的網絡環境下要實現視頻通訊的流暢進行,須要編碼的輸出碼率能自適應變化。若是一段時間內網絡帶寬變得緊張,而編碼輸出碼率仍然較高,則沒法及時傳輸數據,接收方就會出現卡頓的現象,對用戶體驗影響很大;而當網絡帶寬有很大富餘的時候,若是仍是採用低碼率進行編碼,則是對帶寬的浪費,同時接收方的視頻質量也較差。

 

4、解決辦法

要實現流暢高質量的視頻通訊,編碼端須要根據實時的網絡狀態進行壓縮率的調整,這能夠經過改變量化參數、改變分辨率或改變幀率等方法實現。而對網絡狀態的實時感知,就須要網絡傳輸模塊對網絡狀態進行統計監測,並將網絡的實時狀態信息提供給編碼端。

(圖2. 網絡傳輸模塊根據丟包率等統計信息,向編碼器反饋網絡狀態,編碼器根據網絡狀態對編碼參數進行調整,改變輸出碼率。)

固然也能夠設計一種編碼端和解碼端的正、反饋機制來實現碼率控制。具體來講,能夠在編碼端設計某種檢驗碼,使得解碼端收到消息後可以知道是否丟包,從而進行丟包統計。根據統計結果估計出網絡狀態,而後給編碼端發送反饋信息。根據反饋的信息,編碼器一方面能夠向解碼器從新發送丟失的重要數據;另外一方面也能夠得知網絡狀態,及時實施合適的碼率控制措施,使得通訊流暢地進行。採用這種設計模式時,編解碼系統就構成了一個完整的閉環系統。此時媒體數據對於網絡傳輸是透明的,於是網絡傳輸模塊只須要提供傳輸通路。

(圖3. 解碼端根據解碼失敗率估計網絡狀態,將信息反饋給編碼器,一樣能起到碼率實時控制的功能。此時網絡傳輸模塊不須要關心所傳輸的內容,只是提供了傳輸通路。)

 

5、總結:

要保證視頻通訊系統的穩定流暢運行,除各個技術模塊的性能都足夠好以外,還須要各個模塊之間合理高效的配合。這其中最主要的是編碼模塊和網絡傳輸模塊的配合,以及編碼和解碼端的正、反饋機制。

總的來講,構建一個完善高效的視頻通訊系統是一項極其複雜的、須要多項關鍵技術密切配合的系統性工程;同時也是須要根據業務的具體要求合理地開發和優化的工程。

聯繫咱們,關注圖鴨微信公衆號

 

相關文章
相關標籤/搜索