GithubHelp home page GithubHelp logo

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: [email protected] [email protected]
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

metartc's Projects

yangwebrtc icon yangwebrtc

A cross-platform WebRTC/RTMP/SRT SDK base on metaRTC

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.