在Docker中安装Intel OWT 进行webrtc直播

在Docker中安装Intel OWT 进行webrtc直播

 

一.准备工作

1.操作系统
CentOS7.6,验证Docker是否安装,sudo docker info,

2.网络环境

一定要找一台能连接到外网的机器,因为在安装中的过程中会下载一些国外的软件。

 

二.开始安装

1.生成镜像(如果不是在docker中安装,请忽略本步)

$ sudo docker run -itd --name owt-hevc --privileged=true --net=host -v /home:/host docker.io/centos:7.6.1810 /usr/sbin/init

这里几个参数要注意:
--privileged=true 是用来让docker中的root用户获取超级权限,因为在安装过程中会使用systemctl命令

-itd 交互式后台运行

不要在主机上直接运行上面的命令,会导致进入登录界面,通过远程ssh连接。

$ sudo docker exec -it owt-hevc /bin/bash 进入docker

 

下面的命令都是在docker中使用root权限执行,如果不是docker请直接使用root权限(sudo su root)运行。

2.验证权限

$ systemctl start

#Too few arguments

如果没有提示错误,继续,如果提示错误,查看一下上面创建docker的命令。

 

3.安装基础工具

$ yum install -y git curl wget vim ftp expect unzip

$ yum -y install yum-utils

$ cd ~

$ git config --global user.email "[email protected]"

$ git config --global user.name "Your Name"

 

4.更新gcc,g++

$ yum install centos-release-scl -y

$ yum install devtoolset-7-gcc* -y

 

$ echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile

$ source /etc/profile

 

$ gcc -v

# should see: "gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)"

$ g++ -v

# should see: "gcc version 7.3.1 20180303 (Red Hat 7.3.1-5) (GCC)"

 

5.手动安装mongodb

$ vi /etc/yum.repos.d/mongodb-org-4.0.repo

向文件中添加以下内容:

[mngodb-org]

name=MongoDB Repository

baseurl=http://mirrors.aliyun.com/mongodb/yum/redhat/7Server/mongodb-org/4.0/x86_64/

gpgcheck=0

enabled=1

 

执行安装命令:

$ yum -y install mongodb-org

 

6.下载OWT

$ wget https://github.com/open-webrtc-toolkit/owt-server/archive/v4.3.zip -O owt-server-4.3.zip

$ unzip owt-server-4.3.zip

$ cd owt-server-4.3

 

7.开始安装依赖

# if running as root, delete "sudo -E" and "sudo" in *.sh

$ sed -i 's/sudo -E //' scripts/*.sh && sed -i 's/sudo //' scripts/*.sh

 

$ ./scripts/installDepsUnattended.sh

 

执行完成后,提示:

Generate libwebrtc.a OK

 

8.配置npm

$ source ~/.bashrc

 

$ nvm use v8

# using node v8.15.0

 

$ which npm

# should see: "/home/yourname/.nvm/versions/node/v8.15.0/bin/npm"

 

9.build owt-server

$ node ./scripts/build.js -t mcu -c

#i如果出现下面的错误:

gyp ERR! stack Error: ENOENT: no such file or directory, mkdir '/root/.cache/node-gyp/8.15.0'

#请先 mkdir创建目录:

$ mkdir -p /root/.cache/node-gyp/8.15.0

#重新执行:

$ node ./scripts/build.js -t mcu -c

#然后会报目录存在的错误:

gyp ERR! stack Error: EEXIST: file already exists, mkdir '/root/.cache/node-gyp/8.15.0'

#删除刚创建的目录

$ rm -rf /root/.cache/node-gyp/8.15.0

#再重新执行一次下面的命令,就OK了:

$ node ./scripts/build.js -t mcu -c

 

10.build owt-client

$ cd ../

$ wget https://github.com/open-webrtc-toolkit/owt-client-javascript/archive/v4.3.zip -O owt-client-javascript-4.3.zip

$ unzip owt-client-javascript-4.3.zip

$ cd owt-client-javascript-4.3/scripts/

$ npm install

$ grunt

 

11.pack dist

$ cd ../../owt-server-4.3

$ ./scripts/pack.js -f -s ../owt-client-javascript-4.3/dist/samples/conference/

 

12.修改IP地址

$ vim dist/webrtc_agent/agent.toml

修改[webrtc] 部分的 network_interfaces

[{name = "eth0", replaced_ip_address = "你的公网IP"}]

$ vim dist/portal/portal.toml

修改 [portal] 部分里的 ip_address 为服务器公网 IP 地址

 

13.运行owt-server

$ cd ./dist

$ ./bin/init-all.sh

#如果有提示输入YES/NO,或者用户名密码,一律按回车键

$ ./bin/start-all.sh

 

三.验证

访问页面:https://你的公网IP:3004

 

四.可能遇到的问题

1.关闭防火墙

$ systemctl stop firewalld

$ systemctl disable firewalld

2.如果云主机,请开放端口

TCP:3001,3004,8080

UDP:1-65535

3.mongodb有时会崩溃,安装一个monit来监控重启

$ yum install monit

$ vim /etc/monit.d/mongodb

# 匹配进程名
check process mongo MATCHING mongo
# 配置服务启动和重启命令
start program = "/bin/systemctl start mongod.service"
restart program = "/bin/systemctl restart mongod.service"
# 如果端口27017无法访问则认为服务失败,发报警邮件并重启服务
if failed port 27017  type tcp then alert
if failed port 27017  type tcp then restart

# 如果在三个周期内重启了3次,则不再监控
 if 3 restarts within 3 cycles then unmonitor

 

 

 

你可能感兴趣的:(软件开发,视频编解码,docker,webrtc)