以下步骤需要在墙外(vpn的速度不要太慢):
一、下载代码
1. 下载depot_tools
$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools
2. 打开source .bash_profile 添加depot_tools路径到系统目录 export PATH=$PATH:/Users/mac/depot_tools
3.
$ cd /Users/mac/depot_tools $ gclient config http://webrtc.googlecode.com/svn/trunk
4.
$ gclient sync --force
在这一步block了很久,遇到了以下错误:
Error: Command download_from_google_storage --directory --recursive --num_threads=10 --no_auth --bucket chromium-webrtc-resources trunk/resources returned non-zero exit status 1 in /Users/xxx/work/webrtc/depot_tools Hook 'download_from_google_storage --directory --recursive --num_threads=10 --no_auth --bucket chromium-webrtc-resources trunk/resources' took 20.05 secs
最后在google code下找到了解决的办法:
(https://code.google.com/p/webrtc/issues/detail?id=2811)
找到 trunk/DEPS 下的这几行代码并把它注释掉 { # Download test resources, i.e. video and audio files from Google Storage. "pattern": "\\.sha1", "action": ["download_from_google_storage", "--directory", "--recursive", "--num_threads=10", "--no_auth", "--bucket", "chromium-webrtc-resources", Var("root_dir") + "/resources"], },
5. $gclient runhooks --force
6. 进入 trunk目录,打开all.xcodeproj/
二、编译源码:
根据 trunk/talk/app/webrtc/objc/README 说明,编译源码。
1.找到WebRTC目录下.gclient 文件的内容,添加 target_os = ['ios', 'mac']
2. 在.gclient下添加后,在终端WebRTC路径下,重新执行:
gclient sync
3.1. 编译为MAC版本
进入trunk路径,执行如下命令
export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1" export GYP_GENERATORS="xcode"
最后找到trunk路径下的all.xcodeproj,用xcode打开就可以了。
3.2. 编译为iOS模拟器版本
export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=ia32" export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim" export GYP_CROSSCOMPILE=1 gclient runhooks ninja -C out_sim/Debug iossim AppRTCDemo
执行了这些后,会在trunk/out_sim/Debug 路径下会产生一个文件 AppRTCDemo.app
执行下列命令即可启动demo
./out_sim/Debug/iossim out_sim/Debug/AppRTCDemo.app
执行 gclient runhooks 遇到这个错误:
AssertionError: Multiple codesigning fingerprints for identity: iPhone Developer
参考:http://ninjanetic.com/how-to-get-started-with-webrtc-and-ios-without-wasting-10-hours-of-your-life/
在文件 : trunk/tools/gyp/pylib/gyp/xcode_emulation.py and at lines 832-833 comment the following line :
#assert identity not in cache or fingerprint == cache[identity], (
#”Multiple codesigning fingerprints for identity: %s” % identity)
解决问题。
3.3 编译为iOS真机版本
a. 安装homebrew
http://chriszeng87.iteye.com/blog/2077674
b.
brew install ideviceinstaller --HEAD
(时间较长)
c.
touch makeall-iosdevice.sh chmod +x makeall-iosdevice.sh
把以下内容复制到你刚刚创建的文件中
function fetch() { echo "-- fetching webrtc" gclient config http://webrtc.googlecode.com/svn/trunk/ echo "target_os = ['mac']" >> .gclient gclient sync sed -i "" '$d' .gclient echo "target_os = ['ios', 'mac']" >> .gclient gclient sync echo "-- webrtc has been sucessfully fetched" } function wrbase() { export GYP_DEFINES="build_with_libjinglth_chromium=0 libjingle_objc=1" export GYP_GENERATORS="ninja" } function wrios() { wrbase export GYP_DEFINES="$GYP_DEFINES OS=ios target_arch=armv7" export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios" export GYP_CROSSCOMPILE=1 } function wrmac() { wrbase export GYP_DEFINES="$GYP_DEFINES OS=mac target_arch=x64" export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_mac" } function buildios() { echo "-- building webrtc ios" pushd trunk wrios && gclient runhooks && ninja -C out_ios/Debug-iphoneos AppRTCDemo popd echo "-- webrtc has been sucessfully built" } function launch() { echo "-- launching on device" ideviceinstaller -i trunk/out_ios/Debug-iphoneos/AppRTCDemo.app echo "-- launch complete" } function fail() { echo "*** webrtc build failed" exit 1 } #fetch || fail wrios || fail buildios || fail launch || fail
最后
./makeall-iosdevice.sh
大功告成。
以上参考了:
1. http://www.cnblogs.com/leehongee/p/3383266.html
2. http://blog.csdn.net/qs_csu/article/details/17416003
3. http://ninjanetic.com/how-to-get-started-with-webrtc-and-ios-without-wasting-10-hours-of-your-life/
相关推荐
在实际操作中,确保你有良好的网络环境,因为编译WebRTC通常涉及大量数据的下载和交换。如果下载像"python_26.7z"这样的文件非常慢,你可以寻找国内的镜像源或者提前下载好并分享给其他团队成员,以提高工作效率。...
### WebRTC_MAC 编译详解 ...主要涉及了构建编译环境、下载和更新代码、以及针对特定发布版本的开发流程。这不仅有助于理解整个构建过程,还为开发者提供了实际操作的指导,从而加快开发进度并提高工作效率。
WebRTC(Web Real-Time Communication)是一项开放的...通过学习和研究这个测试通过的Demo,开发者可以更好地理解WebRTC的实际应用,并将其应用于自己的项目中,实现类似视频会议、在线教育、远程医疗等实时通信场景。
本资源包含了一个WebRTC客户端和服务器的Demo可执行程序,适用于Windows平台。 首先,`peerconnection_client.exe`是WebRTC客户端的可执行文件,它实现了WebRTC的核心组件之一——PeerConnection。PeerConnection...
1. **构建环境配置**:你需要安装Android Studio,设置NDK和JDK,并配置Gradle依赖,确保能成功编译WebRTC库。 2. **添加WebRTC库**:将WebRTC的AAR文件(或者通过Git submodule导入源码并自行编译)添加到Android...
jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo jspsip实现webrtc进行音视频通信demo
WebRTC(Web Real-Time Communication)...总的来说,"webrtc android Demo"是Android开发者学习和实践WebRTC技术的重要资源,通过深入研究和实践,开发者可以掌握如何在Android应用中实现高质量的实时音视频通信功能。
1. **下载并解压**:首先,从提供的链接下载ffmpeg.zip,然后在WebRTC的源代码目录下找到对应的FFmpeg子目录,解压zip文件覆盖原有文件。 2. **重新配置**:解压后,需要重新配置WebRTC的构建系统,确保它指向新...
webrtc源码的下载-对应ios-android-linux-mac-window等平台的编译文档 举例mac端 //直接连外网代理,如何有连外面vpn就不需要,下面的连接是例子不能直接连改自己IP和端口 export ...
1. lib 2. include 3. VERSION -m101.4951 4. libwebrtc-linux-x64-h264.tar.xz
WebRTC(Web Real-Time Communication)是一项开放源代码项目,由Google发起并维护,旨在为浏览器和其他应用程序提供实时通信功能,支持视频通话、音频传输以及P2P数据共享等。在开发WebRTC应用时,通常需要从源代码...
本篇文章将深入探讨基于Android的WebRTC视频demo的相关知识点。 1. **WebRTC架构**: WebRTC系统由三大部分组成:客户端堆栈、服务器信令以及数据传输。客户端堆栈包括采集模块(捕获音频和视频)、编码和解码模块...
**环境搭建**:要运行此示例,你需要安装Node.js和必要的依赖库,然后按照博客《webrtc的DEMO环境搭建》中的步骤配置服务器和客户端。这可能包括安装Node.js环境,克隆项目,安装项目依赖,设置环境变量,启动服务器...
以下是从 WebRTC 官网下载和编译 iOS 端源码的步骤: 1. 首先,需要从 WebRTC 官网下载源码。可以使用 Git 命令来下载源码:`git clone https://chromium.googlesource.com/external/webrtc` 2. 下载完成后,需要将...
WebRTC(Web Real-Time Communication)是一个开放源代码项目,由Google发起并维护,它提供了浏览器和其他应用程序进行实时通信(RTC)的能力,包括音频、视频和数据共享。这个技术基于Internet工程任务组(IETF)的...
通过以上步骤,我们可以成功地下载和编译 WebRTC 的源代码。这不仅有助于我们深入理解 WebRTC 的内部实现机制,还可以帮助我们根据实际需求定制和扩展功能。同时,为了提高下载速度,还可以参考提供的 IP 地址配置,...
用例1_webrtc.chatdemo_demo 用例2_webrtc.io-demo-master_包 用例3_simpleRTC_server
WebRTC(Web Real-Time Communication)是一项开放的网络技术,它允许网页浏览器进行实时通信(RTC),无需用户安装任何插件。这个技术对于构建基于互联网的音视频通信应用提供了巨大的便利。"webRTC调用本地摄像头...
为了在 Linux 平台上使用 Webrtc,我们需要获取其源代码并编译它。本文将详细介绍如何获取 Webrtc 的源代码、建立编译环境、编译 Webrtc 以及运行示例程序。 一、系统要求 ---------------- 在编译 Webrtc 之前,...
在这个“WebRtc音视频通话demo”项目中,我们看到它特别针对Android平台进行了优化,提供了类似于微信音视频通话功能的界面和体验。 首先,我们要了解WebRTC的基本架构。它包含三个主要组件: getUserMedia(获取...