metaRTC3.0稳定版本编译指南

Posted metaRTC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了metaRTC3.0稳定版本编译指南相关的知识,希望对你有一定的参考价值。

概述

metaRTC2.0经历了127个版本更新,metaRTC3.0经历了73个版本更新,metaRTC也缺乏一个系统性的编译指南,这是一篇在metaRTC3.0迎来第一个稳定发布版本时系统性的介绍metaRTC的编译文章。

metaRTC支持非加密传输,编译时不需要openssl和srtp2类库。

下载源码

Release Release v3.0-b0 · metartc/metaRTC · GitHubWebrtc SDK for pure C. Contribute to metartc/metaRTC development by creating an account on GitHub.https://github.com/metartc/metaRTC/releases/tag/v3.0-b0https://gitee.com/metartc/metaRTC/releases/v3.0-b0https://gitee.com/metartc/metaRTC/releases/v3.0-b0

目录结构

 bin目录

 

静态库目录

windows静态库:lib_win_debug/lib_win_release

linux静态库目录:lib_debug/lib_release

android静态库目录:lib_android

windows执行文件目录app_win_debug/app_win_release

 

注意:动态库都在lib目录下,不要放到其他位置。

linux执行文件目录app_debug/app_release

 注意:动态库都在lib目录下,不要放到其他位置。

thirdparty目录

注意:user_include目录里是openssl/ffmpeg/srtp2头文件,换成自己编译的头文件

 thirdparty/lib目录

libmetartccore3

webrtc/rtmp 协议实现和基础应用C类库,可集成到ffmpeg
如果平台已有采集和编解吗,只需要libmetartccore3即可,不需要libmetartc3

libmetartc3

实现采集、编码、解码、传输(SRT实现)以及推拉流等实现

metapushstream3/metapushstream3_android

推流和录制 demo metapushstream3_android为安卓版

metaplayer3/metaplayer3_android

拉流demo,metaplayer3_android为安卓版

metap2p3

p2p demo,支持一对一和一对多,metaplayer3可直接从metap2p3拉流
和metapushstream3与metaplayer3不同,metap2p3支持全双工,即一个连接同时支持推拉流

yangwincodec

nvidia/intel gpu编码

windows/linux编译

remark:windows版本所提供类库均为vs2019编译,如需换其他vs版本,开发者需重新编译

remark:linux版本demo需安装两个库:

sudo apt install libasound2-dev
sudo apt install libgl1-mesa-dev

 解压windows版或者linux版,按照下面视频操作步骤,搭建好qt环境,不需要做参数调整,只需要操作鼠标几分钟即可编译成功。

metartc(yangwebrtc)windows版本编译教程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1d3411r742/

安卓编译

安卓编译推荐在linux下,首先配置参数

配置参数后
cd libmetartc
./cmake_android.sh

cd libmetartccore
./cmake_android.sh

编译后libmetartccore3.a和libmetartc3.a两个静态库文件放置于bin/lib_android/arm64-v8a或者bin/lib_android/x86_64等。

 然后打开安卓开发工具studio.sh打开metapushstream3_android/metaplayer3_android两个工程编译即可。

ARM编译

metaRTC(ARM linux64)编译指南_metaRTC的博客-CSDN博客https://blog.csdn.net/m0_56595685/article/details/123900651

非加密传输设置

metaRTC支持非加密传输,但只能在metaRTC之间进行通信。

metaRTC支持非加密传输,编译时不需要openssl和srtp2类库。

修改文件include/Yang_Config.h配置参数Yang_HaveDtls,将其设置为0即可

metaRTC嵌入式webrtc编译指南

概述

       开源项目编译和适配对于很多开发者来说是个难关,大部分开发者都被卡在这一步。metaRTC适用于嵌入式开发,但嵌入式环境多样性是个挑战,要适应X86、ARM、MIPS、RISC-V等多种架构,我们会努力加强编译易用性。

          metaRTC编译支持qmake和cmake,qmake使用QT最为方便,新版本又新增了cmake支持,cmake的支持要感谢网友醉生梦死的贡献。

下载源码

https://github.com/metartc/metaRTC/releases/tag/2.0.070https://github.com/metartc/metaRTC/releases/tag/2.0.070https://gitee.com/metartc/metaRTC/releases/2.0.070https://gitee.com/metartc/metaRTC/releases/2.0.070

 metartc2.thirdparty.7z为第三方库源代码,yangh264decoder.7z为精简的ffmpeg h264解码库

编译

libmetartc cmake编译

下载源码和第三方类库后,进入工程libmetartc2目录

建立文件夹build

cd build

cmake ..

make

生成的库文件libmetartc2.a和libmetartc2.so就在build文件夹里,静态库2Mb多,动态库1Mb多。

QT编译

用QT载入libmetartc2工程,直接编译即可。

编译后文件在bin/lib_debug或者bin/lib_release目录下。

拉流demo QT版本:metaplayer2

推流demo QT版本:metapushstream2

用QT载入工程metaplayer2和metapushstream2,编译libmetartc2后,再编译这两个工程即可。

第三方库编译

yangh264decoder编译

解压yangh264decoder.7z,进入源码文件夹

新建文件夹 mkdir build

cd build

cmake ..

make

其他第三方库编译

第三方库在metartc2.thirdparty.7z

 第三方基本库:openssl,libsrtp2,opus

第三方编码库:x264,x265,libyuv(可选)

第三方AEC等音频库:speexdsp

第三方mp4录制(h264/h265)库:mp4v2

编译:

./configure

make

make install

以上是关于metaRTC3.0稳定版本编译指南的主要内容,如果未能解决你的问题,请参考以下文章

今晚七点metaRTC的发展和应用场景探讨

CentOS 7 編譯qBittorrent Web UI安裝指南

4期Web安全基础

Apache源码编译安装脚本

高性能Web服务器Nginx使用指南

FFMPEG音视频开发指南