owt是一套完整的webrtc视频会议系统。包含的功能模块有:
服务器是owt-server通过nodejs编写的webrtc信令。依赖是licode。licode依赖webrtc。
客户端系列web/windows/linux/ios/android都有相应的sdk。
参考链接:https://gitee.com/winlinvip/owt-docker
下载镜像
sudo docker run -it -p 3004:3004 -p 3300:3300 -p 8080:8080 -p 60000-60050:60000-60050/udp \
registry.cn-hangzhou.aliyuncs.com/ossrs/owt:config bash
设置OWT的IP信息,设置为Mac的IP地址。也可以自动获取和设置IP
# vi dist/webrtc_agent/agent.toml
[webrtc]
network_interfaces = [{name="eth0",replaced_ip_address="192.168.1.4"}] # default: []
# vi dist/portal/portal.toml
[portal]
ip_address = "192.168.1.4" #default: ""
输入命令,初始化OWT和启动服务。
(cd dist && ./bin/init-all.sh && ./bin/start-all.sh)
需要有摄像头,访问页面:https://ip:3004,,这样就可以看到画面了。
apt-get install nodejs npm -y
apt-get update
&& apt-get install -y git htop unzip make wget unzip\
&& git config --global user.name z \
&& git config --global user.email [email protected] \
&& git clone -b 4.2.x https://github.com/open-webrtc-toolkit/owt-server.git
注意安装依赖环境的脚本有两个,运行任意一个都可以,但是为了安装简便性,建议运行非交互式安装脚本。
交互式安装,scripts/installDeps.sh,在安装每个依赖包前需要操作者手动确认yes/no,比较繁琐
非交互式安装,./scripts/installDepsUnattended.sh,自动安装所有依赖的软件包,不需要手动确认,方便快捷,推荐使用。
cd owt-server-4.3
./scripts/installDepsUnattended.sh
&& \
npm install -g node-gyp graceful-fs grunt-cli
./scripts/build.js -t mcu --check
OWT-Server在GitHub README 上描述的是 -t all,但是对于不支持硬件加速的云主机或者虚拟机来说这样 build 会失败,所以如果不支持硬件加速或者不需要硬件加速的话,请使用-t mcu
git clone -b 4.3x https://github.com/open-webrtc-toolkit/owt-client-javascript.git
cd owt-client-javascript/scripts/
npm install
grunt
解决 npm install报错问题:
npm i --unsafe-perm
然后重新执行`npm install`和`grunt`
npm config set unsafe-perm false
npm --unsafe-perm=true --user=0 i
cd ~/owt-server-4.3/
./scripts/pack.js -f -s ~/owt-client-javascript-4.3/dist/samples/conference/
说明:
pack 成功后,会生成dist目录,dist目录里就是我们运行需要的所有文件。如果你修改了源码,需要重新执行pack。
如果你的机器有多块网卡,或者对外提供服务的IP不是你本地网卡的IP,而是公网IP,你需要做如下配置。
配置公网IP或域名,参考Use Internet Name。
# vi dist/webrtc_agent/agent.toml
[webrtc]
network_interfaces = [{name="eth0",replaced_ip_address="182.28.12.12"}] # default: []
# vi dist/portal/portal.toml
[portal]
ip_address = "182.28.12.12" #default: ""
cd ~/owt-server/dist
./bin/init-all.sh --deps
./bin/start-all.sh
如果以上流程都顺利,接下来你就可以访问服务器的demo体验mcu功能了。
访问页面:https://ip:3004
访问页面:https://ip:3004/?forward=true
打开OWT的默认演示页面,私有证书需要选择Advanced => Proceed to 192.168.1.4 (unsafe)
:
由于证书问题,第一次需要在浏览器,先打开OWT信令服务(Portal)页面(后续就不用了):
访问管理后台,注意启动服务时有个sampleServiceId和sampleServiceKey,打开页面会要求输入这个信息:
ffmpeg这些依赖在根目录build/libdeps目录下。
webrtc源码目录在third_party目录下。
node:请从头到尾使用 v8.15版本的node
nvm install v8.15
nvm use v8.15
需要修改wget代理, 编辑 ~/.wgetrc 文件, 设置如下内容:
1. `https_proxy = http://127.0.0.1:8123/`
2. `http_proxy = http://127.0.0.1:8123/`
3. `#ftp_proxy = http://proxy.yoyodyne.com:18023/`
5. `# If you do not want to use proxy at all, set this to off.`
6. `use_proxy = on`
licode 需要用到patch文件 可能会出现removeRemoteCandidate成员变量不存在
需要打补丁,是因为脚本installCommonDeps.sh
执行不成功导致的:
291 行 git am $PATHNAME/patches/licode/*.patch
手动执行:
git am ./source/patches/licode/*.patch
source/agent/webrtc/webrtcLib/ 目录下的文件是licode的文件的软链接。需要直接在linux系统上git clone下来使用。而不能从,windows上git clone 然后再上传到linux机器上。
owt-server的pack的细节,可能会有错误需要执行指令:
npm --unsafe-perm=true --user=0 i
apt-get install -y pkg-config
apt-get install libglib2.0-dev