All Projects → metartc → yangwebrtc

metartc / yangwebrtc

Licence: MIT License
Webrtc SDK for C++

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to yangwebrtc

VideoCodecKit
iOS macOS 编解码库 脱离ffmpeg等外部依赖 支持H.264 H.265裸流播放 硬件编解码 rtmp推流等
Stars: ✭ 78 (-69.65%)
Mutual labels:  h264, rtmp, h265
smart rtmpd
RTMP server, smart, compact, high performance(c, c++), high concurrency, easy to maintain, easy to deploy, (supports multiple operating systems Windows and Linux, ARM, FreeBSD)
Stars: ✭ 159 (-38.13%)
Mutual labels:  h264, rtmp, h265
Srs
SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT and GB28181.
Stars: ✭ 16,734 (+6411.28%)
Mutual labels:  rtmp, webrtc, srt
Analysisavp
音视频学习,相关文件格式/协议分析。h264 nalu aac adts flv
Stars: ✭ 38 (-85.21%)
Mutual labels:  h264, rtmp, webrtc
Ksylive ios
金山云直播SDK [ iOS推流+播放 ]融合版 支持美颜滤镜(Beauty Filter)、美声(Beauty Voice)、软硬编(Software/Hardware Encoder) 、网络自适应(Network Auto Adapt)、混音(Audio Mixer)、混响(Reverb)、画中画(PIP)
Stars: ✭ 861 (+235.02%)
Mutual labels:  h264, rtmp, h265
Nginx Http Flv Module
Media streaming server based on nginx-rtmp-module. In addtion to the features nginx-rtmp-module provides, HTTP-FLV, GOP cache and VHOST (one IP for multi domain names) are supported now.
Stars: ✭ 2,063 (+702.72%)
Mutual labels:  h264, rtmp
Digital video introduction
A hands-on introduction to video technology: image, video, codec (av1, vp9, h265) and more (ffmpeg encoding).
Stars: ✭ 12,184 (+4640.86%)
Mutual labels:  h264, h265
Nodeplayer.js
Pure JavaScrip HTML5 live stream player
Stars: ✭ 157 (-38.91%)
Mutual labels:  h264, h265
uci
Ultra Compact Image (UCI)
Stars: ✭ 79 (-69.26%)
Mutual labels:  h264, h265
Wxinlineplayer
🤟Super fast H.264/H.265 FLV player
Stars: ✭ 873 (+239.69%)
Mutual labels:  h264, h265
Haishinkit.swift
Camera and Microphone streaming library via RTMP, HLS for iOS, macOS, tvOS.
Stars: ✭ 2,237 (+770.43%)
Mutual labels:  h264, rtmp
demuxer
A tool for demux ts/mp4/flv by typescript. Support HEVC/AVC/AAC codec
Stars: ✭ 108 (-57.98%)
Mutual labels:  h264, h265
Rtmp
RTMP Server , RTMP Pusher , RTMP Client
Stars: ✭ 119 (-53.7%)
Mutual labels:  h264, rtmp
Testing Video
Generator of test video files for testing your media playback devices and calibrate TV sets
Stars: ✭ 70 (-72.76%)
Mutual labels:  h264, h265
rrtsp client
Rust high level RTSP client
Stars: ✭ 12 (-95.33%)
Mutual labels:  h264, h265
colab-ffmpeg-cuda
FFmpeg build with CUDA support for Linux (especially for Google Colab)
Stars: ✭ 40 (-84.44%)
Mutual labels:  h264, h265
tms
tms(toy media server) is a toy media server for myself learning media develop. Just for fun.
Stars: ✭ 29 (-88.72%)
Mutual labels:  rtmp, srt
Rtsp Simple Server
ready-to-use RTSP / RTMP server and proxy that allows to read, publish and proxy video and audio streams
Stars: ✭ 882 (+243.19%)
Mutual labels:  h264, rtmp
Nager.VideoStream
Get images from a network camera stream or webcam
Stars: ✭ 27 (-89.49%)
Mutual labels:  h264, h265
RtmpPublishKit
rtmp publish kit for android , encode with mediacodec
Stars: ✭ 106 (-58.75%)
Mutual labels:  h264, rtmp

MetaRTC(yangwebrtc) Overview

MetaRTC(yangwebrtc)是一个自主研发的支持Webrtc/Srt/Rtmp的rtc架构,包含多种视音频编解码和处理等。
yangwebrtc为C++版本
metaRTC为纯C版本 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)微信群

加微信taihang82

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].