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