用云服务器实现janus之web端与web通话!
一、前言:
大家周末好,今天給大家分享janus環境搭建以及如何實現web端與web端的實時通話!在寫正式文章之前,首先要說明一下,本次環境的搭建,我沒有在ubuntu本地去搭建,而是騰訊云服務器上搭建的(服務器位于香港那邊,我為什么不選擇位于國內的云服務器搭建,原因很簡單,因為有些源碼庫位于國外服務器上,國內下載訪問慢如蝸牛,很是讓人著急啊!或者要么就是連接拒絕了。。。,這給學習者巨大的打擊,我曾經在ffmpeg源碼搭建環境的時候,深深體會到了這種心態崩了狀態!)
這篇文章內容可能會比較多,雖然只是搭建環境,但是很考驗動手能力,我在搭建的時候,遇到了很多細節問題,比如stun服務器分配的ip地址無效,一度無法讓整個環境進行下去。。。。,后來我重新開了一個位于廣州的云服務器,然后再安裝了coturn服務器,然后再啟動它,把這臺服務器的ip分配給我在香港那臺服務器上,才把janus給運行起來了(位于香港那邊的服務器會導致stun的ip失效,這樣是死活不能讓janus跑起來的)。
好了,簡單就說這么多吧(上面說的問題,在下面都會呈現給大家,后期有人搭建,希望少走彎路!),下面我就開始把整個環境搭建流程搭建過程分享給大家,過程中花了我不少時間折騰:
二、janus環境搭建:
1、什么是janus?
在正式大家環境之前,我們先了解一下什么是janus,我不造輪子,直接看官網的介紹:
https://janus.conf.meetecho.com/index.html Janus官網介紹嗯,這個就簡單說到這里。
2、騰訊云香港云服務器的配置選擇:
有些朋友可能平時沒怎么用過云服務器,大多可能都在本地使用一下linux相關發行版,所以下面我會有詳細步驟,當然騰訊云官網也有教程,我按照我的配置給大家演示一下(具體情況根據你實際情況而定);同時在這里也強調一下,這里不推薦大家開長期的云服務器租用,為什么說呢,一來,這玩意費用不低(特別是寬帶大小的不同,還是非常貴的),二來,你也可能也不經常用到,所以租用長期,浪費錢;我在搭建這個的時候,使用短期的按小時收費,如果不用的話,我把我這臺云服務器給注銷掉或者關機不收費,下次又可以接著用,比較靈活!
好了,下面是簡單的配置流程,騰訊云服務器地址:
https://buy.cloud.tencent.com/cvm?tab=lite abcd這里稍微說明一下:這個帶寬大小,對于測試音視頻的話,盡量開大一點,但是注意,你的主機不要被攻擊,不然產生的流量費用會比較可怕!所以這里我推薦大家開20M左右就行,我測試的時候,搞了100M.....
d最后直接點擊開通就行,然后你就可以拿到一個公網ip地址了,然后可以在xshell上訪問這臺位于香港的云服務器了:
f說明:這里會要你登入密碼,密碼就是你剛才設置這臺主機的密碼。
e3、正式環境搭建:
好了,上面的前期準備我已經完全準備好了,接下來就開始正式大家環境了:
a、安裝aptitude:
b、命令安裝依賴:
接著下面的命令一行行的執行就行:
sudo?apt?install?cmake sudo?aptitude?install?libconfig-dev sudo?aptitude?install?libssl-dev sudo?aptitude?install?doxygen?graphviz#?ffmpeg庫?支持--enable-post-processing sudo?aptitude?install?libavcodec-dev?libavformat-dev?libswscale-dev?libavutil-dev下面是源碼安裝依賴,我們先在當前目錄下創建webrtc和janus目錄,后面所有的源碼下載和安裝都在這個janus目錄下進行:
這里不用給權限,給了也沒關系!
安裝 WebSocket:janus 支持 WebSocket 是可選項,如果不安裝,編譯 janus 時,默認不支持 WebSocket 的鏈接請求,而 Android APP Demo 是通過 WebSocket 與 janus 進行通信的,因為我們希望 Android APP Demo 能與瀏覽器(HTTP)進行視頻通話,所以就必須要在編譯 janus 時支持 WebSocket。依次執行以下命令,分別進行下載,編譯,安裝:
安裝 libsrtp:Janus 需要至少 version 1.5 以上的 libsrtp,如果系統中已經安裝了 libsrtp,則首先卸載后,手動安裝新版本,這里我們安裝 libsrtp 2.2,依次執行以下命令:
注意在下載這個,要切換到janus目錄下進行哈,后面的源碼安裝同樣操作,后期我就提醒了。
安裝libusrsctp:
libusrsctp支持--enable-data-channels:
git?clone?https://github.com/Kurento/libusrsctp.git cd?libusrsctp ./bootstrap ./configure make sudo?make?install安裝libmicrohttpd:
libmicrohttpd支持--enable-rest:
wget?https://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.71.tar.gz tar?zxf?libmicrohttpd-0.9.71.tar.gz cd?libmicrohttpd-0.9.71/ ./configure make sudo?make?install下面開始進行編譯janus:
通過 Git 下載 Janus 源碼,并編譯安裝:
git?clone?https://github.com/meetecho/janus-gateway.git git?tag?查看當前的?tag,選擇最新穩定的版本v0.10.4 git??checkout?v0.10.4 sh?autogen.sh ./configure?--prefix=/opt/janus?--enable-websockets?--enable-post-processing?--enable-docs?--enable-rest?--enable-data-channels make sudo?make?install安裝完畢后,我們來配置相關janus運行所需條件:
1、生成證書:
2、安裝nginx:
3、修改nginx配置文件:
然后進行配置:
注:剛才生成的證書路徑:
同時我們還要配置一下janus的路徑(指向janus所在目錄/opt/janus/share/janus/demos):
最終配置好結果如下:
4、啟動nginx:
這里稍微提一下對nginx不熟的朋友,可以看我之前學習總結的一篇關于nginx配置的文章:nginx之靜態資源訪問和負載均衡的使用!。
這時候去訪問的話,訪問不了,因為我們的服務器沒有去開通一下權限,比如說80端口和443端口:
所以我們要配置一下:
1234最后就可以訪問到janus官網了(原理是通過nginx代理的功能):
1235、安裝和啟動coturn
為啥要安裝這個呢,這就涉及到webrtc通話原理了,我在之前的文章里面有介紹過:webrtc之STUN、TURN、打開攝像頭實戰:
sudo?apt-get?install?libssl-dev sudo?apt-get?install?libevent-dev#git?clone?https://github.com/coturn/coturn? #cd?coturn #?提供另一種安裝方式turnserver是coturn的升級版本 wget?http://coturn.net/turnserver/v4.5.0.7/turnserver-4.5.0.7.tar.gz tar?xfz?turnserver-4.5.0.7.tar.gz cd?turnserver-4.5.0.7./configure? make? sudo?make?install然后啟動coturn:
sudo?nohup?turnserver?-L?0.0.0.0?--min-port?30000?--max-port?60000??-a?-u?txp:1121518woWO?-v?-f?-r?nort.gov?& 16、配置janus的jcfg文件:
配置Video room:需要配置的文件為(目錄/opt/janus/etc/janus):并開通8088,8089,8188,8989
先找到stun服務器所在地方:
1然后再找到turn服務器所在的地方
1 - 配置janus.transport.http.jcfg sudo?vim?janus.transport.http.jcfg - 配置janus.transport.websockets.jcfg sudo?vim?janus.transport.websockets.jcfg - 修改網頁默認支持的wss協議修改 /opt/janus/share/janus/demos/videoroomtest.js文件
sudo?vim??/opt/janus/share/janus/demos/videoroomtest.js 1三、運行janus遇到的坑:
上面為止,所以所需配置都已經搭建完畢,現在我們可以來運行janus了,但是我在運行的時候,遇到我開頭說的,stup的ip地址無效:
因為是香港的那邊的服務器不支持分配。。。。,所以為了解決這個問題,我后來又開了一臺國內位于廣州的云服務器,并且要在這臺國內服務器上安裝和啟動couturn,然后再把這臺服務器的ip地址分配到報錯的地方就行:
最后終于把janus給運行起來了,這過程蠻折騰的:
123如果有用加進來,你可以在服務器后臺看到打印信息:
最終就可以實現web與web端的通話了:
四、總結:
今天的文章就總結到這里了,這篇文章花費的時間比較多,最近通過折騰突然領悟了之前卡住的問題,內心還是非常激動的,非常有成就感!
好了,我是txp,我們下期見!
總結
以上是生活随笔為你收集整理的用云服务器实现janus之web端与web通话!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【发布】温度监测报警器v1.3a稳定版!
- 下一篇: 小龟小车A2学习笔记