libwebrtc & libmediasoupclient编译
本文简单介绍在Ubuntu下libwebrtc的编译过程。
由于网速限制,实际编译过程是在远程vps上编译滴。
系统环境
Ubuntu 18.04系统的虚拟主机。
root@vultr:~# pwd
/root
root@vultr:~# cat /etc/issue
Ubuntu 18.04. LTS \n \l
编译webrtc
安装依赖工具
获取webrtc源代码需要使用Chromium depot tools。
root@vultr:~# git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git # 下载工具
export PATH=$PATH:/path-to/depot_tools # 添加到环境变量
# 临时添加,如
root@vultr:~# export PATH=$PATH:/root/depot_tools
# 添加到/etc/profile中,
root@vultr:~# vim /etc/profile
...
export PATH=$PATH:/root/depot_tools # 在文件最后一行添加,wq!退出
root@vultr:~# source /etc/profile # 使配置生效
这样便可使用相关命令了。
下载源代码
创建一个保存webrtc源代码的目录webrtc-checkout。
root@vultr:~# mkdir webrtc-checkout
root@vultr:~# cd webrtc-checkout
root@vultr:~/webrtc-checkout# apt install python -y # 需要python 支持
root@vultr:~/webrtc-checkout# fetch --nohooks webrtc # 获取和同步代码,下载量很大,约12G
root@vultr:~/webrtc-checkout# gclient sync &
Linux (Ubuntu/Debian)系统,在执行完gclient sync命令之后,还需执行如下命令:
root@vultr:~/webrtc-checkout# cd src
root@vultr:~/webrtc-checkout/src# ./build/install-build-deps.sh
Building
两种编译方式,具体解释可查看Building。
Debug模式:(本文采用这种模式)
root@vultr:~/webrtc-checkout/src# gn gen out/Default
Done. Made targets from files in 644ms
Release模式
gn gen out/Default --args='is_debug=false'
清理目录
gn clean out/Default
编译
大致需要编译一个小时左右。
root@vultr:~/webrtc-checkout/src# ninja -C out/Default

这样就编译出libwebrtc.a文件,编译结束。
root@vultr:~# du -sh *
170M depot_tools
17G webrtc-checkout
编译mediasoupclient
Requirements
POSIX or Windows based operating system
cmake >= 3.5
gcc and g++ >= 4.9 or clang (with C++ support)
如果是CentOS7系统的话,上面两项都不满足,版本较老,需要先升级,因此不太推荐在CentOS7系统上编译,比较繁琐,Ubuntu较方便。
编译
mediasoupclient依赖libwebrtc,具体编译过程可参考libmediasoupclient v3 Installation。
仅一点关于编译需稍微指出:
cmake . -Bbuild \
-DLIBWEBRTC_INCLUDE_PATH:PATH=PATH_TO_LIBWEBRTC_SOURCES \ # src源代码目录
-DLIBWEBRTC_BINARY_PATH:PATH=PATH_TO_LIBWEBRTC_BINARY # 编译出libwebrtc.a目录
此处的环境设置如下:
cmake . -Bbuild \
-DLIBWEBRTC_INCLUDE_PATH:PATH=root/webrtc-checkout/src \
-DLIBWEBRTC_BINARY_PATH:PATH=/root/webrtc-checkout/src/out/Default/obj
其它地方应该没什么大问题。
参考
https://webrtc.org/native-code/development/
https://mediasoup.org/documentation/v3/libmediasoupclient/installation/
libwebrtc & libmediasoupclient编译的更多相关文章
- 2015GitWebRTC编译实录12
2015.07.20 libjingle_peerconnection 编译通过[1382/1600 ] CXX obj/talk/app /webrtc/libjingle_peerconnecti ...
- webrtc编译
webrtc编译 最近研究 libmediasoupclient,而 libmediasoupclient 又依赖 libwebrtc,所以首先就想着先在windows上编译一个webrtc的库,先是 ...
- WebRTC音频预处理单元APM的整体编译及使用
正文 行的gnu静态库链接路径是针对NDK版本 r8d 的,如读者版本不匹配,请自行找到 libgnustl_static.a 静态库的路径进行替换. 3)本示例并不打算编译 WebRTC 的测试工程 ...
- Ubuntu18.04 从头开始编译 Android Native WebRTC
本文详细记录Mac下使用PD虚拟机安装ubuntu18.4桌面版,编译Android Native WebRTC的过程. 注意如果仅仅是使用WebRTC没必要手动编译源码,直接用官方提供的预编译包即可 ...
- TODO:macOS编译PHP7.1
TODO:macOS编译PHP7.1 本文主要介绍在macOS上编译PHP7.1,有兴趣的朋友可以去尝试一下. 1.下载PHP7.1源码,建议到PHP官网下载纯净到源码包php-7.1.0.tar.g ...
- Centos6.5下编译安装mysql 5.6
一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...
- CENTOS 6.5 平台离线编译安装 PHP5.6.6
一.下载php源码包 http://cn2.php.net/get/php-5.6.6.tar.gz/from/this/mirror 二.编译 编译之前可能会缺少一些必要的依赖包,加载一个本地yum ...
- CENTOS 6.5 平台离线编译安装 Mysql5.6.22
一.下载源码包 http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.22.tar.gz 二.准备工作 卸载之前本机自带的MYSQL 安装 cmake,编 ...
- Android注解使用之注解编译android-apt如何切换到annotationProcessor
前言: 自从EventBus 3.x发布之后其通过注解预编译的方式解决了之前通过反射机制所引起的性能效率问题,其中注解预编译所采用的的就是android-apt的方式,不过最近Apt工具的作者宣布了不 ...
随机推荐
- poj 2955 Brackets (区间dp基础题)
We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a ...
- 使用between操作符过滤数据
select prod_name,prod_price from products where prod_price between 5 and 10; 就可以查询处5-10之间的所有数据 betwe ...
- cookie与session django中间件
目录 一.什么是cookie 二.django中操作cookie 2.1 如何操作cookie 2.2 操作cookie 三.什么是session 四.django中操作session 4.1 创建c ...
- ASP.NET Core知多少(13):路由重写及重定向
背景 在做微信公众号的改版工作,之前的业务逻辑全塞在一个控制器中,现需要将其按厂家拆分,但要求入口不变. 拆分很简单,定义控制器基类,添加公用虚方法并实现,各个厂家按需重载. 但如何根据统一的入口参数 ...
- Nginx环境搭建与使用
一.背景 之前测试的项目前后端的"路由"(负责把前端发过来的请求转发到相应的后端服务上)要用Nignx来取代原来的tomcat的http server功能,做这个替换的原因是Nig ...
- 开源资产管理系统Snipe-IT
CentOS7安装IT资产管理系统Snipe-IT介绍资产管理工具Github:https://github.com/snipe/snipe-it官网:https://snipeitapp.com/D ...
- iOS----------证书的制作
https://developer.umeng.com/docs/66632/detail/66748#createappid Certificates-> 卫生许可证 identifiers ...
- 仿Inshot分享页图片圆形展开缩放动画
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/221 圆形展开缩放动画 关键代码: final Anima ...
- sqoop 安装与使用
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的 ...
- CentOS 7上的主机名设置和基本网络管理
主机名 CentOS 6 查看. # hostname 设置. # hostname NEW_NAME 设置完成后,xshell的会话中不会显示NEW_NAME,可通过重新登录会话来显示.不过实际上我 ...