Yangwebrtc - Webrtc Libary for PC, non-google lib

Overview

MetaRTC(yangwebrtc) Overview

MetaRTC(yangwebrtc)是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。
yangwebrtc为PC版本
metaRTC为嵌入式版本 https://github.com/metartc/metaRTC

支持视频会议、高清录播直播、直播互动、云游戏、云3D等多种视音频应用。
可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用。
webrtc支持为自主研发,非谷歌lib,兼容webrtc协议 ,可与谷歌Lib和浏览器互通
支持Srs sfu https://github.com/ossrs/srs/
支持Linux/Windows操作系统,android/ios/mac版本正开发中

MetaRTC(yangwebrtc)和谷歌 Webrtc的区别

针对于谷歌webrtc有以下优势

  • webrtc编译难,需要科学上网,仓库几十个G。 而metartc在B站有完整的编译教程和视频 在中国有自己的社区,解决开发者的使用问题

  • webrtc使用c++开发,体积大,不适合嵌入式。 metartc大多数使用c语言开发,天生适合嵌入式。

  • webrtc是谷歌开发,代码量大,二次开发难度大。 meta代码量小,二次开发难度小,并且有完整的国人社区。

  • webrtc是p2p的,没有服务端,而开源的服务端,五花八门,学习成本高,开发者经常纠结使用那个webrtc开源服务。metartc推荐使用srs 杨成立大佬开源的服务端(国人写的),当然如果你有自己的流媒体服务器也支持对接。

  • metartc更本土化,拥有自主的开发权,需要的功能和建议都可以提issue,会根据开发者的建议来更新迭代metartc

MetaRTC(yangwebrtc)功能

1、视频编码 8bit:x264、x265、vaapi、nvenc等,二期增加AV1和多种硬件编码。
2、视频编码 10bit:x265、vaapi、nvenc等。
3、视频解码:ffmpeg和yangh264decoder。
4、VR:基于抠图实现虚拟视频的互动和录制、直播等。
5、8bit和10bit网络播放器:yangplayer
6、音频:Opus、Aac、Speex、Mp3等音频编解码。
7、音频:AEC、AGC、ANS及声音合成等处理。
8、传输:webrtc、rtmp、srt,webrtc为自己实现,没使用谷歌lib库。
9、直播:rtmp、srt、webrtc、HLS、HTTP-FLV。
10、8bit录制:h264、h265的mp4和flv。
11、10bit录制:h265的mp4
12、实现了屏幕共享与控制。
13、实现了声音和图像多种处理。
14、专业摄像头的云台控制与多镜头导播切换。

目录简介

libyangrtc2

yangwebrtc基础类库,实现所有核心功能

yangpushstream2

webrtc推流系统demo

yangplayer2

webrtc拉流播放系统demo

yangwebrtc3.0规划

1、支持android/ios/mac等。
2、webrtc支持h265、av1等。
3、传输加密支持国密加密,修改srtp支持国密。
4、实现10位、16位全链路打通,从采集、编码、传输、解码、播放这些环节全部支持10/16位。

Getting Started

一定要看编译教程视频,不看一定会扑街!!!

Remark: Yangwebrtc2.0 is developing and not stable.

下载源码,推荐ubuntu或者win10

git clone https://github.com/metartc/metaRTC.git 

服务器部署

启动srs服务程序,下载编译参考http://github.com/ossrs/srs#usage

srs下载地址

https://github.com/ossrs/srs/releases/  
​objs/srs -c conf/https.rtc.conf  
​objs/srs -c conf/rtc.conf

客户端编译

编译教程视频

https://www.bilibili.com/video/BV1d3411r742/ https://github.com/metartc/yangrtc2/releases/tag/2.0.032_video

编译教程

gpu编码器搭建游戏教育等在线低延迟直播 https://blog.csdn.net/m0_56595685/article/details/121575105
搭建兼容webrtc的跨平台的云桌面 https://blog.csdn.net/m0_56595685/article/details/121410868
搭建虚拟背景和美颜webrtc直播系统 https://blog.csdn.net/m0_56595685/article/details/121575105
搭建视频会议 https://blog.csdn.net/m0_56595685/article/details/121304109
搭建H264和H265的MP4录制系统 https://blog.csdn.net/m0_56595685/article/details/121720754
搭建H265(HEVC)的webrtc应用 https://blog.csdn.net/m0_56595685/article/details/121880362

视频会议编译教程

https://blog.csdn.net/m0_56595685/article/details/121304109

编译

  • 用QT(推荐5.14.2及以上版本)打开工程`libyangrtc2、yangpushstream2、yangplayer2。
    QT下载地址:
    静态库需要三个,ssl/crypto/srtp2,目录里已经有编译好的,如果有问题请再编译新的, 然后顺序编译即可。
    Remark:ubuntu默认不支持opengl
sudo apt update
sudo apt-get install libgl1-mesa-dev  

编译后的二进制文件在当前bin目录下

debug目录

linux:bin/app_debug bin/lib_debug
windows:bin/app_win_debug bin/lib_win_debug

release目录

linux:bin/app_release bin/lib_release
windows:bin/app_win_release bin/lib_win_release

**remark:程序需要一些动态库才能运行,所需动态库在lib文件夹里,lib文件夹在runtime包中 **
**remark:如用qt调试,需将yang_config.ini和lib目录copy到debug和release目录下 **

windows qt debug dlls

图片

windows lib dlls

图片

linux lib so

图片

编译后生成可执行文件放入下载的运行环境即可运行

第三方系统源码

https://github.com/metartc/yangwebrtc/releases/tag/thirdparty2.0

里面不包含支持vr动态库,如需支持vr,下载opencv3

https://github.com/opencv/opencv/releases/tag/3.4.13 及以上版本

yang_config.ini配置参数https://github.com/metartc/yangrtc/wiki/config_file

yangwebrtc服务群

1225big

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

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

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

    opened by ThomasWind333 3
Releases(2.0.094)
Owner
meta
meta
OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

AirenSoft 1.5k Jul 2, 2022
Pear - WebRTC Toolkit for IoT/Embedded Device

Pear is a WebRTC SDK written in C. The SDK aims to integrate IoT/Embedded device with WebRTC applications.

null 553 Jun 22, 2022
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

ossrs 18.5k Jul 3, 2022
webrtc c++ library for mediasoup with full sfu c++ demo

项目说明: 本项目是基于mediasoup v3 版本 webrtc m84版本 的sfu的js版本修改成的c++版本,支持和js版本一样的完整demo功能,但是本项目是直接把worker进程代码集成 到了demo可以直接代码级别的调用,支持VC2019,xcode,CLion的开发环境,可以直接断

null 96 Jul 1, 2022
media server based on c++11, support webrtc/rtmp/httpflv/websocket flv

cpp_media_server A media server is writen by C++11, and the network io is writen by Boost.Asio. It support rtmp/httpflv/websocket(flv)/webrtc. preinst

Alex.CR 137 Jun 26, 2022
Lib kernel r/w

libkrw An attempt at standardising an iOS kernel r/w API. Background Under Mach/Darwin/XNU, task ports are an API that, among other things, let you re

Siguza 155 Jun 23, 2022
Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive is a free non-linear video editor for Windows, macOS, and Linux.

Olive Team 6.2k Jun 26, 2022
yangwebrtc is a self-developed rtc architecture supporting Webrtc/Srt/Rtmp, including a variety of video and audio codecs and processing, etc.

YangWebrtc Overview yangwebrtc是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。 支持视频会议、高清录播直播、直播互动等多种视音频应用。 可用于远程教育、远程医疗、指挥调度、安防监控、影视录播、协同办公、直播互动等多种行业应用

null 287 Jun 23, 2022
Simple useful interoperability tests for WebRTC libraries. If you are a WebRTC library developer we'd love to include you!

Overview This project aims to be a convenient location for WebRTC library developers to perform interoperability tests. Who can Participate The projec

Aaron Clauson 91 Jun 22, 2022
OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

OvenMediaEngine (OME) is a Streaming Server for Sub-Second Latency. It supports WebRTC, RTMP, SRT, MPEG-2 TS, RTSP as input, WebRTC, LL-DASH, MPEG-DASH, HLS as output.

AirenSoft 1.5k Jul 2, 2022
this lib with 26 template container and 10 kinds of algorithm, it is a good lib for study and usage

simple stl this lib simplify the achievement detail of common container, but add the container variety, the whole code partily follow Google Style. Em

wujiazheng 7 Mar 10, 2022
A fast phone number lib for Ruby (binds to Google's C++ libphonenumber)

MiniPhone A Ruby gem which plugs directly into Google's native C++ libphonenumber for extremely fast and robust phone number parsing, validation, and

Ian Ker-Seymer 144 Mar 26, 2022
A simple PoC to demonstrate that is possible to write Non writable memory and execute Non executable memory on Windows

WindowsPermsPoC A simple PoC to demonstrate that is possible to write Non writable memory and execute Non executable memory on Windows You can build i

Lorenzo Maffia 56 Jun 25, 2022
Blend between two non-concentric non-circular cones for use in a Pose Space system

BlurRelax Why does maya not have a smooth or relax deformer? They've got brushes, sure, but no deformers. This one is pretty fast. I've got it working

Tyler Fox 2 Dec 27, 2021
Pear - WebRTC Toolkit for IoT/Embedded Device

Pear is a WebRTC SDK written in C. The SDK aims to integrate IoT/Embedded device with WebRTC applications.

null 553 Jun 22, 2022
SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181.

ossrs 18.5k Jul 3, 2022
webrtc c++ library for mediasoup with full sfu c++ demo

项目说明: 本项目是基于mediasoup v3 版本 webrtc m84版本 的sfu的js版本修改成的c++版本,支持和js版本一样的完整demo功能,但是本项目是直接把worker进程代码集成 到了demo可以直接代码级别的调用,支持VC2019,xcode,CLion的开发环境,可以直接断

null 96 Jul 1, 2022
media server based on c++11, support webrtc/rtmp/httpflv/websocket flv

cpp_media_server A media server is writen by C++11, and the network io is writen by Boost.Asio. It support rtmp/httpflv/websocket(flv)/webrtc. preinst

Alex.CR 137 Jun 26, 2022
Share PC desktop to Raspberry Pi with WebRTC

Share PC desktop to Raspberry Pi with WebRTC

null 31 May 22, 2022
QtVerbalExpressions - This Qt lib is based off of the C++ VerbalExpressions library. [MIT]

QtVerbalExpressions Qt Regular Expressions made easy This Qt lib is based off of the C++ VerbalExpressions library by whackashoe. Testing if we have a

null 53 May 12, 2022
Lib kernel r/w

libkrw An attempt at standardising an iOS kernel r/w API. Background Under Mach/Darwin/XNU, task ports are an API that, among other things, let you re

Siguza 155 Jun 23, 2022
Single header lib for JPEG encoding. Public domain. C99. stb style.

tiny_jpeg.h A header-only public domain implementation of Baseline JPEG compression. Features: stb-style header only library. Does not do dynamic allo

Sergio Gonzalez 192 Jun 19, 2022
JSON lib for Lua

LuaJsonLib JSON 解析库 API 总览 名称 功能 value = Load(str) 将已编码的 JSON 对象解码为 Lua 对象 value = LoadFromFile(path) 将指定路径文件中已编码的 JSON 对象解码为 Lua 对象 str = Dump(value

Voidmatrix 11 Mar 26, 2021
C++ lib and CLI for playing media files on a Chromecast

castr - a CLI and C++ library to cast media files to Chromecast devices using the built in Default Media Receiver

null 31 Jun 19, 2022
This is another way to bypass the restriction of calling dl functions for system lib.

简介 在Android7.0以及以上的版本中,dlfcn.h头文件中dlopen, dlsym函数已经无法在系统库上使用。 比较常见的规避方法是,先通过maps文件找到so文件对应起始地址,然后通过解析elf 文件,得到函数的偏移量,起始地址加上偏移量就算出函数的真实地址。 具体实现方式是:Noug

Wind 51 Jun 23, 2022
FFVideo - an example FFmpeg lib, and wxWidgets Player with video filters and face detection

An example FFmpeg lib, and wxWidgets Player application with video filters and face detection, it is a no-audio video player intended for video experiments and developers learning how to code media applications.

Blake Senftner 20 Mar 26, 2022
Lite.AI 🚀🚀🌟 is a user-friendly C++ lib for awesome🔥🔥🔥 AI models based on onnxruntime, ncnn or mnn. YOLOX, YoloV5, YoloV4, DeepLabV3, ArcFace, CosFace, Colorization, SSD

Lite.AI ?????? is a user-friendly C++ lib for awesome?????? AI models based on onnxruntime, ncnn or mnn. YOLOX??, YoloV5??, YoloV4??, DeepLabV3??, ArcFace??, CosFace??, Colorization??, SSD??, etc.

Def++ 1.7k Jun 27, 2022
Lite.AI 🚀🚀🌟 is a user friendly C++ lib of 60+ awesome AI models. YOLOX🔥, YoloV5🔥, YoloV4🔥, DeepLabV3🔥, ArcFace🔥, CosFace🔥, RetinaFace🔥, SSD🔥, etc.

Lite.AI ?? ?? ?? Introduction. Lite.AI ?? ?? ?? is a simple and user-friendly C++ library of awesome ?? ?? ?? AI models. It's a collection of personal

Def++ 1.7k Jul 2, 2022
Small and dirty header-only library that supports user input with some more advanced features than in the standard lib.

dirty-term Small and dirty header-only library that supports user input with some more advanced features than in the standard lib. This small, lightwe

null 3 Apr 24, 2022