Skip to content

Eyevinn/smb-whip-bridge

Repository files navigation

SMB WHIP Bridge

Provides a WHIP endpoint for Symphony Media Bridge SFU

PRs welcome made with hearth by Eyevinn Slack

This service provides a WHIP endpoint (WebRTC HTTP Ingestion Protocol) for a Symphony Media Bridge SFU. With this service you can use any WHIP compatible client push a media stream to a Sympony Media Bridge instance.

Requirements

  • NodeJs v18+
  • A Symphony Media Bridge SFU instance running

Installation / Usage

Install dependencies

% npm install
% export SMB_URL=<URL to Symphony Media Bridge>
% export SMB_API_KEY=<API key for Symphony Media Bridge API>
% npm start

The WHIP endpoint is now available at http://localhost:8000/api/v2/whip/sfu-broadcaster and you can use a WHIP compatible client to establish a media stream to the Symphony Media Bridge.

To try this out you can use the WHIP web client available here.

If you want to protect the WHIP endpoint with an API key you can add the environment variable API_KEY with the key you wish to require.

WHEP Playback Endpoint

To register ingested streams for playback using the Eyevinn WHEP Playback Endpoint you enter the URL to the WHEP endpoint service as an additional environment variable (in addition to above).

% export WHEP_ENDPOINT_URL=<URL to WHEP endpoint service>
% npm start

Development

Start a local Symphony instance using a Docker image we provide for development and testing.

% docker run --rm \
  -e HTTP_PORT=8280 \
  -e UDP_PORT=12000 \
  -e API_KEY=dev \
  -e IPV4_ADDR=127.0.0.1 \
  -p 8280:8280 \
  -p 12000:12000/udp \
  eyevinntechnology/wrtc-sfu
% SMB_URL=http://localhost:8280 SMB_API_KEY=dev npm run dev

When a WHIP connection is established you can verify that with the following API call to the local SFU.

% curl -v -H 'X-APIKey: dev' http://localhost:8280/conferences/<conferenceId>/ingest

To list available conferences you can run the following curl command.

% curl -v -H 'X-APIKey: dev' http://localhost:8280/conferences/

Contributing

See CONTRIBUTING

License

This project is licensed under the MIT License, see LICENSE.

Support

Join our community on Slack where you can post any questions regarding any of our open source projects. Eyevinn's consulting business can also offer you:

  • Further development of this component
  • Customization and integration of this component into your platform
  • Support and maintenance agreement

Contact sales@eyevinn.se if you are interested.

About Eyevinn Technology

Eyevinn Technology is an independent consultant firm specialized in video and streaming. Independent in a way that we are not commercially tied to any platform or technology vendor. As our way to innovate and push the industry forward we develop proof-of-concepts and tools. The things we learn and the code we write we share with the industry in blogs and by open sourcing the code we have written.

Want to know more about Eyevinn and how it is to work here. Contact us at work@eyevinn.se!

About

WHIP bridge for Symphony Media Bridge SFU

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published