Skip to content

Arbiter-WRTC/golang-sfu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

arbiter_banner

Overview

Arbiter's SFU is built using go, using pion.

Developer Usage

The Arbiter SFU is designed to run on AWS ECS as a container, as a part of the Backend.

However, it is still possible to run it locally on your own machine.

Running as a process

  1. Initialize a .env file with
    • SIGNAL_SERVER_URL variable that references your Arbiter Signaling Stack
    • RTC_CONFIG variable that references STUN/TURN server(s) in the following format: {"iceServers":[{"urls":"stun:url:3478"},{"urls":"turn:url:3478","username":"username","credential":"password"}]}
    • SFU_ID variable that represents the unique ID of the SFU. Any string is acceptable.
  2. Run go run main.go or build is a binary executable

Running as a container

To run the SFU container, you will need to pass environment variables to the container upon instantiation to function properly. You need to include

  1. SIGNAL_SERVER_URL variable that references your Arbiter Signaling Stack
  2. RTC_CONFIG variable that references STUN/TURN server(s) in the following format: {"iceServers":[{"urls":"stun:url:3478"},{"urls":"turn:url:3478","username":"username","credential":"password"}]}
  3. SFU_ID variable that represents the unique ID of the SFU. Any string is acceptable.

Design

Arbiter's SFU is designed to use a Producer/Consumer relationship of stream forwarding. The diagram below demonstrates how peer streams are forwarded. Refer to Arbiter's case study for more detailed information. ProdConNegotiation3

The Team

Stephen Watzman Software Engineer • Detroit, MI

Tyler Frye Software Engineer • Tampa Bay, FL

Jay Jayabose Software Engineer • New York, NY

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages