Ubuntu12.4 下 WebRTC编译

由于项目原因,需要音视频,所以最后选择了开源的WebRTC(采用BDS开源协议),并且是Google支持的开源项目。在Html5方面,Google的野心可见一般,为什么这么说,WebRTC支持浏览器。目前支持WebRTC的浏览器有Chrome,FireFox,Opera(最新版本,老版本就不支持),就是说,浏览器支持视音频,不再需要安装插件了。不过微软IE并不支持WebRTC,倒不是技术问题,这个你懂的。对于我等屌丝来说,至少有一种途径,可以实现非插件式的浏览器视音频。要知道,IE中用Active是一件很痛苦的事情,当然用Flex,安装才行,不像浏览器内置的来得直接。Google在大力推广HTML5,并以WebRTC作为视音频的标准,相信前景很好。

WebRTC目前支持 Linux,Windows,Android,IOS,浏览器(目前只有Chrome,FireFox,Opera)各个平台能实现视音频互通。Web页面可以和手机端,手机端和PC端等都可以实现音视频。是不是很酷!要动手编译WebRTC,官方建议在Ubuntu下编译。当然网上也有在Windows编译的,但是我这是按官网的说明,进行编译Android,所有选择了Ubuntu编译。如果要在Windows下编译,请参考: http://www.chromium.org/developers/how-tos/build-instructions-windows.

WebRTC 的官网为 http://www.webrtc.org. 要访问,在国内估计要通过VPN,这个你懂的。

VPN,建议还是购买一个吧,此处省略一百字。

1、环境准备:  VMware Player 安装 Ubuntu12.04(64位),当然你也可以选择高版本的Ununtu版本。不知道怎么安装Ubuntu,百度或者Google下,就可以了,并且保证Ubuntu能够上网,且能访问国外网站。

2、编译Android 前需要准备的 工作(  请参考: http://www.webrtc.org/native-code/android )

1)安装JDK(为了后面编译Android WebRtc):  sudo apt-get install openjdk-7-jdk (64位 java version "1.7.0_65")

2)安装GIT(为了下载depot_tools): sudo apt-get install git (版本2.2.2)

3)下载depot_tools,获取源码工具: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

请参考: https://sites.google.com/a/chromium.org/dev/developers/how-tos/install-depot-tools

4)配置depot_too路径:  export PATH=`pwd`/depot_tools:"$PATH"
                               gedit ~/.bashrc  在文件最后添加 export PATH=`pwd`/depot_tools:"$PATH"  保存在退出。

5)安装其他工具(为后面编译作准备,请参考 http://www.webrtc.org/native-code/development/prerequisite-sw

sudo apt-get install g++(>= 4.2)
   sudo apt-get install python
   sudo apt-get install g++
   sudo apt-get install libnss3-dev
   sudo apt-get install libasound2-dev
   sudo apt-get install libpulse-dev
   sudo apt-get install libjpeg62-dev
   sudo apt-get install libxv-dev
   sudo apt-get install libgtk2.0-dev
   sudo apt-get install libexpat1-dev
   sudo apt-get install lib32asound2-dev
   sudo apt-get install ia32-libs

3、下载源代码

1)创建一个目录:  mkdir webrtc
                            cd webrtc/
    2)创建下载的配置文件:gclient config http://webrtc.googlecode.com/svn/trunk

[email protected]:~/WebRTC$ ll
     drwxrwxr-x  3 tjb tjb 4096  1月 25 23:58 ./
     drwxr-xr-x 28 tjb tjb 4096  1月 28 10:48 ../
     -rw-rw-r--  1 tjb tjb  275  1月 25 23:58 .gclient
     -rw-rw-r--  1 tjb tjb  339  1月 25 12:18 .gclient_entries

3)编辑配置文件.gclient :

vi .gclient

solutions = [
  { "name"        : "src",

"url"         : "http://webrtc.googlecode.com/svn/trunk",
    "deps_file"   : "DEPS",
    "managed"     : True,
    "custom_deps" : {
    },
    "safesync_url": "",
  },
]
cache_dir = None
target_os = [‘android‘,‘unix‘,‘windows‘]

//"name"        : "src",  trunk 改成 src,表示源代码要存放的目录。

//最后添加 target_os = [‘android‘,‘unix‘,‘windows‘]  //,表示要编译目标平台,Android,Unix, Windows,如果是要编译IOS,就增加一个 IOS,

然后保存退出命令: wq。

4)同步代码:

gclient sync --force

说明: 这一步需要的时间很长,我是下载了三天,下了 11G,下载的大小,跟 target_os = [‘android‘,‘unix‘,‘windows‘]  里面要下的目标平台有关。如果只下载android,则不要写unix 和 windows,我是为了日后需要,所以先下载,以后再编译。如果中间发现中断了。你就不要不停地运行 gclient sync --force ,直到下载成功。(坚持不懈,直到成功!)

4、编译代码:

1)切换到下的目录:      cd src
   2)读取并执行环境命令 :source ./build/android/envsetup.sh 
   3)配置目标编译平台:   export GYP_DEFINES="$GYP_DEFINES OS=android"
   4)下载编译依赖的工具包(需要一些时间):  ./build/install-build-deps.sh
   5)下载编译所需要的Build文件(需要一些时间):   gclient runhooks --force
   6)编译Debug版本:    ninja -C out/Debug
   7)编译Release版本:   ninja -C out/Release

以上步骤执行成功后:

在 src/out 下有 Debug 和 Release 目录,里面具有编译好的DEMO文件(AppRTCDemo程序的代码就再 src/talk/examples/android/ 目录下)。

[email protected]:~/WebRTC/src/out$ ll
total 20
drwxrwxr-x  5 tjb tjb 4096  1月 27 14:52 ./
drwxrwxr-x 11 tjb tjb 4096  1月 27 14:52 ../
drwxrwxr-x 28 tjb tjb 4096  1月 27 17:10 Debug/
drwxrwxr-x  5 tjb tjb 4096  1月 27 14:52 gypfiles/
drwxrwxr-x 28 tjb tjb 4096  1月 27 19:10 Release/

在Release 和Debug目录下:  AppRTCDemo-debug.apk和 WebRTCDemo-debug.apk

-rw-rw-r--  1 tjb tjb   2552878  1月 27 19:09 AppRTCDemo-debug.apk
-rw-rw-r--  1 tjb tjb        7455  1月 27 19:10 AppRTCDemoTest-debug.apk

-rw-rw-r--  1 tjb tjb   1679104  1月 27 17:04 WebRTCDemo-debug.apk

注意,AppRTCDemo 与 WebRTCDemo的区别

WebRTCDemo:局域网内的p2p,知道对方的ip和端口号就可以视音频,  但是效果不是很好。

AppTRCDemo:这个时候需要架设服务器,由服务器来实现视音频的中转或者实现打洞,建立信道和视音频流。

下一篇会写一下关于实现视音频的中转或者实现打洞的服务器。敬请关注。

时间: 2024-08-26 22:20:23

Ubuntu12.4 下 WebRTC编译的相关文章

ubuntu12.04下安卓编译环境搭建总结

前言: 因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环境.开始是在公司自己的电脑上装了一个unbuntu的虚拟机,然后在网上找了一个攻略,开始搭建环境.但是一直卡 在源码下载那一块,每次源码下载都出错,如后面问题1所描述.断断续续,都是工作之余抽空弄一弄,但是始终下载不成功,我以为是公司网络的问题,网络不稳 定,所以下载老失败.本来想多试几次,想想总有一次会下载

在ubuntu12.04下编译android4.1.2添加JNI层出现问题

tiny4412学习者,在ubuntu12.04下编译android4.1.2添加JNI层出现问题: (虚心请教解决方法) trouble writing output: Too many methods: 65540; max is 65536. By package: 26 android 145 android.accessibilityservice 702 android.accounts 436 android.animation 8 android.annotation 3793

ubuntu12.10下OpenFoam的编译

最近在ubuntu12.10下编译OpenFoam,遇到一些问题,小记一下. 首先到官网下载源码包(我这里下载的是OpenFOAM-2.3.0.tgz,ThirdParty-2.3.0.tgz). 1.下载解压源码包 首先创建OpenFOAM文件夹,将压缩包解压到OpenFOAM文件夹下 1 mkdir OpenFOAM 2 cd OpenFOAM 3 4 tar -xvf OpenFOAM-2.3.0.tgz 5 tar -xvf ThirdParty-2.3.0.tgz 2.设置变量环境 此

ubuntu12.04下安装SQLite3及简单使用

今天想写一个小app,要用到数据库,所以在这里先简单记一下它的安装和用法. 1.安装SQLite3 命令行下输入:sudo apt-get install sqlite3 2.安装SQLite3编译需要的工具包 命令行下输入: sudo apt-get install libsqlite3-dev 3.安装图形界面 (如果你喜欢) 命令行输入: sudo apt-get install sqlitebrowser 数据库的简单使用:(看以下链接) 点击打开链接 最后,退出数据库:执行.quit

ubuntu12.04 下安装nodejs【整理】

ubuntu12.04 下安装nodejs web前端 杭州-小白 liunx里面安装nodejs我也找了很多文章,貌似对很多liunx新手来讲不是很清楚,下面是我结合一些文章,亲自实践得到的安装步骤.同时还有大家关心的与seajs紧密相关的spm模块的安装.(也许很多人在liunx里面nodejs装完之后装spm模块经常报错.嘿嘿.看看这个也许知道为啥.) (- -!其实俺也不懂liunx的,所以就这里折腾了一翻,大家请看吧.我这些都是在虚拟机里面的ubuntu里面测试可以用的.) 第一步,安

Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql 配置

Ubuntu12环境下Thin+rails(4)+ruby(2)+nginx+mysql配置 1.        前提条件:已经正确安装了ubuntu12并且更行了源. 2.        安装过程: 2.1 安装ruby前的准备: 1.1修改 /etc/apt/sources.list文件改为mirrors.163.com 保存退出 执行命令:  sudo apt-get update 更新源 1.2 安装curl 执行命令:sudoapt-get install curl 1.3 安装rvm

WebRTC编译详细介绍

WebRTC编译详细介绍--记录+转载 原文地址:http://blog.csdn.net/temotemo/article/details/7056581 WebRTC编译 本人环境: 操作系统:XP SP3 VS 2013 编译源码之前所需的工具 获取源码工具: 1. 首先需要安装获取源码的工具SVN(项目代码版本管理工具,Google也用这个) TortoiseSVN 1.6.12 http://sourceforge.net/projects/tortoisesvn/ 2.下载并安装ms

Ubuntu12.10下Python(pyodbc)访问SQL Server解决方案

一.基本原理 请查看这个网址,讲得灰常详细:http://www.jeffkit.info/2010/01/476/ 二.实现步骤 1.安装linux下SQL Server的驱动程序 安装Freetds,不要使用apt-get install 来安装,因为源里的版本不一定是新的,建议使用stable版本, 下载源码手工编译安装,因为有好些参数需要在编译中指定的. 执行以下命令: tar zfvx freetds-stable.tgz cd freetds-* ./configure --pref

Ubuntu12.04下jamvm1.5.4+classpath-0.98成功运行 helloworld.class

经过两天的努力,总于在ubuntu下面编译好classpath-0.98与jamvm1.5.4,并能成功的执行类文件:jamvm hellowold,当屏幕上打印出"hello world!"的时候,按捺不住一阵兴奋!在这两天中,执行jamvm hellowold始终被有三类异常: 1) Exceptionoccurred while VM initialising java/lang/NoClassDefFoundError: java/lang/Thread 2) Exceptio