google開源了WebRTC項目(2)

======cymlife原創,轉載請註明。======

 

WebRTC的視頻處理分析(windows平臺)

WebRTC的視頻部分,包含採集、編解碼(I420/VP8)、加密、媒體文件、圖像處理、顯示、網絡傳輸與流控(RTP/RTCP)等功能。

視頻採集---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技術。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章