欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:音視頻 WebRTC簡(jiǎn)介及使用

柚子快報(bào)激活碼778899分享:音視頻 WebRTC簡(jiǎn)介及使用

http://yzkb.51969.com/

文章目錄

前言一、WebRTC 簡(jiǎn)介1、webrtc 是什么2、webrtc 可以做什么3、數(shù)據(jù)傳輸需要些什么4、SDP 協(xié)議5、STUN6、TURN7、ICE

二、WebRTC 整體框架三、WebRTC 功能模塊1、視頻相關(guān)①、視頻采集---video_capture②、視頻編解碼---video_coding③、視頻加密---video_engine_encryption④、視頻媒體文件---media_file⑤、視頻圖像處理---video_processing⑥、視頻顯示---video_render⑦、網(wǎng)絡(luò)傳輸與流控

2、音頻相關(guān)①、音頻設(shè)備---audio_device②、音頻編解碼---audio_coding③、聲音加密---voice_engine_encryption④、聲音文件⑤、聲音處理---audio_processing⑥、網(wǎng)絡(luò)傳輸與流控

四、WEBRTC 調(diào)用本地?cái)z像頭1、確認(rèn)本地設(shè)備2、WebRTC 所用 API①、getUserMedia②、展示攝像頭圖像

3、Html 與 js 代碼4、WEBRTC 調(diào)用本地?cái)z像頭

前言

WebRTC 只是一個(gè)媒體引擎,上面有一個(gè) JavaScript API,所以每個(gè)人都知道如何使用它(盡管瀏覽器實(shí)現(xiàn)仍然各不相同),本文對(duì) WebRTC(網(wǎng)頁(yè)實(shí)時(shí)通信)的相關(guān)內(nèi)容進(jìn)行簡(jiǎn)要介紹。

一、WebRTC 簡(jiǎn)介

WebRTC,名稱源自網(wǎng)頁(yè)實(shí)時(shí)通信(Web Real-Time Communication)的縮寫,是一個(gè)支持網(wǎng)頁(yè)瀏覽器進(jìn)行實(shí)時(shí)語(yǔ)音通話或視頻聊天的技術(shù),是谷歌 2010 年以 6820 萬美元收購(gòu) Global IP Solutions 公司而獲得的一項(xiàng)技術(shù)。

WebRTC 提供了實(shí)時(shí)音視頻的核心技術(shù),包括音視頻的采集、編解碼、網(wǎng)絡(luò)傳輸、顯示等功能,并且還支持跨平臺(tái):windows,linux,mac,android。

雖然 WebRTC 的目標(biāo)是實(shí)現(xiàn)跨平臺(tái)的 Web 端實(shí)時(shí)音視頻通訊,但因?yàn)楹诵膶哟a的 Native、高品質(zhì)和內(nèi)聚性,開發(fā)者很容易進(jìn)行除 Web 平臺(tái)外的移殖和應(yīng)用。很長(zhǎng)一段時(shí)間內(nèi) WebRTC 是業(yè)界能免費(fèi)得到的唯一高品質(zhì)實(shí)時(shí)音視頻通訊技術(shù)。

1、webrtc 是什么

瀏覽器為音視頻獲取傳輸提供的接口

2、webrtc 可以做什么

瀏覽器端到端的進(jìn)行音視頻聊天、直播、內(nèi)容傳輸

3、數(shù)據(jù)傳輸需要些什么

IP、端口、協(xié)議客戶端、 服務(wù)端

4、SDP 協(xié)議

有關(guān) SDP 相關(guān)的內(nèi)容可以參考我之前的博文:RTSP協(xié)議抓包及講解 sdp 協(xié)議:SDP 信息相當(dāng)于 PC 的名片,主要是協(xié)商兩個(gè)端點(diǎn)在傳輸數(shù)據(jù)的時(shí)候一些配置 數(shù)據(jù)格式:key=value

SDP 協(xié)商利用的是請(qǐng)求和響應(yīng)這兩個(gè)模型(offer、answer),Offerer 發(fā)給 Answerer 的請(qǐng)求消息稱為請(qǐng)求 offer, 內(nèi)容包括媒體流類型、各個(gè)媒體流使用的編碼集,以及將要用于接收媒體流的 IP 和端口。Answerer 收到 offer 之后,回復(fù)給 Offerer 的消息稱為響應(yīng),內(nèi)容包括要使用的媒體編碼,是否接收該媒體流以及告訴 Offerer 其用于接收媒體流的 IP 和端口。

在 WebRTC 連接流程中,在創(chuàng)建 PeerConnectionA 后,就會(huì)去創(chuàng)建一個(gè) offerSDP,并設(shè)置為 localSDP。通過 signaling 發(fā)送 PeerB。peerB 收到 peerA 的 SDP 后,把收到的 SDP 設(shè)置為 RemoteSDP。在設(shè)置完成后,PeerB 再生成 AnswerSDP,設(shè)置為 localSDP,通過 signaling 通道發(fā)送給 PeerA,PeerA 收到后 AnswerSDP 后,設(shè)置為 RemoteSDP,以上流程完成了 SDP 的交換。

5、STUN

允許應(yīng)用程序發(fā)現(xiàn)自己和公網(wǎng)之間的中間件類型,同時(shí)也能允許應(yīng)用程序發(fā)現(xiàn)自己被 NAT 分配的公網(wǎng) IP,從而替代位于應(yīng)用層中的私網(wǎng)地址,達(dá)到 NAT 穿透的目的

6、TURN

通過修改應(yīng)用層中的私網(wǎng)地址達(dá)到 NAT 穿透 也是解決內(nèi)網(wǎng)穿透的,這里是 stun 不能工作的時(shí)候采取的辦法 相當(dāng)于一個(gè)中轉(zhuǎn)器即 peerA->TURN-PeerB

7、ICE

交互式連接的建立 把 STUN 和 TURN 結(jié)合在一起的一個(gè)標(biāo)準(zhǔn)叫 ICE(不是協(xié)議, 是整合了 STUN,TURN 的框架)。利用 STUN 和 TURN 為連接提供正確的路由,然后尋找一系列雙方可用地址按順序測(cè)試地址,直到找到雙方都可用的組合。

二、WebRTC 整體框架

綠色部分是 WebRTC 核心部分(核心庫(kù))

核心層,第一層 C++ API:提供給外面的接口,最主要的是(PeerConnedtion 對(duì)等連接)核心層,第二層 Session:上下文管理層(音視頻)核心層,第三層【最重要的部分】

音視頻引擎 :編解碼;音頻緩沖 BUFFER 防止音頻網(wǎng)絡(luò)抖動(dòng) NetEQ;回音消除;降噪;靜音檢測(cè);視頻引擎 :編解碼;jitter buffer 防止視頻網(wǎng)絡(luò)抖動(dòng);圖像處理增強(qiáng);傳輸:SRTP 加密后的 RTP;多路復(fù)用;P2P(STUN+TURN+ICE) 核心層,第四層,硬件相關(guān)層:音視頻采集;網(wǎng)絡(luò) IO 紫色部分是 JS 提供的 API(應(yīng)用層)

整體是應(yīng)用層調(diào)用核心層

三、WebRTC 功能模塊

WebRTC 實(shí)現(xiàn)了基于網(wǎng)頁(yè)的視頻會(huì)議,標(biāo)準(zhǔn)是 WHATWG 協(xié)議,目的是通過瀏覽器提供簡(jiǎn)單的 javascript 就可以達(dá)到實(shí)時(shí)通訊(Real-Time Communications (RTC))能力。

1、視頻相關(guān)

①、視頻采集—video_capture

源代碼在 webrtc\modules\video_capture\main 目錄下, 包含接口和各個(gè)平臺(tái)的源代碼。

在 windows 平臺(tái)上,WebRTC 采用的是 dshow 技術(shù),來實(shí)現(xiàn)枚舉視頻的設(shè)備信息和視頻數(shù)據(jù)的采集,這意味著可以支持大多數(shù)的視頻采集設(shè)備;對(duì)那些需要單獨(dú)驅(qū)動(dòng)程序的視頻采集卡(比如??蹈咔蹇ǎ┚蜔o能為力了。

視頻采集支持多種媒體類型,比如 I420、YUY2、RGB、UYUY 等,并可以進(jìn)行幀大小和幀率控制。

②、視頻編解碼—video_coding

源代碼在 webrtc\modules\video_coding 目錄下。

WebRTC 采用 I420/VP8 編解碼技術(shù)。VP8 是 google 收購(gòu) ON2 后的開源實(shí)現(xiàn),并且也用在 WebM 項(xiàng)目中。VP8 能以更少的數(shù)據(jù)提供更高質(zhì)量的視頻,特別適合視頻會(huì)議這樣的需求。

③、視頻加密—video_engine_encryption

視頻加密是 WebRTC 的 video_engine 一部分,相當(dāng)于視頻應(yīng)用層面的功能,給點(diǎn)對(duì)點(diǎn)的視頻雙方提供了數(shù)據(jù)上的安全保證,可以防止在 Web 上視頻數(shù)據(jù)的泄漏。

視頻加密在發(fā)送端和接收端進(jìn)行加解密視頻數(shù)據(jù),密鑰由視頻雙方協(xié)商,代價(jià)是會(huì)影響視頻數(shù)據(jù)處理的性能;也可以不使用視頻加密功能,這樣在性能上會(huì)好些。

④、視頻媒體文件—media_file

源代碼在 webrtc\modules\media_file 目錄下。

該功能是可以用本地文件作為視頻源,有點(diǎn)類似虛擬攝像頭的功能;支持的格式有 Avi,另外 WebRTC 還可以錄制音視頻到本地文件,比較實(shí)用的功能。

⑤、視頻圖像處理—video_processing

源代碼在 webrtc\modules\video_processing 目錄下。

視頻圖像處理針對(duì)每一幀的圖像進(jìn)行處理,包括明暗度檢測(cè)、顏色增強(qiáng)、降噪處理等功能,用來提升視頻質(zhì)量。

⑥、視頻顯示—video_render

源代碼在 webrtc\modules\video_render 目錄下。

在 windows 平臺(tái),WebRTC 采用 direct3d9 和 directdraw 的方式來顯示視頻,只能這樣,必須這樣。

⑦、網(wǎng)絡(luò)傳輸與流控

對(duì)于網(wǎng)絡(luò)視頻來講,數(shù)據(jù)的傳輸與控制是核心價(jià)值。WebRTC 采用的是成熟的 RTP/RTCP 技術(shù)。

2、音頻相關(guān)

WebRTC 的音頻部分,包含設(shè)備、編解碼(iLIBC/iSAC/G722/PCM16/RED/AVT、 NetEQ)、加密、聲音文件、聲音處理、聲音輸出、音量控制、音視頻同步、網(wǎng)絡(luò)傳輸與流控(RTP/RTCP)等功能。

①、音頻設(shè)備—audio_device

源代碼在 webrtc\modules\audio_device\main 目錄下, 包含接口和各個(gè)平臺(tái)的源代碼。

在 windows 平臺(tái)上,WebRTC 采用的是 Windows Core Audio 和 Windows Wave 技術(shù)來管理音頻設(shè)備,還提供了一個(gè)混音管理器。

利用音頻設(shè)備,可以實(shí)現(xiàn)聲音輸出,音量控制等功能。

②、音頻編解碼—audio_coding

源代碼在 webrtc\modules\audio_coding 目錄下。

WebRTC 采用 iLIBC/iSAC/G722/PCM16/RED/AVT 編解碼技術(shù)。

WebRTC 還提供 NetEQ 功能—抖動(dòng)緩沖器及丟包補(bǔ)償模塊,能夠提高音質(zhì),并把延遲減至最小。

另外一個(gè)核心功能是基于語(yǔ)音會(huì)議的混音處理。

③、聲音加密—voice_engine_encryption

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

④、聲音文件

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

同樣,WebRTC 也可以錄制音頻到本地文件。

⑤、聲音處理—audio_processing

源代碼在 webrtc\modules\audio_processing 目錄下。

聲音處理針對(duì)音頻數(shù)據(jù)進(jìn)行處理,包括回聲消除(AEC)、AECM(AEC Mobile)、自動(dòng)增益(AGC)、降噪(NS)、靜音檢測(cè)(VAD)處理等功能, 用來提升聲音質(zhì)量。

⑥、網(wǎng)絡(luò)傳輸與流控

和視頻一樣,WebRTC 采用的是成熟的 RTP/RTCP 技術(shù)。

四、WEBRTC 調(diào)用本地?cái)z像頭

WebRTC 是“ 網(wǎng)絡(luò)實(shí)時(shí)通信” ( Web Real Time Communication)的縮寫,它主要用來讓瀏覽器實(shí)時(shí)獲取和交換視頻、音頻和數(shù)據(jù)。

1、確認(rèn)本地設(shè)備

列出 Windows 系統(tǒng)上可用的音視頻設(shè)備

ffmpeg -list_devices true -f dshow -i dummy

-list_devices true:這是一個(gè)選項(xiàng)參數(shù),用于告訴 FFmpeg 列出可用的設(shè)備。-f dshow:這是另一個(gè)選項(xiàng)參數(shù),用于指定使用 DirectShow 框架來訪問設(shè)備。-i dummy:這是輸入?yún)?shù),dummy 是一個(gè)虛擬設(shè)備名稱,用于觸發(fā)設(shè)備列表的輸出。

可以看到筆記本電腦只有個(gè)前置攝像頭,未外接 USB 攝像頭

下面命令使用前置攝像頭進(jìn)行捕捉畫面:

ffplay -f dshow -i video="Integrated Camera"

2、WebRTC 所用 API

WebRTC 共分三個(gè) API:

MediaStream(又稱 getUserMedia)RTCPeerConnectionRTCDataChannel

getUserMedia 主要用于獲取視頻和音頻信息,后兩個(gè) API 用于瀏覽器之間的數(shù)據(jù)交換。

①、getUserMedia

首先,檢查瀏覽器是否支持 getUserMedia 方法。

navigator.getUserMedia ||

(navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia

|| navigator.msGetUserMedia);

if (navigator.getUserMedia) {

//do something

} else {

console.log('your browser not support getUserMedia');

}

Chrome21 、Opera 18 和 Firefox 17 支 持 該 方 法 ,目 前 IE 還 不 支 持 ,上 面 代 碼 中 的 msGetUserMedia 只是為了確保將來的兼容。

getUserMedia(streams, success, error); 含義如下:

streams:表示包括哪些多媒體設(shè)備的對(duì)象success:回調(diào)函數(shù),獲取多媒體設(shè)備成功時(shí)調(diào)用error:回調(diào)函數(shù),獲取多媒體設(shè)備失敗時(shí)調(diào)用

用法如下:

navigator.getUserMedia({

video: true,

audio: true

}, onSuccess, onError);

上面的代碼用來獲取攝像頭和麥克風(fēng)的實(shí)時(shí)信息。

如果網(wǎng)頁(yè)使用了 getUserMedia,瀏覽器就會(huì)詢問用戶,是否許可提供信息。如果用戶拒絕,就調(diào)用回調(diào)函數(shù) onError。

發(fā)生錯(cuò)誤時(shí),回調(diào)函數(shù)的參數(shù)是一個(gè) Error 對(duì)象,它有一個(gè) code 參數(shù),取值如下:

PERMISSION_DENIED:用戶拒絕提供信息。NOT_SUPPORTED_ERROR:瀏覽器不支持指定的媒體類型。MANDATORY_UNSATISHIED_ERROR:指定的媒體類型未收到媒體流。

②、展示攝像頭圖像

將用戶的攝像頭拍攝的圖像展示在網(wǎng)頁(yè)上,需要先在網(wǎng)頁(yè)上放置一個(gè) video 元素。圖像就展示在這個(gè)元素中。

然后, 用代碼獲取這個(gè)元素。

function onSuccess(stream) {

var video = document.getElementById('webcam');

//more code

}

最后,將這個(gè)元素的 src 屬性綁定數(shù)據(jù)流,攝像頭拍攝的圖像就可以顯示了。

function onSuccess(stream) {

var video = document.getElementById('webcam');

if (window.URL) {

video.src = window.URL.createObjectURL(stream);

} else {

video.src = stream;

}

video.autoplay = true;

//or video.play();

}

它的主要用途是讓用戶使用攝像頭為自己拍照。

3、Html 與 js 代碼

webrtcdemo.html

Document

4、WEBRTC 調(diào)用本地?cái)z像頭

雙擊 webrtcdemo.html 可以看到下圖界面,點(diǎn)擊開始 點(diǎn)擊允許 可以看到電腦攝像頭捕捉到的圖像

我的qq:2442391036,歡迎交流!

柚子快報(bào)激活碼778899分享:音視頻 WebRTC簡(jiǎn)介及使用

http://yzkb.51969.com/

好文閱讀

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18657990.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄