yangrtc实现了webrtc协议,支持webrtc/srt/rtmp,提供纯C和C++两种版本接口。
webrtc支持为原创,没有引用谷歌webrtc代码,可与谷歌Webrtc库和浏览器互通。
支持windows/linux/android等
webrtc实现基于metaRTC https://github.com/metartc/metaRTC
Remark:metaRTC3.0/metaRTC4.0等停止更新,推荐使用稳定版metaRTC5.0
Remark:metaRTC5.0为稳定版本
可加微信taihang82
https://github.com/metartc/metaRTC/wiki/metaRTC-Learning
https://github.com/metartc/metaRTC/releases/tag/v5.0-b5
https://github.com/metartc/metaRTC/releases/tag/v5.0-b1
https://github.com/metartc/metaRTC/wiki/metaRTC5.0-API
https://github.com/metartc/metaRTC/wiki/metaRTC5.0-API-Sample
webrtc编译难,仓库几十个G。
metaRTC代码量小,编译简单。
而metartc在B站有完整的编译教程和视频。
webrtc使用c++开发,体积大,不适合嵌入式。
metartc大多数使用c语言开发,天生适合嵌入式。
webrtc是谷歌开发,代码量大,二次开发难度大。
meta代码量小,二次开发难度小,并且有完整的国人社区。
metaRTC无缝兼容SRS和ZLM,代码整合了其信令交互。
metaRTC已经实现了国密gmssl支持 。
metaRTC实现了对龙芯的支持,将来将支持更多的国产芯片。
嵌入式算力弱,不适合webrtc
嵌入式开发人员纯C开发人员多
第三代互联网为元宇宙
支持元宇宙的穿戴设备算力弱,更适合metaRTC
H265比H264可以节省一半的带宽,H265生态在国内比较成熟,如安防等很多行业芯片都支持H265编码。
metaRTC支持H265版webrtc
metaRTC提供支持H265的SRS(http://github/metartc/srs-webrtc265)
metap2p工程内置信令服务,信令处理均为纯C实现。
支持datachannel/websocket/http
集成ffmpeg使ffmpeg支持webrtc推拉流和p2p
metaRTC集成FFmpeg新版本支持回声消除等AEC/AGC/ANC功能
- video encoding 8bit:x265, vaapi, nvenc, etc。
- video encoding 10bit:x265、vaapi、nvenc,etc。
- video decoding:ffmpeg or yangh264decoder。
- VR:基于抠图实现虚拟视频的互动和录制、直播等。
- 8bit和10bit网络播放器:yangplayer
- audio:Opus、Aac、Speex、Mp3 and other audio codecs。
- audio:AEC、AGC、ANS and SOUND SYNTHESIS 声音合成等处理。
- transport:webrtc、rtmp、srt,webrtc is non-google lib。
- live:rtmp、srt、webrtc、HLS、HTTP-FLV。
- 8bit recording:hh264, h265 mp4 and flv。
- 10bit recording:h265 mp4
- screen sharing and control 实现了屏幕共享与控制。
- a variety of processing of sound and images is realized 实现了声音和图像多种处理。
- professional camera gimbal control with multi-lens guide switching 专业摄像头的云台控制与多镜头导播切换。
- supports both 32-bit and 64-bit programming 支持32位和64位编程。
音视频应用: 视频会议/录播直播/直播互动 IPC/云游戏/云3D/元宇宙RTC
行业应用: 远程教育/远程医疗/远程办公 指挥调度/安防监控/金融 视频AI/影视录播/电商直播
可内置信令服务
实现一对多直播
实现浏览器p2p通信
实现双向对讲和会议
metaRTC4.0支持WEBRTC/RTMP/SRT/
metaRTC5.0将支持RTSP/GB2811/QUIC
支持ARM-Linux
支持ARM-Android
提供ARM编译脚本
提供第三方ARM编译文档
webrtc/rtmp 协议实现和基础应用C类库,可集成到ffmpeg
如果平台已有采集和编解吗,只需要libmetartccore即可,不需要libmetartc
实现采集、编码、解码、传输(SRT实现)以及推拉流等实现
推流和录制 demo metapushstream3_android为安卓版
拉流demo,metaplayer_android为安卓版
p2p demo,支持一对一和一对多,metaplayer3可直接从metap2p拉流
和metapushstream与metaplayer不同,metap2p支持全双工,即一个连接同时支持推拉流
nvidia/intel gpu编码
修改配置文件include/yang_config.h 设置Yang_Enable_Openh264为0
修改配置文件yang_config.ini enc项 createMeta=1
或者程序设置m_context->avinfo.enc.createMeta=1
sudo apt install libasound2-dev
sudo apt install libgl1-mesa-dev