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工具的作者宣布了不 ...
随机推荐
- get请求被浏览器跨域的同源策略请求机制拦截,但是get请求是否请求到了服务器呢
浏览器会拦截跨域请求,但是只是拦截返回结果,请求还是会被发送到服务器. 请求因为跨域被拦截后,会改成 OPTIONS 请求送达服务器,这样服务器就可以知道有人在请求.
- centos7 7.3php编译安装
1.首先更新依赖包. yum -y update 2.安装依赖包 yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bz ...
- struct socket结构体详解
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://weiguozhihui.blog.51cto.com/3060615/15852 ...
- CCF-CSP题解 201812-3 CIDR合并
题目想求与给定前缀列表等价的包含IP前缀数目最少的前缀列表. 首先是怎么存储前缀列表.用一个long long存储IP地址,再存一个前缀长度,封装在一个结构体里\(<ipNum, len> ...
- LeetCode529. 扫雷游戏 Python3 DFS+BFS+注释
https://leetcode-cn.com/problems/minesweeper/solution/python3-dfsbfszhu-shi-by-xxd630/ 规则: 'M' 代表一个未 ...
- GitHub 上的 12306 抢票神器,助力回家过年
又到周末了,不过本周末有些略微的特殊. 距离每年一次的全球最大规模的人类大迁徙活动已经只剩下一个多月了,各位在外工作一年的小伙伴大多数人又要和小编一样摩拳擦掌的对待史上最难抢的抢票活动. 然鹅,身为一 ...
- 解压小游戏之打砖块(C#+unity)
z这个小游戏很简洁,很简单,非常适合一个人玩,特别减压
- Android动态添加碎片
我们编写一个能够用过按钮动态更替碎片的APP,首先在主页上显示第一个碎片,点击按钮后可以替换到第二个碎片,或者删除已经替换掉的第二个碎片. 一.MainActivity.java import and ...
- adb shell常用命令
一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容-n:显示行号-b:显示行号,但 ...
- Android 自定义吐司通知
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV ...