Arbiter's SFU is built using node.js, running on express.
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.
- Run
npm install
- Initialize a .env file with
SIGNAL_SERVER_URL
variable that references your Arbiter Signaling StackRTC_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.
- Run
npm start
and the SFU will connect to your signaling server and be available for use.
To run the SFU container, you will need to pass environment variables to the container upon instantiation to function properly. You need to include
SIGNAL_SERVER_URL
variable that references your Arbiter Signaling StackRTC_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.
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.
Stephen Watzman Software Engineer • Detroit, MI
Tyler Frye Software Engineer • Tampa Bay, FL
Jay Jayabose Software Engineer • New York, NY