webrtc入门简介

发布在 webrtc


最近一直在研究webrtc的相关工作,在这里也直接坐下记录。

什么是WebRtc

webrtc是还未正式发布的一种视频通讯的新的解决方案,其核心在于通过浏览器来完成这一工作,只要你有浏览器你就可以使用(传统的视频还是通过浏览器嵌入flash插件,或者c++脚本来达到播放视频的效果)。
具体详情点击HERE

主要内容

  • webrtc的原理
  • webrtc在服务器端上的实现
  • webrtc在android端上的实现

webrtc的原理

webrtc在服务器端上的实现

在服务器端上的实现我们又可以分为两部分

  • webrtc在web上的实现
  • webrtc在后端的实现
webrtc在web上的实现

从上面的图片中我们可以看出来,对于web上实现最大的问题还是浏览器的支持,下面是支持webrtc的浏览器

从上面我们看到其实支持的浏览器还是比较少的,至于IE,Safari是打算做自己的WebRtc标准,当然这只 是“小道消息”。
对于页面显示我们要借助与HTML5的Video标签

1
<div class="video_box">
	 <video id="mini" muted="true" autoplay="autoplay" width='192'height='144'></video>
	 <div id="videos" >
   </div>
</div>

Webrtc在web上主要用到下面几个API:

  • PeerConnection
  • RTCSessionDescription
  • getUserMedia

这三种API在不同浏览器中是不同的赋值方式,详情可参阅官方API

webrtc在服务器中的实现

在这里我们要提供两种东西,一种是单纯的socket交互,告诉用户端接下来要怎么做。另外一点就是要提供一个stunserver。
stunsever:因为我们使用Node.js来实现,所以我们使用一个modules—-stunsrv

1
var stunServer = require('stunsrv').createServer();
stunServer.setAddress0("127.0.0.1");
stunServer.setAddress1('0.0.0.0'); //外网IP
stunServer.setPort0(9001);
stunServer.setPort1(9001);
stunServer.listen();

它的功能就是用于穿透路由器,比如在不同网段中聊天,我们首先要确定其在哪个公网ip,然后需要知道是在这个公网ip路由下的哪个本地ip,然后才能进行连接。

Socket:

socket主要由下面几个功能:

  • 实现用户跟服务器之间的持续连接
  • 告诉用户除了你还有谁
  • 告诉用户与你要建立连接的用户所处的状态

通过以上几个功能便能实现用户p2p交流的基本功能了。

webrtc在android端上的实现

在很早之前,google已经在Android的源码中实现了webrtc的功能,但是并没有将此功能实现在大众面前而已。google已经实现了android和ios上的webrtc实现,具体可见HERE(在国内想要完成这个任务还是比较艰巨的)

最终我们要使用的是一个名字叫做libjingle_peerconnection的库,在这里面封装了WebRtc的API,详情可点击这里 而实际上API的使用方式都是相同的,大家可以参照下巨人的例子来进行学习。

参考

注释和共享

Download Java

Android tools runing by Java, so we must install Java before everything.
In ubuntu, we can install it by apt-get, which is very convenient.

1
sudo apt-get install default-jre

Download sdk

1
wget http://dl.google.com/android/android-sdk_r22.0.5-linux.tgz

Config hosts

In china, if we do not config anything else, it will download slowly. So we must config Google’s hosts.

1
sudo vim /etc/hosts

add follow text to hosts file.

1
#Google主页
203.208.46.146 www.google.com
#这行是为了方便打开Android开发官网 现在好像不VPN也可以打开
74.125.113.121 developer.android.com
#更新的内容从以下地址下载
203.208.46.146 dl.google.com
203.208.46.146 dl-ssl.google.com

then save.

Run update

unzip the android-sdk_r22.0.5-linux.tgz file. and into this directory. run this commmand :

1
tools/android update sdk --no-ui -s

then it will update automaticlly.

Config android Path

if we want to use android command tools. We must add sdk to out path.

1
export ANDROID_HOME=~/android-sdk-linux
export PATH=$ANDROID_HOME/tools:$PATH
export PATH=$ANDROID_HOME/platform-tools:$PATH

added this to you .bashrc then source it. Now your can use it.

注释和共享

  • 第 1 页 共 1 页

yuansc

生命不息,奋斗不止


改变世界