Basics

Architecture

100ms is a cloud platform that allows developers to add video and audio conferencing to Web, Android and iOS applications.

The platform provides REST APIs, SDKs, and a dashboard that makes it simple to capture, distribute, record, and render live interactive audio, video.

Any application built using 100ms' SDK has 2 components.

  • Client: Use 100ms android, iOS, Web SDKs to manage connections, room states, render audio/video.

  • Server: Use 100ms' APIs or dashboard to create rooms, setup room templates, trigger recording or RTMP streaming, access events.

Architecture

Basic Concepts

  • Room A room is the basic object that 100ms SDKs return on successful connection. This contains references to peers, tracks and everything you need to render a live a/v or live streaming app.
  • Peer A peer is the object returned by 100ms SDKs that contains all information about a user - name, role, video track etc.
  • Session A session depicts activity in a room. A session is created when one or more peers join a room to communicate with each other. A single room can have multiple sessions; a unique ID will be assigned to each session. The maximum allowed duration for a session on the 100ms platform is 12 hours.
  • Track A track is a segment of media (audio/video) captured from the peer's camera and microphone. Peers in a session publish local tracks and subscribe to remote tracks from other peers.
  • Role A role defines who can a peer see/hear, the quality at which they publish their video, whether they have permissions to publish video/screenshare, mute someone, change someone's role.
  • Room Code A Room Code is a unique encrypted short code generated by 100ms for a given Role and Room. A Room Code represents a unique role and room_id combination.
  • Room Link A Room Link is a link that a peer can use to Join a Room. It is always associated to a specific Room and Role, allowing unique Room Links for each Role in a Room.
  • Template A template is a collection of roles, room settings, recording and RTMP settings (if used), that are used by the SDK to decide which geography to connect to, which tracks to return to the client, whether to turn on recording when a room is created, etc. Each room is associated with a template.
  • Destinations Destinations is used to save audio/video calls for offline viewing. 100ms supports 2 kinds of recording - SFU recording and Browser recording. Also, HLS enabled configuration will allow you to live stream your room over HLS.
  • RTMP RTMP streaming is used to live stream your video conferencing apps to platforms like YouTube, Twitch, Facebook, MUX, etc.
  • Webhooks Webhook is an HTTP(S) endpoint used for pushing the notifications to your application. It will be invoked by 100ms servers to notify events of your room.
  • Workspace A workspace is an isolated environment which contains account data like templates, rooms, room and session history, etc. You can use workspaces to represent environments like “Production” and “Development” and invite team members to a workspace.

What are the steps to build a live app with 100ms?

  1. Sign up on 100ms using the Try For Free button in the top navbar.

Signup for 100ms account

  1. Once you're logged in to the dashboard, click on Create Room

Create Room

  1. Hover and select on one of the Template Presets.(We will use the Video Conference Template for this example)

Select Template

  1. You can either choose to configure your template by changing the auto suggested template name and subdomain URL or click on continue to move forward.

Configure Template

  1. Now you can join your room configured with the video conferencing template. You can join the room either via a 100ms demo link or by using the auth token in SDK or Sandbox.

Join Room

Where should I start?

Quickstart

If you want to see 100ms' SDKs in action in under 5 minutes, run one of our quickstart apps


Have a suggestion? Recommend changes ->

Was this helpful?

1234