搭建WebRtc环境
2016-05-24 10:05
239 查看
0.前言
这次的需求,准备做的是一个类似与QQ视频一样的点对点视频聊天。这几天了解了一些知识后,决定使用HTML5新支持的WebRtc来作为视频通讯。客户端使用支持HTML5浏览器即可。服务器段需要提供两个主要的服务功能,一个是信令服务器(Signaling Server),一个是NAT穿透服务器(ICE Server)。简单的框架图如下:
1.安装e2esoft vcam 虚拟摄像头
由于我本地是台式电脑,没有摄像头,另一方面,为了调试的方便,安装这个虚拟摄像头。
我是在这里下载的http://www.loveliao.com/downfiles/VCam_v4.5.exe
2.安装信令服务器
网上信令服务器大多是以nodejs写的。这里以skyrtc为例,进行演示。
这样浏览器访问本地http://localhost:3000就可以访问了。(主要chrome好像46以上版本,除了本地localhost和127.0.0.1本地调试外,其他的访问方式,必须要https。否则不能运行。PC端和移动端好像都是这样) Chrome报错如下:
这里准备用Firefox进行演示。移动端也是用Firefox进行演示。
手机端,用Firefox浏览器查看的效果。
3.安装coturn(开源的iceserver)
这个跟谷歌开源的rfc5766-turn-server 是类似的,这里我使用coturn
安装后在coturn/examples/etc 目录下使用该命令执行
turnserver -o -a -f -v --mobility -m 10 --max-bps=100000 --min-port=32355 --max-port=65535 --user=ling:ling1234 --user=ling2:ling1234 -r demo
这样就启动好了,默认的监听端口是3478
4.修改WebRtc 客户端配置
修改Skyrtc-demo/publi/SkyRTC-client.js
免费公开的stun+turn 服务器 : https://gist.github.com/yetithefoot/7592580
5.运行,查看效果
浏览器打开两个页面
一个PC端 一个移动端
亲测,移动4G可以跟我当前的网络穿透成功,但是移动3G不行。其他的网络网络运营商没有测试。单靠这些,做着玩玩还可以,距离产品还差十万八千里呢。当下的网络还是比较复杂的,IPv4告急,有些ISP分配的IP的还有可能是内网的,有些大机构的网络还是对称性NAT。而对于对称型NAT是基本不能穿透的。要经过转发, 而转发视频对带宽的消耗是很大的。真的是希望IPv6早点普及。
参考资料:
webrtc资料:
https://segmentfault.com/a/1190000000439103
https://bitbucket.org/webrtc/codelab/overview
https://github.com/LingyuCoder/SkyRTC-demo
http://xiaol.me/2014/08/24/webrtc-stun-turn-signaling/
http://www.mamicode.com/info-detail-513556.html
https://simplewebrtc.com/
https://gist.github.com/yetithefoot/7592580
ICEServer资料
https://github.com/coturn/coturn
http://www.cnblogs.com/lingdhox/p/4209659.html
本文地址: http://www.cnblogs.com/wunaozai/p/5520084.html
这次的需求,准备做的是一个类似与QQ视频一样的点对点视频聊天。这几天了解了一些知识后,决定使用HTML5新支持的WebRtc来作为视频通讯。客户端使用支持HTML5浏览器即可。服务器段需要提供两个主要的服务功能,一个是信令服务器(Signaling Server),一个是NAT穿透服务器(ICE Server)。简单的框架图如下:
1.安装e2esoft vcam 虚拟摄像头
由于我本地是台式电脑,没有摄像头,另一方面,为了调试的方便,安装这个虚拟摄像头。
我是在这里下载的http://www.loveliao.com/downfiles/VCam_v4.5.exe
2.安装信令服务器
网上信令服务器大多是以nodejs写的。这里以skyrtc为例,进行演示。
apt-get install nodejs npm git clone https://github.com/LingyuCoder/SkyRTC-demo cd SkyRTC-demo npm install nodejs server.js
这样浏览器访问本地http://localhost:3000就可以访问了。(主要chrome好像46以上版本,除了本地localhost和127.0.0.1本地调试外,其他的访问方式,必须要https。否则不能运行。PC端和移动端好像都是这样) Chrome报错如下:
这里准备用Firefox进行演示。移动端也是用Firefox进行演示。
手机端,用Firefox浏览器查看的效果。
3.安装coturn(开源的iceserver)
这个跟谷歌开源的rfc5766-turn-server 是类似的,这里我使用coturn
git clone https://github.com/coturn/coturn cd coturn ./configure make make install
安装后在coturn/examples/etc 目录下使用该命令执行
turnserver -o -a -f -v --mobility -m 10 --max-bps=100000 --min-port=32355 --max-port=65535 --user=ling:ling1234 --user=ling2:ling1234 -r demo
这样就启动好了,默认的监听端口是3478
4.修改WebRtc 客户端配置
修改Skyrtc-demo/publi/SkyRTC-client.js
免费公开的stun+turn 服务器 : https://gist.github.com/yetithefoot/7592580
5.运行,查看效果
root@debian-srv:~/workspace/SkyRTC-demo# nodejs server.js
浏览器打开两个页面
一个PC端 一个移动端
亲测,移动4G可以跟我当前的网络穿透成功,但是移动3G不行。其他的网络网络运营商没有测试。单靠这些,做着玩玩还可以,距离产品还差十万八千里呢。当下的网络还是比较复杂的,IPv4告急,有些ISP分配的IP的还有可能是内网的,有些大机构的网络还是对称性NAT。而对于对称型NAT是基本不能穿透的。要经过转发, 而转发视频对带宽的消耗是很大的。真的是希望IPv6早点普及。
参考资料:
webrtc资料:
https://segmentfault.com/a/1190000000439103
https://bitbucket.org/webrtc/codelab/overview
https://github.com/LingyuCoder/SkyRTC-demo
http://xiaol.me/2014/08/24/webrtc-stun-turn-signaling/
http://www.mamicode.com/info-detail-513556.html
https://simplewebrtc.com/
https://gist.github.com/yetithefoot/7592580
ICEServer资料
https://github.com/coturn/coturn
http://www.cnblogs.com/lingdhox/p/4209659.html
本文地址: http://www.cnblogs.com/wunaozai/p/5520084.html
相关文章推荐
- hdu2502:月之数
- Android Studio 从1.4直接升级2.2 Preview1后的错误
- U盘安装CentOS7遇到:init... timeout
- “三大招”巧做互动式微课
- Android官方开发文档Training系列课程中文版:OpenGL绘图之应用投影与相机视图
- GC学习笔记
- 由浅入深探究 MySQL索引结构原理、性能分析与优化(二)
- MinGW编译的DLL versuffix
- Oracle中判断字段是否为数字
- Competition and cooperation between active intra-network and passive extra-network transport process
- Android EventBus源码解析 带你深入理解EventBus
- 安卓重要的生命周期图和流程图
- logistic结果各个维度可视化 py更新为什么pyc没更新 2016.05.23回顾
- 常成员函数函数和返回值为常量的函数
- 属性中限定输入值并抛出异常
- Java jar 指定main方法运行
- 详解Bootstrap网格系统
- PHPcms调去多图字段的方法
- Volley框架的基本解读(三)
- launchimage