Skip to content

muwe/metaRTC

This branch is 3 commits ahead of, 9 commits behind metartc/metaRTC:develop.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

41d3fe2 · Mar 10, 2024
Feb 1, 2024
Mar 10, 2024
Mar 10, 2024
Mar 10, 2024
Mar 10, 2024
Jul 30, 2023
Mar 10, 2024
May 3, 2022
Mar 10, 2024
Mar 24, 2023
May 6, 2023
Feb 9, 2024
Jul 30, 2023
Jul 30, 2023
Mar 24, 2023

Repository files navigation

MetaRTC Overview

Code once run everywhere, A pure C version of webRTC
MetaRTC是一个跨平台的webRTC SDK,更适合嵌入式/物联网的webRTC应用
MetaRTC is a cross-platform webRTC SDK, more suitable for embedded/Internet of Things webRTC applications.

Key Features

  • Audio/Video Support

    • H264/H265(HEVC)
    • OPUS/G711A/G711U/AAC/MP3/SPEEX
    • AEC/ANS/AGC/VAD/CNG
  • DataChannels

  • NACK/PLI/FIR/FEC/TWCC

  • STUN/TURN Support

  • IPv4/IPv6

  • Whip/Whep

  • Linux/Windows/Mac/Android/IOS

  • ARM/MIPS/Loongson/RISC-V/X86

  • MP4/FLV Recording

    • AAC/H264
    • AAC/H265(HEVC)
  • Qt/Flutter/Lvgl/Native

New Features

flutter ui demo

demo/metaplayer7_flutter

download: https://github.com/metartc/metaRTC/releases/tag/7.0.072 file:metartc7.072.linux.7z

lvgl ui demo

demo/metaplayer7_lvgl

download: https://github.com/metartc/metaRTC/releases/tag/7.0.050 file:metartc7.062.linux.lvgl.7z

module

libmetartccore7(pure C)

Implementation of webRTC protocol stack
AEC/ANS/AGC and other audio and video processing libraries

libmetartc7(C++)

Realize audio and video collection, encoding, decoding, transmission, rendering, and push-pull streaming

Dependencies

To compile libmetartccore7, you'll need to satisfy the following dependencies:
OpenSSL or Mbedtls
libsrtp
usrsctp

Peer connect demo

int32_t err = Yang_Ok;
char* localSdp=NULL;
char* remoteSdp=NULL;
yangbool enableWhipWhep = yangtrue; 
YangRtcDirection direction = YangSendonly;//YangSendrecv,YangSendonly,YangRecvonly
YangPeerConnection *peer = (YangPeerConnection*)yang_calloc(sizeof(YangPeerConnection),1);
yang_create_peerConnection(peer);
peer->addAudioTrack(&peer->peer,Yang_AED_OPUS);
peer->addVideoTrack(&peer->peer,Yang_VED_H264);
peer->addTransceiver(&peer->peer,direction);
//sfu server
if(enableWhipWhep)
     err = peer->connectWhipWhepServer(&peer->peer,url);
else
     err = peer->connectSfuServer(&peer->peer);
//p2p
peer->createDataChannel(&peer->peer);//add datachannel
if((err=peer->createOffer(&peer->peer, &localSdp))!=Yang_Ok){
    yang_error("createOffer fail!");
    goto cleanup;
}
if((err=peer->setLocalDescription(&peer->peer, localSdp))!=Yang_Ok){
    yang_error("setLocalDescription fail!");
    goto cleanup;
}
......
//get remote peer sdp
if((err=peer->setRemoteDescription(&peer->peer,remoteSdp))!=Yang_Ok){
    yang_error("setRemoteDescription fail!");
    goto cleanup;
}

metaRTC服务支持(service support)

微信号: taihang82
email: yangrtc@aliyun.com yangrtc@outlook.com
twitter: metaRTC@metartc_sdk

metaRTC微信公众号

gzh2

metaRTC问答星球

xingqiu2
https://t.zsxq.com/0cfpXQYoX

Compile

linux/android

cmake

./cmake_lib_x64.sh

./cmake_lib_android.sh

module

./cmake_mips32.sh

#arm64

./cmake_arm.sh

./cmake_x64.sh

#arm64-v8a armeabi x86_64

./cmake_android.sh

Qt

libmetartccore7/libmetartccore7.pro

libmetartc7/libmetartc7.pro

windows

visual studio

project_msvc/

Qt(msvc)

libmetartccore7/libmetartccore7.pro

libmetartc7/libmetartc7.pro

mac/ios

xcode

project_xcode/

demo compile

Qt demo

demo/metapushstream6/metapushstream7.pro
demo/metaplayer6/metaplayer7.pro

android demo

android studio ide(api:29)
demo/metapushstream7_android
demo/metaplayer7_android

metaRTC streams to janus via the whip protocol

https://github.com/metartc/metaRTC/wiki/metaRTC-streams-to-janus-via-the-whip-protocol

Learning metaRTC

https://github.com/metartc/metaRTC/wiki/metaRTC-Learning

MetaRTC vs webrtc

https://github.com/metartc/metaRTC/wiki/metaRTC-vs-webrtc

metaRTC features

https://github.com/metartc/metaRTC/wiki/metaRTC-Features

About

A cross-platform webRTC SDK

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 68.3%
  • C++ 29.9%
  • QMake 0.9%
  • Objective-C++ 0.5%
  • CMake 0.3%
  • Shell 0.1%