licode 環境搭建
阿新 • • 發佈:2018-11-04
1、根據安裝指南安裝(參考:
http://licode.readthedocs.io/en/master/from_source/ 即可),如果順利的話,應該都能正常過去,有失敗可能是網路問題,所以先得有個好的網路;
2、執行basicExample,發現起來後看不到視訊,主要是ice等伺服器資訊配置不對,修改licode根目錄下的配置檔案licode_config.js,主要需要搭建一個本地的turn伺服器(參考: http://www.cnblogs.com/lingdhox/p/4209659.html),然後修改其中的stun伺服器的配置:
config.erizoController.iceServers = [{'url': 'stun:192.168.2.229'}, {'url':'turn:192.168.2.229', 'username':'lly', 'credential':'1234'}];
3、執行基本例子
./scripts/initLicode.sh
然後啟動例子服務,監聽的埠是3001(http)和3004(https)
./scripts/initBasicExample.sh
使用網址訪問 http://192.168.2.229:3001/connection_test.html 類似loopback測試,能推送和拉自己攝像頭的視訊
4、分析指令碼:
ps -ef |grep node,發現node起了好些個服務
root 3932 1 0 01:31 pts/0 00:00:02 node nuve.js ---監聽的是3000(http)埠
root 4266 1 0 01:31 pts/0 00:00:00 node erizoController.js
root 4593 1 0 01:31 pts/0 00:00:00 node erizoAgent.js
root 4599 4593 0 01:31 ? 00:00:00 node ./../erizoJS/erizoJS.js 172f7e09-5d31-d270-2fc7-0acdeaaf0b1d 10.0.2.15 10.0.2.15
這個指令碼啟動的node basicServer.js & ,從原始碼看,其中使用的nuve.js指令碼,是initBasicExample.sh 啟動前從nuveClient的目錄下拷貝來的
cp $ROOT/nuve/nuveClient/dist/nuve.js $EXTRAS/basic_example/
然後nuve.js指令碼則在nuve/nuveClient目錄下編譯生成的,命令如下:
google-closure-compiler-js ../src/N.js ../src/N.API.js > ../build/nuve.js
nuve.js封裝的N.API是nuve所有後臺服務的介面封裝
在basicServer.js檔案中,有N.API的初始化函式呼叫:
N.API.init(config.nuve.superserviceID, config.nuve.superserviceKey, 'http://localhost:3000/');
所以使用的是3000埠開啟的服務
connection_test.html中引入的erizo.js是從哪裡來的?這個指令碼是在installErizoTest.sh指令碼中拷貝到測試的public目錄的
<script type="text/javascript" src="erizo.js"></script>
cp ../dist/erizo.js ../../test/public
[email protected]:/webrtc/licode/extras/basic_example/public# locate erizo.js
/webrtc/licode/erizo_controller/erizoClient/webpack.config.erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/debug/erizo/erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/debug/erizo/erizo.js.map
/webrtc/licode/erizo_controller/erizoClient/dist/production/erizo/erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/production/erizo/erizo.js.map
流程,先建立房間,例子中的房間是這麼建立的:
let extra = {data: {basicExampleRoom: true}, mediaConfiguration: mediaConfiguration};
if (type === 'p2p') extra.p2p = true;
N.API.createRoom(name, function (roomID) {
theRoom = roomID._id;
callback(theRoom);
}, function(){}, extra);
拿到房間id後,通過房間id建立token,然後例項化一個房間物件:
var room = Erizo.Room({token:'213h8012hwduahd-321ueiwqewq'});
然後進入房間:
room.connect();
5、firfox顯示正常,但mac看不到視訊
2、執行basicExample,發現起來後看不到視訊,主要是ice等伺服器資訊配置不對,修改licode根目錄下的配置檔案licode_config.js,主要需要搭建一個本地的turn伺服器(參考: http://www.cnblogs.com/lingdhox/p/4209659.html),然後修改其中的stun伺服器的配置:
config.erizoController.iceServers = [{'url': 'stun:192.168.2.229'}, {'url':'turn:192.168.2.229', 'username':'lly', 'credential':'1234'}];
3、執行基本例子
./scripts/initLicode.sh
然後啟動例子服務,監聽的埠是3001(http)和3004(https)
./scripts/initBasicExample.sh
使用網址訪問 http://192.168.2.229:3001/connection_test.html 類似loopback測試,能推送和拉自己攝像頭的視訊
4、分析指令碼:
ps -ef |grep node,發現node起了好些個服務
root 3932 1 0 01:31 pts/0 00:00:02 node nuve.js ---監聽的是3000(http)埠
root 4266 1 0 01:31 pts/0 00:00:00 node erizoController.js
root 4593 1 0 01:31 pts/0 00:00:00 node erizoAgent.js
root 4599 4593 0 01:31 ? 00:00:00 node ./../erizoJS/erizoJS.js 172f7e09-5d31-d270-2fc7-0acdeaaf0b1d 10.0.2.15 10.0.2.15
這個指令碼啟動的node basicServer.js & ,從原始碼看,其中使用的nuve.js指令碼,是initBasicExample.sh 啟動前從nuveClient的目錄下拷貝來的
cp $ROOT/nuve/nuveClient/dist/nuve.js $EXTRAS/basic_example/
然後nuve.js指令碼則在nuve/nuveClient目錄下編譯生成的,命令如下:
google-closure-compiler-js ../src/N.js ../src/N.API.js > ../build/nuve.js
nuve.js封裝的N.API是nuve所有後臺服務的介面封裝
在basicServer.js檔案中,有N.API的初始化函式呼叫:
N.API.init(config.nuve.superserviceID, config.nuve.superserviceKey, 'http://localhost:3000/');
所以使用的是3000埠開啟的服務
connection_test.html中引入的erizo.js是從哪裡來的?這個指令碼是在installErizoTest.sh指令碼中拷貝到測試的public目錄的
<script type="text/javascript" src="erizo.js"></script>
cp ../dist/erizo.js ../../test/public
/webrtc/licode/erizo_controller/erizoClient/webpack.config.erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/debug/erizo/erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/debug/erizo/erizo.js.map
/webrtc/licode/erizo_controller/erizoClient/dist/production/erizo/erizo.js
/webrtc/licode/erizo_controller/erizoClient/dist/production/erizo/erizo.js.map
流程,先建立房間,例子中的房間是這麼建立的:
let extra = {data: {basicExampleRoom: true}, mediaConfiguration: mediaConfiguration};
if (type === 'p2p') extra.p2p = true;
N.API.createRoom(name, function (roomID) {
theRoom = roomID._id;
callback(theRoom);
}, function(){}, extra);
拿到房間id後,通過房間id建立token,然後例項化一個房間物件:
var room = Erizo.Room({token:'213h8012hwduahd-321ueiwqewq'});
然後進入房間:
room.connect();
5、firfox顯示正常,但mac看不到視訊