主頁(yè)(http://www.130131.com):搭建WebRtc環(huán)境 搭建WebRtc環(huán)境0.前言 這次的需求,準(zhǔn)備做的是一個(gè)類(lèi)似與QQ視頻一樣的點(diǎn)對(duì)點(diǎn)視頻聊天。這幾天了解了一些知識(shí)后,決定使用HTML5新支持的WebRtc來(lái)作為視頻通訊?蛻舳耸褂弥С諬TML5瀏覽器即可。服務(wù)器段需要提供兩個(gè)主要的服務(wù)功能,一個(gè)是信令服務(wù)器(Signaling Server),一個(gè)是NAT穿透服務(wù)器(ICE Server)。簡(jiǎn)單的框架圖如下:
1.安裝e2esoft vcam 虛擬攝像頭 由于我本地是臺(tái)式電腦,沒(méi)有攝像頭,另一方面,為了調(diào)試的方便,安裝這個(gè)虛擬攝像頭。 2.安裝信令服務(wù)器 網(wǎng)上信令服務(wù)器大多是以nodejs寫(xiě)的。這里以skyrtc為例,進(jìn)行演示。 1 apt-get install nodejs npm2 git clone https://github.com/LingyuCoder/SkyRTC-demo3 cd SkyRTC-demo4 npm install5 nodejs server.js 這樣瀏覽器訪問(wèn)本地http://localhost:3000就可以訪問(wèn)了。(主要chrome好像46以上版本,除了本地localhost和127.0.0.1本地調(diào)試外,其他的訪問(wèn)方式,必須要https。否則不能運(yùn)行。PC端和移動(dòng)端好像都是這樣) Chrome報(bào)錯(cuò)如下:
這里準(zhǔn)備用Firefox進(jìn)行演示。移動(dòng)端也是用Firefox進(jìn)行演示。
手機(jī)端,用Firefox瀏覽器查看的效果。
3.安裝coturn(開(kāi)源的iceserver) 這個(gè)跟谷歌開(kāi)源的rfc5766-turn-server 是類(lèi)似的,這里我使用coturn 1 git clone https://github.com/coturn/coturn2 cd coturn3 ./configure4 make5 make install 安裝后在coturn/examples/etc 目錄下使用該命令執(zhí)行 turnserver -o -a -f -v --mobility -m 10 --max-bps=100000 --min-port=32355 --max-port=65535 --user=ling:ling1234 --user=ling2:ling1234 -r demo
這樣就啟動(dòng)好了,默認(rèn)的監(jiān)聽(tīng)端口是3478 4.修改WebRtc 客戶端配置 修改Skyrtc-demo/publi/SkyRTC-client.js
免費(fèi)公開(kāi)的stun+turn 服務(wù)器 : https://gist.github.com/yetithefoot/7592580 5.運(yùn)行,查看效果 root@debian-srv:~/workspace/SkyRTC-demo# nodejs server.js 瀏覽器打開(kāi)兩個(gè)頁(yè)面
一個(gè)PC端 一個(gè)移動(dòng)端
親測(cè),移動(dòng)4G可以跟我當(dāng)前的網(wǎng)絡(luò)穿透成功,但是移動(dòng)3G不行。其他的網(wǎng)絡(luò)網(wǎng)絡(luò)運(yùn)營(yíng)商沒(méi)有測(cè)試。單靠這些,做著玩玩還可以,距離產(chǎn)品還差十萬(wàn)八千里呢。當(dāng)下的網(wǎng)絡(luò)還是比較復(fù)雜的,IPv4告急,有些ISP分配的IP的還有可能是內(nèi)網(wǎng)的,有些大機(jī)構(gòu)的網(wǎng)絡(luò)還是對(duì)稱性NAT。而對(duì)于對(duì)稱型NAT是基本不能穿透的。要經(jīng)過(guò)轉(zhuǎn)發(fā), 而轉(zhuǎn)發(fā)視頻對(duì)帶寬的消耗是很大的。真的是希望IPv6早點(diǎn)普及。
參考資料: webrtc資料: https://segmentfault.com/a/1190000000439103 ICEServer資料 https://github.com/coturn/coturn
(中國(guó)集群通信網(wǎng) | 責(zé)任編輯:李俊勇) |












