• Stars
    star
    209
  • Rank 188,280 (Top 4 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 8 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A future proof, experimental WebRTC VP9 SVC SFU wit end to end encryption support

Medooze SFU

A future proof, experimental WebRTC VP9 SVC SFU.

Motivation

There are already several good production ready alternatives for implementing multiconferencing on webrtc, like Jitsi, Janus or SwitchRTC SFUs and even if you need more legacy support you can try our MCU. Our goal is to experiment and provide an early access to the functionalities that will be available in the near future that will improve drastically the performance and quality of multiconferencing services on WebRTC.

Due to the experimental nature of this functionalities we will only officially support Chrome Canary to be able to access the very latest functionalities available (sometimes even running behind a flag). We don't care about interporeability with other browsers (they will eventually catch up) nor SDP legacy support.

Goal

It is our goal to implement only the We intent to implement support the following features:

This is a moving target as new functionalities will be available on Chrome and some others will be removed, we will update our targets appropiatelly.

To enable VP9 SVC on Chrome Canary you must use the following command line:

chrome.exe --force-fieldtrials=WebRTC-SupportVP9SVC/EnabledByFlag2SL3TL/

End to end encrytpion

A full version of SFrame end to end encryption is under works via insertable streams. Current implementation just uses frame counter as IV which is then inserted in the AES-GCM encrypted frame payload for emoing all required capabilities.

Install

You just need to install all the depencencies and generate the ssl certificates:

npm install 
openssl req -sha256 -days 3650 -newkey rsa:1024 -nodes -new -x509 -keyout server.key -out server.cert

If you get an error like this

gyp verb build dir attempting to create "build" dir: /usr/local/src/medooze/sfu/node_modules/medooze-media-server/build
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/local/src/medooze/sfu/node_modules/medooze-media-server/build'

You may try instead with:

npm install --unsafe-perm

Usage

In order to run the sfu just:

node index.js [ip]

where the ip is the ICE candidate ip address used for RTP media. To test a simple web client just browse to https://[ip]:8000/.

License

MIT

More Repositories

1

media-server

WebRTC Media Server
C++
1,186
star
2

media-server-node

WebRTC Media Server for Node.js
C++
728
star
3

media-server-demo-node

Demo application for the Medooze Media Server for Node.js
JavaScript
89
star
4

semantic-sdp-js

WebRTC Semantic SDP - Minimal SDP information semantic data model and parsing tools
JavaScript
72
star
5

media-server-client-js

Media Server Client
JavaScript
52
star
6

sframe

SFrame.js pure javascript implementation based on webcrypto
JavaScript
50
star
7

sdp-cpp

C++ SDP library with ABNF strict parsing
C++
37
star
8

whip-whep-js

WHIP and WHEP clients javascript module
JavaScript
36
star
9

libdatachannels

Lean and mean WebRTC datachannels C++ library with ad-hoc SCTP stack
C++
25
star
10

rtmp-server-node

RTMP server for node
C++
22
star
11

sdp

Java SDP library with ABNF strict parsing
Java
21
star
12

rtsp-client

RTSP signaling only client library
JavaScript
9
star
13

bwe-stats-viewer

JavaScript
6
star
14

event-emitter-cpp

C++ Event emitter header only
Makefile
5
star
15

audio-codecs-node

Audio codecs for Media and RTMP servers
C++
5
star
16

video-codecs-node

Video codecs for Medooze rtmp and webrtc media servers
C++
4
star
17

udpdumper

Example of custom udpdumper for Transport.dump()
C++
3
star
18

transaction-manager-cpp

Simple transaction manager for json messages
C++
3
star
19

nal-extractor

H.264 parsing & metadata synchronization
TypeScript
3
star
20

test-server

WebRTC Test Server
JavaScript
3
star
21

websocket-mockup

Mockup for websocket server
JavaScript
3
star
22

peerconnection-server

Echo test server for libwebrtc peerconnection_client
JavaScript
3
star
23

swis

See-What-I-See
JavaScript
2
star
24

swis-demo

JavaScript
2
star
25

transaction-manager

Simple transaction manager for json messages
JavaScript
1
star
26

equals-ignore-case

equalsIgnoreCase in javascript
JavaScript
1
star
27

eslint-config

eslint configuration for Medooze related projects
JavaScript
1
star
28

whip-to-peer

whip-to-peer server
JavaScript
1
star
29

rtsp-server

JavaScript
1
star
30

sdpmanager-playground

JavaScript
1
star