All Projects → Bepartofyou → janus-gateway-live

Bepartofyou / janus-gateway-live

Licence: MIT license
RTMP edge speed with janus-gateway

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to janus-gateway-live

Ffmpegandroid
android端基于FFmpeg实现音频剪切、拼接、转码、编解码;视频剪切、水印、截图、转码、编解码、转Gif动图;音视频合成与分离,配音;音视频解码、同步与播放;FFmpeg本地推流、H264与RTMP实时推流直播;FFmpeg滤镜:素描、色彩平衡、hue、lut、模糊、九宫格等;歌词解析与显示
Stars: ✭ 2,858 (+7421.05%)
Mutual labels:  rtmp, live, transcode
Go Oryx
The go-oryx is SRS++, focus on real-time live streaming load-balancer.
Stars: ✭ 608 (+1500%)
Mutual labels:  cdn, rtmp, live
ZLMediaKit
WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11
Stars: ✭ 7,790 (+20400%)
Mutual labels:  rtmp, live, rtp
mystery
WebRTC Server implemented by ❤️ Rust + Node.js.
Stars: ✭ 150 (+294.74%)
Mutual labels:  mcu, rtp, rtcp
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 (+318.42%)
Mutual labels:  cdn, rtmp
flutter-p2p-engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 93 (+144.74%)
Mutual labels:  cdn, live
Pearplayer.js
支持WebRTC的多源多协议混合P2P-CDN的流媒体播放器
Stars: ✭ 512 (+1247.37%)
Mutual labels:  cdn, live
Hlsjs P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 759 (+1897.37%)
Mutual labels:  cdn, live
Ios P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 31 (-18.42%)
Mutual labels:  cdn, live
Android P2p Engine
Let your viewers become your unlimitedly scalable CDN.
Stars: ✭ 70 (+84.21%)
Mutual labels:  cdn, live
video-quality-metrics
Test specified presets/CRF values for the x264 or x265 encoder. Compares VMAF/SSIM/PSNR numerically & via graphs.
Stars: ✭ 87 (+128.95%)
Mutual labels:  encode, transcode
Nginx Rtmp Monitoring
real-time monitoring statistics dashboard for nginx rtmp module
Stars: ✭ 224 (+489.47%)
Mutual labels:  rtmp, live
Nodemediaclient Ios
NodeMedia RTMP/RTSP/HTTP Play/Publish Client SDK for iOS
Stars: ✭ 221 (+481.58%)
Mutual labels:  rtmp, live
Aurio
Audio Fingerprinting & Retrieval for .NET
Stars: ✭ 84 (+121.05%)
Mutual labels:  synchronization, live
time decode
A timestamp and date decoder written for python 3
Stars: ✭ 24 (-36.84%)
Mutual labels:  encode, decode
Kurento Rtmp
demo: webrtc to rtmp via kurento
Stars: ✭ 160 (+321.05%)
Mutual labels:  rtmp, rtp
krtp
node.js implementation of rtp, rtcp protocols. RFC 3550
Stars: ✭ 30 (-21.05%)
Mutual labels:  rtp, rtcp
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 (+5328.95%)
Mutual labels:  rtmp, live
Srs
SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT and GB28181.
Stars: ✭ 16,734 (+43936.84%)
Mutual labels:  rtmp, live
Media Server
A brpc-based server to host and proxy live streams
Stars: ✭ 175 (+360.53%)
Mutual labels:  cdn, rtmp

Janus-gateway live

janus-gateway-live compliant

Make janus-gateway more useful

This repository may be used in the scenarios: ?Your client rtmp living is not stable because of the not stable network; ?You may use janus-gateway's plugins, and want a standard rtmp/http-flv/hls for sharing.

This repository support now:

  • webrtc(opus + h264) ------(push)------> rtmp (only h264)
  • webrtc(opus + h264) ------(push)------> rtmp (aac + h264)
  • webrtc(opus + h264) <------(pull)------- rtmp (aac + h264)
  • webrtc(opus + h264) ---(multi mix + push)---> rtmp (aac + h264)

Table of Contents

Background

Janus-gateway is a wonderful webrtc gateway with many media scenarios, such as sip,videoroom,record and so on. Plugin record has record/playback api, so we can use the api for rtmp publish/play like record's record/playback.

Proposal: Don't make rtp2rtmp as a plugin, because any plugin may use the function just like record

The goals for this repository are:

  1. An example. May help someone for project using.
  2. Purpose Make more thing happen using janus.

Install

Preparation

First you should make sure that you can install the original janus-gateway successfully with --enable-post-processing. Because if enable-post-processing works, representing your ENV has Opus and FFmpeg, which will be used later.

# My environment is macOS High Sierra(version 10.13.6)
$ git clone https://github.com/meetecho/janus-gateway.git
$ git checkout a7d7991a

# make some janus-gateway prebuild for janus-gateway README.md

$ ./autogen.sh
$ ./configure --prefix=/your/path/janus PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig  --enable-post-processing
$ make -j8 && make install && make configs

# Then you can use janus-gateway's record plugin for record and play testing.

Patch

Patch the janus-gateway-live.patch, plugin recordplay can publish video to RTMP server or CDN.

$ cp live.h live.c janus-gateway-live.patch   /your/janus/source/path
$ cd /your/janus/source/path
$ patch -p1 < janus-gateway-live.patch
$ ./configure --prefix=/your/path/janus PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig  --enable-post-processing
$ make -j8 && make install && make configs

RTMP server or CDN

In the janus-gateway-live.patch, I use local RTMP server for video publish. You can modify the RTMP server yourself in conf/janus.plugin.recordplay.jcfg.sample.in with CDN. If you just want to use local RTMP server for testing, here it is:

$ git clone https://github.com/nginx/nginx.git
$ git clone https://github.com/arut/nginx-rtmp-module.git
$ git clone https://github.com/openssl/openssl.git
$ cd nginx && ./auto/configure --prefix=/path/nginx --with-debug --add-module=/path/nginx-rtmp-module --with-openssl=/path/openssl
$ make -j8 && make install
$ cp nginx.conf /path/nginx/conf && cp /path/nginx && ./sbin/nginx -c conf/nginx.conf

Usage

Use python SimpleHTTPServer for html web server:

$ cd /install/janus/path/share/janus/demos && nohup python -m SimpleHTTPServer 8888 &
$ /path/janus -C /path/janus.jcfg -p /path/janus.pid -L /path/janus.log -l -R -b -D -d 7 -e -B 50

RTMP pubslish

Open the demohttp://localhost:8888/ , Record start!
Then you can play the rtmp url with ffplay rtmp://localhost:1935/qixi/recording-id

Maintainers

@Bepartofyou.

Contributing

Feel free to dive in! Open an issue or submit PRs.

Standard Readme follows the Contributor Covenant Code of Conduct.

License

MIT Bepartofyou (七曦)

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].