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工具的作者宣布了不 ...
随机推荐
- Java中真的只有值传递么?
Java中真的只有值传递么? (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法. 1.基本类型或基本类型 ...
- 关于Manjaro+kde桌面Tim闪退的解决
文章目录 关于Manjaro+kde桌面Tim闪退的解决 参考 Tim 我的问题 QQ 我的问题 WeChat 我的问题 本文结束 关于Manjaro+kde桌面Tim闪退的解决 参考 https:/ ...
- CentOS6.8系统最小化安装
一.CentOS系统版本 CentOS-6.8-x86_64 二.安装系统 1.打开VMware主页点击创建虚拟机 2.选择镜像 3.启动虚拟机 4.键入回车键直接进行安装 5.按Tab键选择Skip ...
- CUDA架构及对应编译参数
NVIDIA CUDA C++ 编译器 nvcc 基于每个内核,既可以用来产生特定于体系结构的 cubin 文件,又能产生前向兼容的 PTX 版本. 每个 cubin 文件针对特定的计算能力版本,并且 ...
- C#程序编写高质量代码改善的157个建议【20-22】[泛型集合、选择集合、集合的安全]
建议20.使用泛型集合来替代非泛型集合 http://www.cnblogs.com/aehyok/p/3384637.html 这里有一篇文章,是我之前专门来介绍泛型的.我们应尽量的使用泛型集合.因 ...
- Zabbix Server 3.2
软件环境 Centos7.3 LAMP Zabbix 3.2 1. Installing repository configuration package Install the repositor ...
- linux源码安装mysql,shell编程学习,ubuntu
一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...
- springcloud Config 入门,带视频
疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] 前言 Crazy ...
- RedisSession (自定义)
RedisSession (自定义) 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Red ...
- python3内置函数回忆
1.数学运算类 # 1.数学运算类 # abs:计算绝对值 print(abs(-23)) # divmod,返回一个tuple,第一个值为商,第二个值为余数 print(divmod(10,4)) ...