WebRTC源码下载及编译流程(webrtc和webrtc-android)

交叉编译ARM平台的WebRTC库 然而,当我们需要在ARM平台上使用WebRTC时,我们需要进行交叉编译,以确保库能够在ARM架构的设备上正确运行。你可以从ARM官方网站或第三方提供的资源中获取适合你的ARM平台的交叉编译工具链,并按照相应的说明进行安装。这篇文章介绍了在Linux环境下交叉编译ARM平台的WebRTC库的详细步骤。在开始编译之前,我们需要配置一些编译选项,以确保我们的库能够在ARM平台上正确编译和运行。最后一步是将编译好的库文件复制到你的ARM设备上。为后缀的文件,它们是编译好的静态库文件。替换为你的ARM设备的用户名, 阅读详情
注1:本文档适用于webrtc和webrtc-android源码的下载和编译;
注2:下载编译所使用的操作系统为Ubuntu 14.04.3 LTS;
Chromium和Chromium OS统一使用一个叫做depot_tools的工具的对其源码进行checkout的管理(这有点类似于Android使用repo工具对其源码进行管理一样),作为Chromium其中一个子模块的webrtc而言,也是使用这个工具对其代码进行checkout。这个depot_rools包里面包含了gclient、gcl、git-cl、repo等工具。
下载depot_tools工具包并放到标准路径PATH上:
下载webrtc-native代码及编译流程(首先要先按照以上步骤下载depot_tools):
mkdir webrtc-checkout
cd webrtc-checkout
fetch --nohooks webrtc
gclient sync//代码下载过程中如果发生中断,使用gclient sync同步就可以了
cd src/
./build/install-build-deps.sh(只需要在第一次gclient sync以后执行一次)
gn gen out/Default
ninja -C out/Default
gn clean out/Default
下载webrtc-android代码及编译流程(首先要先按照以上步骤下载depot_tools ):
mkdir webrtc-android
cd webrtc-android
fetch --nohooks webrtc_android
gclient sync//代码下载过程中如果发生中断,使用gclient sync同步就可以了
cd src/
./build/install-build-deps.sh(只需要在第一次gclient sync以后执行一次)
gn gen out/Debug --args='target_os="android" target_cpu="arm"'
ninja -C out/Debug
gn clean out/Debug
编译和安装AppRTCMobile :
ninja -C out/Debug AppRTCMobile
adb install -r out/Debug/apks/AppRTCMobile.apk
WebRTC代码后期更新的三种方式(在src目录下):
  • 当前代码在某个分支下进行维护,使用git pull可以拉取远程仓库的最新更新;
  • 当前代码不在分支下,使用git fetch取下来最新的git仓库更新;
  • 需要定期更新依赖或者其他第三方库,使用gclient sync命令;

附录:
1.webrtc-android版本下载及编译过程中存在play_services不存在的问题
问题描述:
下载完成后执行:gn gen out/Debug --args='target_os="android" target_cpu="arm"'命令出现以下打印错误:
pavel@ubuntu-han:~/webrtc-android/src$ gn gen out/Debug --args='target_os="android" target_cpu="arm"'
ERROR at //build/config/android/rules.gni:2739:9: Script returned non-zero exit code.
        exec_script("//build/android/gyp/aar.py",
        ^----------
Current dir: /home/pavel/webrtc-android/src/out/Debug/
Command: python -- /home/pavel/webrtc-android/src/build/android/gyp/aar.py --input-file ../../third_party/android_tools/sdk/extras/google/m2repository/com/google/android/gms/play-services-basement/10.2.0/play-services-basement-10.2.0.aar --list
Returned 1.
stderr:
Traceback (most recent call last):
  File "/home/pavel/webrtc-android/src/build/android/gyp/aar.py", line 114, in <module>
    sys.exit(main())
  File "/home/pavel/webrtc-android/src/build/android/gyp/aar.py", line 81, in main
    with zipfile.ZipFile(aar_file) as z:
  File "/usr/lib/python2.7/zipfile.py", line 701, in __init__
    self.fp = open(file, modeDict[mode])
IOError: [Errno 2] No such file or directory: '../../third_party/android_tools/sdk/extras/google/m2repository/com/google/android/gms/play-services-basement/10.2.0/play-services-basement-10.2.0.aar'
See //third_party/android_tools/ BUILD.gn:191:1: whence it was called.
android_aar_prebuilt("google_play_services_basement_java") {
^-----------------------------------------------------------
See //webrtc/system_wrappers/ BUILD.gn:155:7: which caused the file to be included.
      "//third_party/android_tools:cpu_features",
      ^-----------------------------------------
解决办法:
通过对该问题进行跟踪和查询,应该是在下载play services框架的时候有一个license需要yes才可以,执行以下命令重新启动play services的下载并在下载的过程中许可license:
./src/build/android/play_services/update.py download
2.webrtc-android版本编译出现的jni问题
问题描述:
pavel@ubuntu-han:~/webrtc-android/src$ ninja -C out/Debug/
ninja: Entering directory `out/Debug/'
[3/7329] ACTION //base:android_runtime_jni_headers__jni_Runtime(//build/toolchain/android:android_arm)
FAILED: gen/android_runtime_jni_headers/base/jni/Runtime_jni.h
python ../../base/android/jni_generator/jni_generator.py --depfile gen/base/android_runtime_jni_headers__jni_Runtime.d --jar_file ../../third_party/android_tools/sdk/platforms/android-24/android.jar --input_file java/lang/Runtime.class --optimize_generation=1 --ptr_type=long --output_dir gen/android_runtime_jni_headers/base/jni --includes ../../../../../../base/android/jni_generator/jni_generator_helper.h --native_exports_optional
Traceback (most recent call last):
  File "../../base/android/jni_generator/jni_generator.py", line 1418, in <module>
    sys.exit(main(sys.argv))
  File "../../base/android/jni_generator/jni_generator.py", line 1411, in main
    GenerateJNIHeader(input_file, output_file, options)
  File "../../base/android/jni_generator/jni_generator.py", line 1314, in GenerateJNIHeader
    jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, options)
  File "../../base/android/jni_generator/jni_generator.py", line 663, in CreateFromClass
    stderr=subprocess.PIPE)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
[4/7329] CXX obj/base/base_paths/base_paths_android.o
解决办法:
出现以上问题是由于当前系统中缺少一些编译webrtc-android的组件,需要调用以下两个脚本在当前系统中安装必要的组件即可:
./build/install-build-deps.sh
./build/install-build-deps-android.sh
下载webrtc-android时的修改    
OSERROR[] Failed connect to android.googlesource.com:443,...
/etc/hosts   添加了几行代码

增加下面内容,保存
173.194.72.82 http://www.googlesource.com
173.194.72.82 android.googlesource.com
37.61.54.158 cache.pack.google.com
173.194.74.82 gerrit.googlesource.com

编译时碰到卡死在某一个文件例如XXXunittest.o这种单元测试文件直接找到位置然后屏蔽
WebRTC源码获取 - 下载最新的WebRTC源代码 在开始下载WebRTC源码之前,您需要确保您的开发环境中安装了Git和depot_tools。如果您对WebRTC感兴趣并希望获取最新的WebRTC源代码,本文将向您介绍如何下载WebRTC源码。您可以在您的项目中使用这些源代码来开发自己的WebRTC应用程序。希望本文能帮助您获取WebRTC的最新源代码,并在您的开发项目中使用它。要构建WebRTC,您需要选择适当的构建配置并运行构建命令。在您的计算机上选择一个适当的位置,并在该位置创建一个新的工作目录。这将下载WebRTC的最新源代码到您的工作目录中。 阅读详情

相关推荐

WebRTC的Android实现 源码下载

WebRTC的Android实现。。。

WebRTC源码下载

WebRTC源码下载

我的博客 3051

WebRTC的Android实现 源码下载 包括服务器,pc端,android端

WebRTC的Android实现:包括服务器,pc端,android端

WebRtc源码下载与编译(完整版)

自从想要了解学习Webrtc,就从网上到处找源码编译,但是要么是源码本身的问题,要么是编译过程用的的工具问题,找到源码总是不能编译过去。于是下决心直接从谷歌拉取最新源码编译,经过几天折腾,解决了科学上网问题后,下载编译了linux和Android的源码,并编译通过。过程记录如下,供大家参考。创建工作目录webrtc,cd 到自己创建的工作目录(/home/zhangpf/webrtc),拉取工具:git clone。

zhangpf6699的博客 4224

Android WebRTC音频和视频通信源码

Android WebRTC音频和视频通信源码,音频和视频效果很好。

WebRTCDemo android 源代码

这个是基于WebRTC 2014年5月的trunk源代码,该代码演示在android中如何使用MediaEngine进行视频、音频通讯(包括AECM AGC NS) 在setting中取消loopback并加入内网对方IP,拉开一定距离就可以进行对话。 是个不错的学习起点。

android webrtc源码下载编译流程

参考webrtc官网开发流程 1 搭建环境 1.1 安装Ubuntu-16.0.4 1.2 解压android-ndk-r19c-linux-x86_64、jdk-8u111-linux-x64和depot_tools到指定目录 1.3 配置环境变量:$ sudo vim /etc/profile,文件末尾添加如下: export JAVA_HOME=/home/XXX/develop-t...

jsjwangmingmin的博客 1080

国产Flash替代方案:手把手教你用XSCT烧写ZYNQ7045的BOOT.BIN(附完整命令解析)

本文详细介绍了国产Flash替代方案在ZYNQ7045上的应用,通过XSCT工具链实现BOOT.BIN的精准烧写。内容涵盖国产Flash兼容性检查、PetaLinux环境搭建、XSCT烧写全流程及故障排查,帮助开发者高效完成国产化替代,提升硬件开发效率。

weixin_33670786的博客 427

【WebRtc】Android编译

前言 webrtc是谷歌收购并开源的一个支持实时音视频对话的技术。 官网是:https://webrtc.org。 准备工作 如果不打算修改webrtc相关源码,建议不要去折腾编译这个源码工程。 直接引用已经编译好的中央库(Maven或者Gradle): 认准官方渠道:(只示例Gradle方式的) compile 'org.webrtc:google-webrtc:1.0.+' ...

gjy_it的博客 4475

centos7 清理缓存

一、系统环境 系统版本 CentOS Linux release 7.3.1611 (Core) 内核版本 Linux xx-user 3.10.0-514.el7.x86_64 #1 SMP 背景 服务器分配的账号是普通用户,只能执行sudo命令 二、缓存查看及基本概念 查看内存使用情况 [user01@xx-user ~]$ free -h total used free shared buff/cache availabl

sunzq55的博客 4005

从0死磕全栈之使用 VS Code 调试 Next.js 应用完整指南

调试目标推荐方式客户端组件VS Code + Chrome 调试器(pwa-chrome中间件(Middleware)同服务端方式静态生成(SSG)逻辑需在next build时调试,建议改用dynamic路由临时测试通过合理配置 VS Code 调试器,你可以像调试普通 Node.js 或前端项目一样,高效排查 Next.js 应用中的各类问题。🐞。

weixin_44058951的博客 1161

WebRTC & Android 开发学习环境搭建~

最近开始折腾 WebRTC 了。先介绍一下 WebRTC 源码编译以及 Android 开发环境的搭建。整个下载编译过程都需要能够正常访问外网,这需要自己想办法克服了。安装 depot_...

音视频开发进阶 1133

Android汽车服务篇(一) CarService

本文主要说明了CarService这一系统服务的启动流程,以及一些关键成员的创建和初始化流程.同时简单介绍了一下客户端是如何获取和使用CarService对象, 如上文介绍的, CarService对象只是获取各个Manager的媒介,它本身并不承担管理传感器.空调等具体的任务.如果要获取车辆的相关信息,如车速, 车内空调温度,诊断信息, 或对车辆进行相关的控制,如升高和降低空调温度,控制座椅和车窗, 调节音量等,就要通过具体的Manager中的API和对应的服务来实现了.

u012514113的专栏 8148

WebRTC所有平台下载编译步骤详细说明

WebRTC所有平台下载编译步骤详细说明 1、安装depot tools Windows: 国外下载:https://storage.googleapis.com/chrome-infra/depot_tools.zip 下载完把压缩包解压,然后把解压目录加入PATH环境变量 Linux(Android)/Mac(IOS): 安装git 国外:git clonehttps://chro...

程序猿老樊的博客 1568

GEO数据库数据下载方法总结

#GEO数据下载 GEO是生信分析经常用到的数据库。经常需要从中获取表达矩阵,平台信息,meta信息等,本博文总结了几种下载GEO数据的方法,各有优劣,实际应用过程中自行选择适合自己的。 ##方法一:直接从浏览器中下载 以数据集GSE1001为例, 可以直接点击“Series Matrix Files”获取该样本txt格式的表达谱数据,一般我们认为这种处理过的表达谱数据是没有问题的,当然,具体情况具体分析。 打开下载的文件可以看到许多“#”开头的行,这些是注释信息,一般关注这些注释信息中的“data pr

sakoko_的博客 4万+

uniapp 使用摄像头 live-pusher (APP)

uniapp 中开发 app 时使用live-pusher踩过的坑

随身笔记 1万+

webrtc编译

WebRTC Android版本编译 https://www.cnblogs.com/Hi-blog/p/11311141.html webrtc编译调试 https://blog.youkuaiyun.com/zhuiyuanqingya/article/details/81449982

sun007700的专栏 530

Amazon SES 移出沙盒完整指南 & 高通过率模板

AWS SES沙盒模式转正式模式申请指南 申请正式模式需通过AWS审核,常见被拒原因包括邮件用途不清晰、缺少退订机制或发送量不合理。人工申诉需登录AWS Support Center提交服务限额提升请求,填写详细的公司信息、邮件用途及合规措施。 高通过率申诉模板需包含: 公司信息:名称、网址及与AWS的合作情况。 邮件规范:明确类型(交易/营销)、退订链接及退信处理机制。 发送计划:合理预估发送量,确保合规。 关键点:真实信息、用途清晰、退订机制完善、发送量合理。首次被拒可修改后重新提交。

xianyinsuifeng的博客 329

编译Android版的WebRTC

写在前面 最近有兴趣研究一下webrtc,由于这几年一直有基于chromium浏览器的源码开发,在src/third_party下是能看到webrtc的目录的,只是一直没有真正单独编译过webrtc,国庆期间在家闲着编译了一把,现在把步骤记录一下。 ...

老王的技术博客 4810

Yolov8-pose关键点检测:通用倒瓶颈(UIB)搜索块结合C2f二次创新 | 轻量化之王MobileNetV4

通用倒瓶颈(UIB)搜索块结合C2f二次创新

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 613

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

webrtc所有平台下载编译步骤详细说明

webrtc所有平台下载编译步骤详细说明 1、安装depot tools Windows: 国外下载:https://storage.googleapis.com/chrome-infra/depot_tools.zip 下载完把压缩包解压,然后把解压目录加入PATH环境变量 Linux(Android)/Mac(iOS): 安装Git 国外:git clonehttps://chromium.googlesource.com/chromium/tools/depot_tools.git 国内:gi.

paradox_1_0的博客 308

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

webrtc在各个平台的编译

webrtc所有平台下载编译步骤详细说明 今忆Zoe关注 0.6922017.10.27 15:39:25字数 659阅读 7,220 1、安装depot tools Windows: 国外下载:https://storage.googleapis.com/chrome-infra/depot_tools.zip 下载完把压缩包解压,然后把解压目录加入PATH环境变量Linux(And...

u010029439的博客 541

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何搭建音视频通信系统——Android篇

在之前的文章里,图鸭君和大家介绍了ios系统下的音视频通信系统的搭建以webrtc和tucodec两个开源技术为例。今天就来再来和大家说一下,基于这两款免费的音视频通信系统,如何在Android上进行搭建。 webrtc 一、准备 1 网络环境webrtc官网:webrtc.org准备好稳定的VPN工具 2 下载depot_tools...

weixin_33890526的博客 188

基于WebRTC M53 的Android库编译流程

WebRTC编译流程,主要参考webrtc.org的编译帮助说明整理

BlueMug的博客 1006

Webrtc Android源码编译以及libwebrtc源码抽取

Webrtc Android 编译

DevilLee的专栏 2365

webrtc教程

http://blog.youkuaiyun.com/kl222/article/details/17198873   cdsn博客不支持word文件,所以这里显示不完全。可到本人资源中下载word文档:http://download.youkuaiyun.com/detail/kl222/6677635 下载完后评论,可以返还你的积分。此文档还在完善中,欢迎大家交流,共同完善。 Webrtc  教

孙建军的博客 3361
上一篇: 生产者--消费者模式,理解多线程并发
下一篇: XML基础
Stone_OverLooking
博客等级 码龄10年 223粉丝 151原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值