Ubuntu 14.04编译WebRTC For Android代码_一叶知秋dong的博客-程序员宅基地

技术标签: webrtc/speex  

最近基于Google开源的WebRTC项目做了一款音视频聊天的即时通信项目,期间在下载WebRTC代码时就碰到了一些问题,在此以作记录,也希望能够帮助到正在下载编译WebRTC代码中碰到类似问题的童鞋们。

1). 准备环境

1. Ubuntu 14.04 LTS 系统

2. 准备一个稳定的速度还可以的VPN 或者 VPS ,这个很重要,大家都懂,大部分下载代码失败都是因为访问google服务失败导致的.(本人用的Digital Ocean, 之前试过几个VPN都以失败而告终,蛋都碎了,要么是不稳定,要么速度非常慢,最长一次用了15个小时都没有下载成功)

3. 安装下载$编译webrtc代码所需工具

a. jdk (本人用的  sun jdk1.6.0_45)

jdk下载路径:  http://ghaffarian.net/downloads/Java/JDK/

配置到环境变量中

b. git  ( 版本 1.9.1 )

安装:  sudo apt-get install git

c. gclient

1.安装: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

2.配置到环境变量中 ,至于怎么配置,不知道的google一下

d. 安装如下工具 ( sudo apt-get install ..)

g++ (>= 4.2)

python (>= 2.4)

libnss3-dev >= 3.12

libasound2-dev

libpulse-dev

libjpeg62-dev

libxv-dev

libgtk2.0-dev

libexpat1-dev

For 32-bit builds on a 64-bit system:

lib32asound2-dev

ia32-libs

2). 下载代码

1.同步WebRTC代码

1.创建WebRTC目录

mkdir WebRTC

cd WebRTC

2.初始化gclient

gclient config http://webrtc.googlecode.com/svn/trunk

3. 设计目标系统版本的配置

echo "target_os = ['Android', 'unix']" >> .gclient

4. sync代码

gclient sync --nohooks

( 煎熬的一步,我同步下来的代码有7.1G之大,里面包括NDK、SDK等其他tools  之前用VPN都败在这里,后来用VPS,只用了6分多钟,哎,说点什么呢......尼玛,国内程序员就是苦逼)

注意,若长时间出现  Still working on等信息,请不要中断或者关闭,它依然在运行,如果你这里中断了,那么之前下载的东西会全部删除,然后又得重新sync一遍

3). 编译代码

1.设置编译环境

1. cd trunk

2. source ./build/android/envsetup.sh

3.export GYP_DEFINES="$GYP_DEFINES OS=android"

2. 下载编译所依赖的包或工具,(这里又会下载一大堆东西 如 Ant.)

./build/install-build-deps.sh  (trunk目录下)

3. gclient runhooks --force (下载编译所需的build文件等信息)

4. 编译 ( trunk目录下 )

编译Debug版:  ninja -C out/Debug

编译Release版: ninja -C out/Release

基于以上步骤,如果网络能正常访问google服务的话,一般都不会出现其他的问题,如果真碰到了问题,不要怕,一般根据错误信息就可以知道相应的原因。不知道的google一下

编译成功之后 在 out/Debug 或者 out/Release目录下看到相应的demo安装包  如Debug目录下,其中就有 AppRTCDemo-debug.apk 和 WebRTCDemo-debug.apk

AppRTCDemo程序的代码就再 trunk/talk/examples/android/ 目录下

注意,AppRTCDemo 与 WebRTCDemo的区别

WebRTCDemo只是局域网内的点对点,知道对方的ip和端口号就可以对打,  不需要服务器,  AppTRCDemo是需要服务器的,可以局域网,或者广域网

AppRTCDemo工程源码

------------------------------------------分割线------------------------------------------

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2014年资料/10月/15日/Ubuntu 14.04编译WebRTC For Android代码

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割线------------------------------------------

WebRTC源代码:(这里是没有编译之前的代码,编译之后估计9.6G左右,请自行下载代码并编译),于2014年7月23日下载的最新代码,没有编译之前的 7.1G,如果有人因为种种原因没能把代码下载下来的,备份一份到云盘上面

链接: 点击打开链接  密码: j5s4

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dxpqxb/article/details/51751317

智能推荐

WPF Command CanExecute 触发一次的问题-程序员宅基地

昨天在项目中遇到一个问题,按钮bind了Command后,利用CanExecute控制它的是否可点击。结果却在初始化viewmodel的时候执行了一次CanExecute,之后一直不触发,按钮的可用性状态也一直不改变。 public DelegateCommand NewCommand { get; set; } public DelegateCommand CheckComma...

php中怎么用onsubmit防止,Form onsubmit 事件 阻止表单提交() 必须选中同意选项才可以提交..._奶油冰糖葫芦的博客-程序员宅基地

菜鸟教程(runoob.com)function greeting(){alert("Welcome " + document.forms["frm1"]["fname"].value + "!")}你的名字是:必须选中同意选项才可以提交jsp——js事件修改属性样式的两种方法(直接赋值、修改属性)、验证表单符合某要求、阻止表单提交、告诉浏览器不要缓存代码 JQuery阻止表单提交的方法总结 - ...

7-5 数组循环左移_croc51数组左移-程序员宅基地

本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a​0​​ a​1​​ ⋯a​n−1​​ )变换为(a​m=​​ ⋯a​n−1​​ a​0​​ a​1​​ ⋯a​m−1​​ )(除了a之外都是下标)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整_croc51数组左移

24. 详解 FRRouting 之 EBGP 协议配置-程序员宅基地

FRRouting 简介FRRouting (FRR) is a free and open source Internet routing protocol suite for Linux and Unix platforms. It implements BGP, OSPF, RIP, IS-IS, PIM, LDP, BFD, Babel, PBR, OpenFabric and VRRP, with alpha support for EIGRP and NHRP.官方网站链接。 如何移植 FR_frrouting

r语言 html 变为ppt,如何用R来定制个性化PPT-程序员宅基地

ReporteRs包可以创建word,ppt,html文档。它可以格式化R的输出:如可编辑的矢量图,复杂的表格报告功能,企业模板文档的重用(.docx和.pptx)。它是一个很好的自动化报告工具,并且不需要你安装微软的任何产品。本文演示的是如何用它来制作PPT文档。入门创建一个pptx对象通过pptx函数创建的一个R对象可以表示一个PPT文档。它包含两个参数:标题和模板文件。如果未指定,模板文件在..._r中的add_slide函数

mysql去重语法_MySQL去重数据-程序员宅基地

导读DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTINCT 的实现和 GROUP BY 的实现也基本差不多,没有太大的区别。同样可以通过松散索引扫描或者是紧凑索引扫描来实现,当然,在无法仅仅使用索引即能完成 DISTINCT 的时候,MySQL 只能通过临时表来完成。但是,和 GROUP BY 有一点差..._mysql去重语法

随便推点

WebStorm 自定义字体+颜色+语法高亮+导入导出用户设置_webstorm svelte高亮-程序员宅基地

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaSscript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。一个捷克公司开发的,功能虽然很强大,但UI貌似一直不是东欧人的强项。WebStorm默认的编辑器颜_webstorm svelte高亮

jdk之入门介绍_jdk介绍-程序员宅基地

文章目录1.官网1.官网https://docs.oracle.com/javase/8/index.htmlhttps://docs.oracle.com/javase/8/docs/index.html1.JDK,JRE,JVM 从上面可以看出是一个包含关系_jdk介绍

JVM性能调优篇_中间件性能调优_不爱吃零食的北鼻的博客-程序员宅基地

一、JVM概述1、为什么要调优1、防止出现OOM2、解决OOM问题3、减少Full GC频率4、提高系统稳定性2、性能优化的步骤1)性能监控主要监控GC频率、CPU、OOM问题、内存泄露、死锁、程序响应时间等问题;2)性能分析1、使用http://gceasy.io来分析GC日志2、灵活使用命令行工具:jps、jstack、jstat、jmap、jinfo等3、导出dump文件,使用内存分析工具分析4、使用Arthas、jconsole、JVisualVM等工具实事查看JVM状态_中间件性能调优

Java比较器(Comparable,Comparator)_compare(t o1, t o2)-程序员宅基地

比较器的排序原理,相当于二叉树的排序算法,使用第一个元素作为跟节点,如果后面的内容比跟节点要小,则放在左子树,如果要大,就放在右子树。然后按照中序排序取出来。java.util.Comparator接口public interface Comparable<T>{ public int compareTo(T o);}//返回值int型,1表示大于,-1表示小于,..._compare(t o1, t o2)

html %3c自动转化<,一行代码让谷歌浏览器变成在线编辑器(示例代码)_吕旻园的博客-程序员宅基地

这个比较好玩,或许有时能用上。只需在浏览器地址栏里输入一行代码:data:text/html, 为什么它能奏效?这是用了数据URI的格式(Data URI’s format),并告诉浏览器渲染 HTML。不过 contenteditable是 HTML5 的一个属性,所以这个小技巧只能用于支持该属性的现代浏览器。(IE 8–就不行了 )有趣的内容还在下面不少程序员受 Jose 的启发,开始对这行代...

U3D移动平台播放视频Video Player_videoplayer外部加载-程序员宅基地

方法一注:此方法摘自百度经验创建节点,加入 Raw Image, Video Player, Play Video On UGUI,拖入资源,运行直接看得到效果PlayVideoOnUGUI.cs脚本using UnityEngine;using UnityEngine.Video;using UnityEngine.UI;public class PlayVideoOnUG..._videoplayer外部加载