博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebRTC编译具体介绍
阅读量:5791 次
发布时间:2019-06-18

本文共 3620 字,大约阅读时间需要 12 分钟。

--记录+转载

原文地址:

WebRTC编译

本人环境:

操作系统:XP SP3

VS 2013

编译源代码之前所需的工具

获取源代码工具:

1、 首先须要安装获取源代码的工具SVN(项目代码版本号管理工具,Google也用这个)

TortoiseSVN 1.6.12

2、下载并安装msysgit和Tortoisegit

   msysgit:http://code.google.com/p/msysgit/downloads/list

                选择Git-1.7.4-preview20110204.exe,下载并安装

   Tortoisegit:http://code.google.com/p/tortoisegit/downloads/list

                选择适合自己系统的版本号。下载并安装(注:Tortoisegit仅仅是一个gui。必须安装msysgit)

                Tortoisegit安装时会找到git文件夹并自己主动配置好。

    把msysgit中bin文件夹手动加入到系统环境变量PATH中,比方我的文件夹是“D:/ProgramFiles/Git/bin”

 

3. 下载并安装Python,建议安装Python2.6,比方安装在C盘

安装将C:\Python26运行文件夹自己主动被加入入系统环境变量PATH中。

(WebRTC是用C++写的为什么要用到Python,由于WebRTC源代码和depot_tools里面有非常多.py的Python程序。用于配置项目。生成各种环境下的project文件)

 

官方要求说明:

1、 Depot Tools

1. You'll need to have the depot tools installed:

https://sites.google.com/a/chromium.org/dev/developers/how-tos/depottools

 

2. You need git installed (needed for getting WebM source):

http://git-scm.com/

/*====================================================*/

好了,外部工具准备得几乎相同了

4. 下载并配置depot_tools

 非常多人都建议建立一个存放depot_tools的文件夹,command进入该文件夹

svn co 

这在Linux以下应该是要这样做的,只是在Windows系统下,我认为这样做更方便一点:

推荐操作:

由于之前安装了SVN、Git等工具,所以我们能够直接这样取depot_tools工具:

回到桌面。右击

直接选择SVN Checkout

将    填到URL of respository去,Checkout directory能够自己随便指定你要存盘的路径(建议存在不要有中文的路径。由于一会要加入到系统的PATH的),其它默认,然后点击OK,自己主动下载,就能够拿到depot_tools工具了。

 

重头戏来了!获取WebRTC源代码:

源代码网址为   http://webrtc.googlecode.com/svn/trunk/

5. 为了把源代码抓下来,能够建立一个WebRTC的源代码文件夹

比方D:\WebRTC

一般操作:(不推荐)

用DOS命令进入该文件夹,然后

svn checkout 

下载完毕后。 WebRTC下会得到一个默认名为trunk的文件夹,里头就是WebRTC源代码了。仅仅是源代码而已,并没有编译的对应project文件。

然后

>gclient config      (要下载1个多G的文件,网速不好的。能够去玩一盘dota回来)

>gclient sync --force     (同步项目文件)

> gclient runhooks --force     (生产各种项目文件,像VS项目文件webrtc.sln文件,Linux的MakeFile文件)

等等…可是我发现非常多尝试编译WebRTC的同学在DOS命令进入操作就出现了各种问题了、、、

比方:Installing subversion ...

[-] XMLHTTP 80072ee2: Cannot make HTTP request (操作超时

... Failed to checkout svn automatically.

Please visit http://subversion.tigris.org to download the latestsubversion clie

nt

before continuing.(这个是网络连接问题,多试几次)

 

F:\WEBRTC\webrtc>gclient.bat confighttps://webrtc.googlecode.com/svn/trunk

Installing python ...(这个是配置问题)

 

等等令人抓狂的问题。

本来我们已经安装好了python、SVN了,怎么还须要Installing呢、、、并且会让你等非常久,郁闷吧!

推荐操作:

可是我这样做更好:

选择WebRTC文件夹,右击->

然后选择Git Bash,然后就直接进入该文件夹了:(例如以下图)

OK了,是时候获取WebRTC源代码来生产project了(假设单纯是为了获取WebRTC源代码,全然能够依照获取depot_tools那样来操作。可是我们还要获取完源代码后须要生产project文件的)

第一步,拿源代码:svn checkout    (源文件不是非常大,几十M)

第二步,拿项目project相关配置文件:gclient config     (文件非常大,1G多,要等非常久哦)

第三步,与Google同步项目文件,获取最新project:gclient sync --force

第四步。生产各平台的项目文件:gclient runhooks --force

注意:在第四步之前。假设在Windows平台下。须要安装Windows的DirectX SDK和SDK 7.1

下载地址:

SDK 7.1:

displaylang=en&id=8279

DirectX SDK:

       

再注意:

安装SDK 7.1的时候,一定要注意SDK 7.1的安装路径,由于在WebRTC项目在配置中有规定,配置文件在.. .\trunk\src\build 名为common.gypi 的文件

如图:

就是说Google默认SDK 7.1安装在C盘下。假设同学你不想安装在C盘下。那么就要改动一下这个配置文件了。不然的话,运行第四步的时候就会出现各种warning问题的。

假设不想安装SDK。能够从这里下所依赖的文件:

svn co http://vsfiltermod.googlecode.com/svn/trunk/src/BaseClasses。然后把文件放置在这个路径:C:/ProgramFiles/Microsoft SDKs/Windows/v7.1/Samples/multimedia/directshow/baseclasses

 

假设你顺利完毕以上四步的话,并且在第四步的时候没有出现什么问题的话,那么恭喜你,就能够在trunk文件夹下看到Windows系统平台下的webrtc.sln项目project文件了。Linux的项目文件在trunk\build的install-build-deps.sh脚本。

还有Mac OS和Android等等。。。

 

Linux平台须要安装的东西很多其它:

g++ (>= 4.2)

  python (>= 2.4)

  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

 

好了。本人是在VS 2008上研究的,打开webrtc.sln,然后生成解决方式,眼下为止已经解决方式里有122个项目,音频引擎。视频引擎,还有非常多測试代码。视频聊天測试,API測试。自己主动測试,VP8和H.264编码測试,声音測试。通道測试、、、等等,所有生成完毕大概半个小时左右。。。、、、OK,Enjoy!

编译时要注意。解决方式的配置:

保证有例如以下配置:包括文件 DirectX SDK\Include和$(WindowsSdkDir)\include

库文件:DirectX SDK\Lib\x86    DirectX SDK\Lib   SDKs\Windows\v7.1\Lib

以后有时间再和大家分享这些測试。


你可能感兴趣的文章
OSI,TCP/IP,五层协议的体系结构,以及各层协议
查看>>
Latch free等待事件
查看>>
JAVA 集合
查看>>
leetcode 322. 零钱兑换
查看>>
bzoj4518
查看>>
flex的边框渐变
查看>>
rman命令
查看>>
javascript中关于日期和时间的基础知识
查看>>
通过阿里云ECS服务器公网ip访问tomcat,nginx
查看>>
DP Codeforces Round #260 (Div. 1) A. Boredom
查看>>
php之租房子练习
查看>>
Shiro 基础教程
查看>>
div的作用
查看>>
Identifier 'Logic.DomainObjectBase._isNew' is not CLS-compliant
查看>>
php操作oracle的方法类集全
查看>>
js--基础(对象、数组、函数、if语句、while语句、do while语句、continue语句、break语句)...
查看>>
第五节:框架前期准备篇之锁机制处理并发
查看>>
javascript中bind函数的作用
查看>>
iOS 标志icon与欢迎页 图片规范
查看>>
crontab 相关
查看>>