為何一直推薦WebRTC

來源:互聯網
上載者:User

標籤:android   windows   視頻會議   linux   google   

本文為了緬懷為音視頻通訊做出突出貢獻的年輕英才-雷霄驊,真是天妒英才!!!

  開頭有點傷感,做為一名工作在前線的IT技術人員,聽到這個訊息心裡總是有點不好受的,如果各位有幸讀到這篇文章請牢記:注意休息,工作是幹不完的,身體才是革命的本錢。跟小雷同志最後一次部落格互動如下:


650) this.width=650;" src="http://upload-images.jianshu.io/upload_images/2599136-23c896d765b6e369.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" class="imagebubble-image" alt="1240" />

  下面切入本文的重點,做為一名音視頻行業裡的小混混,如果沒聽說過WebRTC那真是不認識大哥一樣沒有見識,說的可能有點誇大了,但是確實WebRTC在近幾年對音視頻即時通訊這個行業帶來的顛覆是顯而易見的,Google用他自己的魅力+實力征服了很多開發人員,小編也是其中之一啦。但是跟隨這項技術這麼長時間來,他帶給我們的確實可以說是行業內頂尖的技術,不說多,單說一個音訊回聲消除你說你能搞定?那你確實牛B,小編佩服您這樣的牛B人士,有空可以加個啥的。。。

    WebRTC提供了視頻會議的核心技術,包括音視頻的採集、編解碼、網路傳輸、顯示等功能,並且還支援跨平台:windows,linux,mac,android, iOS等。WebRTC中的任何的一個技術點都可以拿出來列一個專欄進行討論,這裡我們只能簡單粗暴的羅列一下嘍。


650) this.width=650;" src="http://upload-images.jianshu.io/upload_images/2599136-a49fb7af10b0b402.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" class="imagebubble-image" alt="1240" />

視頻相關視頻採集---video_capture

    原始碼在webrtc\modules\video_capture\main目錄下,包含介面和各個平台的原始碼。

    在windows平台上,WebRTC採用的是dshow技術,來實現枚舉視頻的裝置資訊和視頻資料的採集,這意味著可以支援大多數的視頻採集裝置;對那些需要單獨驅動程式的視頻採集卡(比如海康高清卡)就無能為力了。

    視頻採集支援多種媒體類型,比如I420、YUY2、RGB、UYUY等,並可以進行幀大小和幀率控制。

視頻編解碼---video_coding

    原始碼在webrtc\modules\video_coding目錄下。

    WebRTC採用I420/VP8編解碼技術。VP8是google收購ON2後的開源實現,並且也用在WebM項目中。VP8能以更少的資料提供更高品質的視頻,特別適合視頻會議這樣的需求。

視頻加密--video_engine_encryption

    視頻加密是WebRTC的video_engine一部分,相當於視頻應用程式層面的功能,給點對點的視頻雙方提供了資料上的安全保證,可以防止在Web上視頻資料的泄漏。

    視頻加密在發送端和接收端進行加解密視頻資料,密鑰由視頻雙方協商,代價是會影響視頻資料處理的效能;也可以不使用視頻加密功能,這樣在效能上會好些。

    視頻加密的資料來源可能是原始的資料流,也可能是編碼後的資料流。估計是編碼後的資料流,這樣加密代價會小一些,需要進一步研究。

視頻媒體檔案--media_file

    原始碼在webrtc\modules\media_file目錄下。

    該功能是可以用本地檔案作為視頻源,有點類似虛擬網路攝影機的功能;支援的格式有Avi。

    另外,WebRTC還可以錄製音視頻到本地檔案,比較實用的功能。

視頻影像處理--video_processing

    原始碼在webrtc\modules\video_processing目錄下。

    視頻影像處理針對每一幀的映像進行處理,包括明暗度檢測、顏色增強、降噪處理等功能,用來提升視頻品質。

視頻顯示--video_render

    原始碼在webrtc\modules\video_render目錄下。

    在windows平台,WebRTC採用direct3d9和directdraw的方式來顯示視頻,只能這樣,必須這樣。

網路傳輸與流控

    對於網路視頻來講,資料的傳輸與控制是核心價值。WebRTC採用的是成熟的RTP/RTCP技術。

音頻相關

WebRTC的音頻部分,包含裝置、編解碼(iLIBC/iSAC/G722/PCM16/RED/AVT、NetEQ)、加密、音效檔、聲音處理、聲音輸出、音量控制、音視頻同步、網路傳輸與流控(RTP/RTCP)等功能。

音訊裝置---audio_device

    原始碼在webrtc\modules\audio_device\main目錄下,包含介面和各個平台的原始碼。

    在windows平台上,WebRTC採用的是Windows Core Audio和Windows Wave技術來管理音訊裝置,還提供了一個混音管理器。

    利用音訊裝置,可以實現聲音輸出,音量控制等功能。

音頻編解碼---audio_coding

    原始碼在webrtc\modules\audio_coding目錄下。

    WebRTC採用iLIBC/iSAC/G722/PCM16/RED/AVT編解碼技術。

    WebRTC還提供NetEQ功能---抖動緩衝器及丟包補償模組,能夠提高音質,並把延遲減至最小。

    另外一個核心功能是基於語音會議的混音處理。

聲音加密--voice_engine_encryption

    和視頻一樣,WebRTC也提供聲音加密功能。

音效檔

    該功能是可以用本地檔案作為音頻源,支援的格式有Pcm和Wav。

    同樣,WebRTC也可以錄製音頻到本地檔案。

聲音處理--audio_processing

    原始碼在webrtc\modules\audio_processing目錄下。

    聲音處理針對音頻資料進行處理,包括回聲消除(AEC)、AECM(AEC Mobile)、自動增益(AGC)、降噪(NS)、靜音檢測(VAD)處理等功能,用來提升聲音品質。

網路傳輸與流控

    和視頻一樣,WebRTC採用的是成熟的RTP/RTCP技術。


    以上列舉的主要來源於網路,WebRTC到今年已經5周歲了,代碼的更新速度一直非常快速,跟隨WebRTC也有兩年的時間,從陌生到熟悉,就像談戀愛一樣有甜有苦,如果最後能終成眷屬就完美了。如果你是音視頻領域剛入行的小夥伴請勇敢的擁抱WebRTC吧,這個技術值得你花時間去研究。

     

        QQ群:580477436

本文出自 “12072981” 部落格,請務必保留此出處http://12082981.blog.51cto.com/12072981/1853643

為何一直推薦WebRTC

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.