第三方库说明 - housekeeper-software/soft GitHub Wiki
简介
SDK中一共使用到21个库,不同平台使用的情况略有区别。
详细
abseil-cpp
版本:20211102.0
google 开源的 C++ 基础库, 最低支持 C++ 14,为webrtc 所使用。
c-ares
版本:1.18.1
异步DNS解析,目前除了MT7628在使用,其他平台均未使用,但是编译系统需要头文件。
curl
版本:7.79.1
用于HTTP(S)请求,download/upload,还提供RTSP协议支持。
依赖:openssl
ffmpeg
版本:4.3.3
用于音视频编解码,图像格式转换等。
依赖:x264
jrtplib
版本:3.11.2
用于RTP协议传输。 作者已经宣布不再更新,后期考虑使用其他项目实现。
依赖:jthread
jsoncpp
版本:1.9.5
json c++ 解析库
libevent
版本:2.1.12
异步信号库,用于线程消息循环和异步网络通讯。
依赖: openssl
libexosip2
版本:5.1.1
用于sip协议实现。此项目有新版本,但没有更新,在android arm64上发现存在bug,所以放弃更新。
依赖: openssl
libwebsockets
版本: 4.3.0
用于websocket的实现。在室外机中用到。
依赖: openssl
libyuv
版本:最新版。rv1109使用去年的版本,因为rv1109 gcc编译器版本较低,无法编译新版本的汇编指令集。
用于YUV和RGB的图像格式转换。支持 SSE, AVX2, NEON等加速指令,速度超快。
lua
版本:5.3.4
用于lua脚本支持,在部署和代理中均有用到。
mp4v2
版本: 2.0.0
用于将 H264和AAC打包成mp4格式。在rv1109中用到
openssl
版本: 1.1.1c
用于加密和解密。为其他诸多库的依赖。本次编译去掉了ASM指令支持。
paho.mqtt
版本:1.3.9
mqtt协议实现。室外机中可能用到,目前已经转websocket协议。
pjproject
版本:2.9
完整的voip实现,项目中只用到pjnath,用于ICE协议实现。
protobuf-cpp
版本: 3.7.0
google protobuf协议格式的解析和编码
speex
版本: 1.2.0
speex 音频编解码,只在底座中用到
speexdsp
版本: 1.2.0,github上的版本,修正了arm64的neon指令的问题
音频重采样,回音消除算法等
sqlite
版本:3360000
sqlite数据库支持,只用在室外机
webrtc-aec3
版本:1.0,来自 freedesk,plusaudio
支持回音消除,重采样等
依赖:abseil-cpp
x264
版本:最新版
H264编译器,为ffmpeg使用。目前android和IOS均不使用,而是使用平台内置的编解码器。