基于webrtc的apprtc服务器的搭建

					基于webrtc的apprtc服务端搭建
基于webrtc的apprtc示例发布在公网https://apprtc.webrtc.org上(需要FQ),本文在本地ubuntu14.04 32bit搭建该系统,需要搭建房间服务器,信令服务器,TURN穿透服务器。最好使用VPN搭建环境,否则会遇到网络引起的各种错误,相关资源如下:
1.房间服务器apprtc项目源码地址: https://github.com/webrtc/apprtc

a.房间服务器搭建参考链接中的步骤就可以,如果网络环境良好,搭建成功不成问题。
b.修改apprtc/out/app_engine下的constans.py,TURN_BASE_URL需要填写本机的ip地址(注意:使用localhost会有错误)。
TURN_BASE_URL = ‘http://192.168.1.103‘
TURN_URL_TEMPLATE =
‘%s/turn.php?username=%s&key=%s‘
CEOD_KEY = ‘helloworld‘
WSS_INSTANCE_HOST_KEY = ‘host_port_pair‘
WSS_INSTANCE_NAME_KEY = ‘vm_name‘
WSS_INSTANCE_ZONE_KEY = ‘zone‘
WSS_INSTANCES = [{
    WSS_INSTANCE_HOST_KEY: ‘192.168.1.103:8089‘,
    WSS_INSTANCE_NAME_KEY: ‘wsserver-std‘,
    WSS_INSTANCE_ZONE_KEY: ‘us-central1-a‘
}, {
    WSS_INSTANCE_HOST_KEY: ‘192.168.1.103:8089‘,
    WSS_INSTANCE_NAME_KEY: ‘wsserver-std-2‘,
    WSS_INSTANCE_ZONE_KEY: ‘us-central1-f‘
}]
c.修改apprtc/out/app_engine下的apprtc.py
def get_wss_parameters(request):
  ws_host_port_pair = request.get(‘wshpp‘)
  ws_tls = request.get(‘wstls‘)

  if not ws_host_port_pair:
    ws_host_port_pair =
constants.WSS_HOST_PORT_PAIR
  if ws_tls and ws_tls == ‘false‘:
    wss_url = ‘ws://‘ + ws_host_port_pair +
‘/ws‘
    wss_post_url = ‘http://‘ + ws_host_port_pair
  else:
    wss_url = ‘ws://‘ + ws_host_port_pair +
‘/ws‘
    wss_post_url = ‘http://‘ + ws_host_port_pair
  return (wss_url, wss_post_url)
2.信令服务器collider项目源码地址:
https://github.com/webrtc/apprtc/tree/master/src/collider
本人按照参考链接搭建没有成功,主要是在go get collidermain这一步出现错误。经过摸索按照如下步骤搭建成功:
a.安装Go语言运行环境
sudo apt-get install golang-go
b.在Home目录下新建文件夹
 mkdir -p ~/collider_root,并在collider_root下新建src文件夹
c.设置GOPATH环境变量
export GOPATH=~/collider_root
d.在~/collider_root/src下设置apprtc/src/collider下的三个文件夹的链接,或者直接将collider,collidermain,collidertest三个文件夹拷贝到~/collider_root/src下(本文apprtc在Home目录下,具体自己修改命令中的路径):
cp ~/apprtc/src/collider/collider ~/collider_root/src
cp ~/apprtc/src/collider/collidermain ~/collider_root/src
cp ~/apprtc/src/collider/collidertest ~/collider_root/src
e.进入collider_root下的src:
cd ~/collider_root/src,编译安装collider:

go get collidermain
go install collidermain
成功编译后会在collider_root目录下生成bin和pkg文件夹,可执行程序在bin中
f.修改main.go的代码填上自己的ip地址,var roomSrv = flag.String("room-server","http://192.168.1.103:8080/", "The origin of the room
server")
g.运行信令服务器~/collider_root/bin/collidermain -port=8089 -tls=false
3.TURN服务器:
http://io.diveinedu.com/2015/02/05/%E7%AC%AC%E5%85%AD%E7%AB%A0-WebRTC%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%90%AD%E5%BB%BA.html
参考文档中的TURN server安装在ubuntu 64bit机上,不实用于本文的32bit环境。32bit安装步骤如下:
a.下载资源
wget http://rfc5766-turn-server.googlecode.com/files/turnserver-1.8.6.0-binary-linux-wheezy-ubuntu-mint-x86-32bits.tar.gz
b.解压资源tar
-zxvf turnserver-1.8.6.0-binary-linux-wheezy-ubuntu-mint-x86-32bits.tar.gz
c.安装服务器
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi *.deb
d.编辑配置文件
/etc/default/rfc5766-turn-server,TURNSERVER_ENABLED=1去掉注
e.编辑配置文件
/etc/turnserver.conf
listening-device=eth0
relay-device=eth0
Verbose
fingerprint
lt-cred-mech
use-auth-secret
static-auth-secret=helloword
user=helloword:0x06b2afcf07ba085b7777b481b1020391
user=helloword:helloword
stale-nonce
cert=/etc/turn_server_cert.pem
pkey=/etc/turn_server_pkey.pem
no-loopback-peers
no-multicast-peers
f.生成签名证书
sudo openssl req -x509 -newkey rsa:2048 -service coturn
start;keyout   /etc/turn_server_pkey.pem -out
/etc/turn_server_cert.pem -days 99999 -nodes
g.启动TURN服务器
service coturn start
下面是手机端和电脑端的视频通讯效果图:

				
时间: 2024-10-08 09:44:54

基于webrtc的apprtc服务器的搭建的相关文章

基于 Red5 的流媒体服务器的搭建和应用

http://www.ibm.com/developerworks/cn/opensource/os-cn-Red5/ Red5 是一个采用 Java 开发的开源免费 Flash 流媒体服务器.Red5 基于 Java 和一些功能强大的开源框架,为企业级应用奠定了标准.它使用 RTMP,RTMPT,RTMPS 和 RTMPE 流媒体协议, 支持:将音频(MP3)和视频(FLV,MP4,F4V,3GP)转换成播放流:录制客户端播放流:共享对象:现场直播流发布:远程调用.Red5 为即时通信,远程教

基于WebRTC的MCU开源项目Licode的环境搭建

基于WebRTC的MCU开源项目Licode的环境搭建 由于项目需求,需要构建多人通讯,调研了多人通讯的三种常见结构: 1.前一篇博客已经基于codelab实现了三人聊天,这种多人系统基于Mesh结构.具体来说,假设有N+1个客户端,那么对于每一个客户端都需要与其他N个对象建立PeerConnection,这样消耗了大量的带宽和CPU资源.对于客户端数量较少的应用比较适合,延迟小.开发简单.画面无损失. 2.基于MCU的结构,该MCU的核心功能就是视频和音频的Mix.通过将多路信号混合成一路,达

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

Windows 7下 搭建 基于 ssh 的sftp 服务器

Windows  xp 下 搭建 基于  ssh 的sftp 服务器,服务器端可以用 freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用filezilla 来做服务器,找不到任何有关sftp的配置选项,推荐用freesshd,免费.简单,直观,客户端可以用一般的支持sftp的都可以,filezilla,f-secure client 等,我用freesshd和filezillazilla 搭建sftp 服务,我在内网搭建的,如果在外网发布,

Linux FTP服务器的搭建与配置+基于关系型数据库实现用户认证

一.服务器端的安装: yum install vsftpd 1)查看安装后生成的哪些文件 [[email protected] ~]# rpm -ql vsftpd /etc/logrotate.d/vsftpd  <==========主志日志文件 /etc/pam.d/vsftpd<==================认证文件 /etc/rc.d/init.d/vsftpd<=============服务脚本 /etc/vsftpd<======================

Redhat 5 搭建基于 ftp 的 yum 服务器

YUM是Yellow dog Updater, Modified的缩写,是由Duke University所发起的计划,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装.升级等等工作.在此在特别说明的是,YUM只是为了解决RPM的依赖关系的问题,而不是一种其它的软件安装模式.而在redhat系统中未经授权是无法使用yum的,这里就介绍一种利用redhat光盘搭建本地yum服务器的方法. 系统环境:  Red Hat 5.9 Server IP: 192.168.100.211 C

ubuntu上开启ssh服务,并搭建基于ssh的git服务器

维基百科上SSH的定义如下 Secure Shell(縮寫为SSH),由IETF的網路工作小組(Network Working Group)所制定:SSH為一项建立在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境. 安装ssh服务器 安装openssh-server $sudo apt-get install openssh-server 安装成功之后,通过以下命令来确保server已经启动 $sudo start ssh 如果出现以下结果,则说明已经开始

Windows下基于http的git服务器搭建-gitstack

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Windows下基于http的git服务器搭建-gitstack     本文地址:http://techieliang.com/2017/12/514/ 文章目录 1. 下载安装 2. 注意  2.1. 关于Python冲突问题  2.2. gitstack密码重置 3. gitstack与wamp冲突 1. 下载安装 官网下载即可 安装流程也很简洁方便.安装步骤 安装完成后可通过管理地址

Linux搭建基于BIND的DNS服务器

实验目标:通过本实验掌握基于Linux的DNS服务器搭建. 实验步骤:1. 安装BIND2. 防火墙放通DNS服务3. 编辑BIND的主配置文件4. 编辑BIND的域管理文件5. 编辑相应域的记录文件6. 开启或重启BIND服务7. 在客户端测试 参考命令: 1. 安装BINDBIND是Linux平台最常用的DNS软件[[email protected] Desktop]# yum install bind -y 2. 防火墙放通DNS服务 3. 编辑BIND主配置文件[[email prote