天天看點

Webrtc Demo環境搭建

1,web伺服器的搭建及注意事項

使用基于浏覽器的webrtc應用,需要有web前端頁面,由web伺服器提供服務,常用的有nginx和apache,這裡以ubuntu14.04系統上搭建apache為例。

注意:最新的webrtc僅支援HTTPS安全連接配接,是以需要支援 ssl,不使用https通路,會出現getUserMedia(擷取本地攝像頭對象)失敗。

         a, apache安裝,sudo apt-getinstall apache2,安裝方法細節可參考網上資料,安裝完成後,配置檔案在/etc/apache2/apache2.conf,預設端口為80,如果有沖突可修改/etc/apache2/ports.conf,預設的根目錄在/var/www/html,可在本機或者同網絡下其它機器浏覽器輸入(假如IP位址是10.27.105.60)http:// 10.27.105.60,如果有apache頁面出來就說明OK了;

         b, 生成ssl所需要證書;參考網上方法,可自己制作也可一些網站上申請。     

                   cd /etc/apache2/

                   sudo mkdir cert

                   cd cert

                   把附件的兩個證書放進來(cert.key,cert.crt)。

         c, 配置apache的ssl功能支援子產品

cd /etc/apache2/mods-enabled

sudo ln -s ../mods-available/ssl.conf  ssl. conf

sudo ln -s ../mods-available/ssl.load  ssl.load

cd /etc/apache2/sites-enabled

sudo ln -s ../sites-available/ default-ssl.conf  default-ssl. conf

在default-ssl.conf檔案中找到SSLCertificateFile和SSLCertificateKeyFile兩處,并修改後面的檔案路徑為/etc/apache2/cert/cert.crt和/etc/apache2/cert/cert.key

完成後,執行sudo/etc/init.d/apache2 restart可能會失敗,如下錯誤:SSLSessionCache: 'shmcb' session cache not supported

 Vi ssl.conf中把相應的行注釋掉,這樣再 restart應該就OK了

浏覽器中輸入https://10.27.105.60,預設使用433端口,如有需要,可自行修改端口,注意,有兩處需要修改:

第一處:/etc/apache2/ports.conf中ssl_module子產品中的Listen,如下,我修改為40443

<IfModule ssl_module>

       Listen 40443

</IfModule>

第二處:/etc/apache2/sites-available/default-ssl.conf

<VirtualHost _default_:40443>

修改完成後,重新開機sudo/etc/init.d/apache2 restart

然後在浏覽器中輸入https://10.27.105.60:40443

不出問題應該能出來頁面。

d, 下載下傳并webrtcdemo.tar.gz解壓到/var/www/html目錄下:

下載下傳位址:http://download.csdn.net/download/yunjinwang/10037767

sudo tar –zxvf webrtcdemo.tar.gz

sudo mv webrtcdemo webrtc

完成後,在浏覽器中輸入https:// 10.27.105.60:40443/webrtc

不出問題應該會出現頁面,“歡迎使用聯彤視訊通信”的字樣。頁面會檢測本機的攝像頭和麥克裝置,如果有這些裝置,則本地視訊會出現視訊内容,如果沒有視訊裝置可安裝虛拟攝像頭裝置。https://pan.baidu.com/s/1dE2yl1Z

2,信令伺服器的搭建及注意事項

A, 由于DEMO中使用的信令服務端采用js編寫,需要安裝nodejs到伺服器上,版本不同可能會有一些問題,可http://pan.baidu.com/s/1qXNaDIW下載下傳解壓後,将node配置到PATH環境使用,配置後執行node–v可檢視版本 V6.11.3;

B, 下載下傳附件服務端代碼webrtc_server.tar.gz到伺服器目錄

執行node index.js會列印listen on 40444,這是信令服務端監聽的40444端口,可進入index.js中進行修改,記得同時要個性前面webrtcdemo/js/main.js中的相應該位置值;

這個信令服務端信是一個簡易的信令互動系統,可進行擴充。具體過程可參考C/S代碼。

3,TURN伺服器的搭建及注意事項

環境:Ubuntu 14.04,單網卡

IP位址 10.27.105.60

安裝方法:

# sudo apt-get install rfc5766-turn-server

啟動turnserver

# ./turnserver -c /etc/turnserver.conf

-c後面是指定的配置檔案

配置說明:

配置檔案在/etc/turnserver.conf

使能基礎的stun功能,需要增加配置項:

external-ip= 10.27.105.60

使能TURN的relay功能,開啟long-term credential和realm,并且指定靜态的使用者名密碼

明文的使用者名密碼

user=media1:mediatest1

user=media2:mediatest2

加密的

#turnadmin -k -u media1 -p mediatest1 -r liantong.com

user=media1:0x8499785f1a6c5ae070116302f6c80136

設定realm,這個很關鍵,否則client端無法進行注冊

realm=liantong.com

公網映射總結

在入口路由器處做端口映射,整體網絡拓撲如下圖所示:

Webrtc Demo環境搭建
Webrtc Demo環境搭建

圖1 TURNserver網絡拓撲

在公網環境下的部署,需要注意:

external-ip配置項寫成  public ip/private ip的格式

本例中,該項配置為:

external-ip=218.106.117.18/10.27.105.60

relay-ip項不需要設定,由external-ip的配置伺服器自動處理

relay端口組,需要設定為端口映射的端口組

本例中,該項配置為:

min-port=59100

max-port=59130

4,示範方法

         Web、signaling、Turn伺服器搭建好後,找兩台有攝像頭的PC,安裝支援webrtc的浏覽器,目前使用最新的chrome\firefox\360極速浏覽器是可以的,都驗證過。

         在浏覽器位址欄輸入https://10.27.105.60:40443/webrtc,“目前使用者ID”能配置設定到ID,說明信令伺服器工作OK,本地視訊有圖像說明本浏覽器支援webrtc,在另外一台PC上同樣輸入上面的網址,能配置設定到另外一個ID,在“請輸入對方ID”框中輸入對方的ID,點選startàcall就可進行視訊通話了,理論上“遠端視訊”中會出現對方的圖像。

注意:重新整理頁面如果彈出來“請求攝像頭、麥克”等通知,請選擇“允許”。

         由于https是的證書過期,可能會出現通路受限,拿不到自己的ID,請baidu下解決。

繼續閱讀