Code Monkey home page Code Monkey logo

yangwebrtc's Introduction

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

yangwebrtc's People

Contributors

yangrtc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yangwebrtc's Issues

libplayer.so', missing and no known rule to make it

HI 大家编译的时候是否遇到这个问题

IDE:Android Studio Giraffe | 2022.3.1 Patch 2
JAVA: JetBrians Runtime Version 17.0

FAILURE: Build completed with 2 failures.

1: Task failed with an exception.

  • What went wrong:
    Execution failed for task ':app:buildCMakeDebug[arm64-v8a]'.

Build command failed.
Error while executing process /Users/aiquantong/Library/Android/sdk/cmake/3.18.1/bin/ninja with arguments {-C /Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/metaplayer5_android/app/.cxx/Debug/4753253o/arm64-v8a player}
ninja: Entering directory `/Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/metaplayer5_android/app/.cxx/Debug/4753253o/arm64-v8a'

ninja: error: '/Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/bin/lib_android/arm64-v8a/libmetartc5.a', needed by '/Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/metaplayer5_android/app/build/intermediates/cxx/Debug/4753253o/obj/arm64-v8a/libplayer.so', missing and no known rule to make it

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    ==============================================================================

2: Task failed with an exception.

  • What went wrong:
    Execution failed for task ':app:buildCMakeDebug[x86_64]'.

Build command failed.
Error while executing process /Users/aiquantong/Library/Android/sdk/cmake/3.18.1/bin/ninja with arguments {-C /Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/metaplayer5_android/app/.cxx/Debug/4753253o/x86_64 player}
ninja: Entering directory `/Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/metaplayer5_android/app/.cxx/Debug/4753253o/x86_64'

ninja: error: '/Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/bin/lib_android/x86_64/libmetartc5.a', needed by '/Users/aiquantong/Documents/AndroidOpenSource/yangwebrtc/metaplayer5_android/app/build/intermediates/cxx/Debug/4753253o/obj/x86_64/libplayer.so', missing and no known rule to make it

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    ==============================================================================

  • Get more help at https://help.gradle.org

BUILD FAILED in 6s

webRTC推流部分

看了下项目大概结构,webRTC的推流实现部分是封在libYangAVLib2.a库里吗?

您好!可以提供一个demo项目吗

我这里配置这个项目有点问题
目前发现需要将.pro文件中的HOME_BASE设置为主目录的绝对路径才行
看readme中的说法,我先运行lib项目,再运行player项目,输入rtmp的链接,程序会crash掉。
之后我将预编译的dll库移入bin中程序表现正常了些。
另外需要将UI的大小拉大,才会有许多的运行代码提示,否则也是会crash掉。尽管有许多提示,但是最后也是crash,有点迷惑了。
环境搭建有些吃力,希望博主给个运行demo!

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.