概述
谷歌webrtc系統龐大,代碼復雜,第三方類別庫眾多,而且很多演算法對cpu要求很高,而嵌入式芯片性能大多比較差,其算力滿足不了谷歌webrtc要求,metaRTC為了滿足嵌入式編程也下足了功夫,
metaRTC支持32位和64位編程,支持H264和H265,核心大部分為C實作,少部分為C++實作,為了降低第三方庫適配復雜性,很多功能都自己實作并未呼叫第三方庫,
第三方類別庫
谷歌webrtc參考了大量的第三方類別庫,這些第三方類別庫的適配是個非常痛苦的事情,有些嵌入式是32位有些是64位,這些重量級的第三方類別庫對嵌入式就是個很大的負擔,
行內人士都在喊編程不要重復造輪子,但這些輪子都是重量級的,嵌入式有限的算力怎么辦?
還記得log4j的影響嗎?
為了適應嵌入式編程,metaRTC做的作業就是在減輪子,減少第三方庫的呼叫,
metaRTC實作第三方類別庫功能
- 實作了簡易的HTTP協議,去掉libcurl呼叫
- 實作了簡易的JSON,去掉json呼叫
- 實作了YUV等格式轉換和伸縮,可以去掉libyuv
- 實作了解碼的簡易庫yangh264decoder 可以去掉ffmpeg
推流需要的第三方庫
- 編碼器 x264或x265 ,如果有硬編則不需要
- openssl庫,libssl/libcryto
- srtp庫
- opus庫
拉流需要的第三方庫
- 解碼器 yangh264decoder/ffmpeg 如有硬解則不需要
- openssl庫,libssl/libcryto
- srtp庫
- opus庫
第三方庫選項
在include目錄里Yang_Config.h頭檔案里
#define Yang_HaveWebsockets 0 //using libwebsockets
#define Yang_HaveCurl 0 //using libcurl
#define Yang_HaveJson 0 //using jsonlib

下載原始碼和類別庫
https://github.com/metartc/metaRTC/releases/tag/2.0.066
https://github.com/metartc/metaRTC/releases/tag/2.0.066
https://gitee.com/metartc/metaRTC/releases/2.0.066
https://gitee.com/metartc/metaRTC/releases/2.0.066
metartc2_linux_runtime.7z為所需第三方庫

編譯參考視頻
metartc(yangwebrtc)windows版本編譯教程_嗶哩嗶哩_bilibili
https://www.bilibili.com/video/BV1d3411r742/
webrtc服務器
推薦SRS4.0最新版本,編譯參考http://github.com/ossrs/srs#usage
objs/srs -c conf/https.rtc.conf 或者
objs/srs -c conf/rtc.conf
可支持webrtc/rtmp/hls/srt/httpflv等直播,
H265 webrtc服務器
GitHub - metartc/srs-webrtc265
https://github.com/metartc/srs-webrtc265
metartc/srs-webrtc265
https://gitee.com/metartc/srs-webrtc265編譯同上
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/385684.html
標籤:其他
上一篇:配置 PyCharm for Linux 設定啟動圖示 pycharm-edu-2021.3.1 Ubuntu 18.04.6 LTS
