Announcing Stream’s Video API Powered by Our Global Edge Network

Thierry S.
Thierry S.
Published May 9, 2024

Today, we're excited to announce the general availability of our new Video API. You can use it to build video calling, audio rooms, and live streaming. The video API aims to make it easier for developers to build live in-app video and audio. All calls run on Stream's global edge network for optimal latency and reliability. We encourage you to try it today on our free tier, which includes 66,000 monthly minutes of HD usage for free.

Stream powers Chat and Feeds for over a billion end users. For years, live video and audio have been our top requested products. The demand for in-app video has grown dramatically, especially in industries like Telehealth, EdTech, marketplaces, community spaces, and AI-enabled social networks.

Built to scale on day one, Stream's Video API can handle up to 200,000 users on a single call or live stream, with plans to increase scalability each month. When compared to competing solutions, the following advantages set Stream's API and Video service apart:

  • Single API to integrate Live Streaming, Audio Rooms, and Video Calling functionality
  • Intuitive developer experience with rich tutorials, documentation, and guides
  • Global edge network ensures higher quality and reliability
  • Rich chat features that are fully integrated into the video experience
  • Dynascale knows what resolution video is displayed at and automatically optimises based on CPU & network. (automatically lowering your bill and improving the video calling experience)

One API for Live Streaming, Audio Rooms, & Video Calling

Most existing solutions have separate APIs for live streaming and video calling. Using two different APIs is not ideal when your use case for video doesn't fit those definitions. For instance:

  • Building an audio room or X-space type of use case
  • Scaling a webinar or presentation for a company all hands to many users

Stream offers a unified API for building live streaming, video calling, and audio rooms. This allows you to build live video without constraints. You can create custom calling types using the Stream platform with behaviour specific to your app's use case.

The image below shows the beautiful audio room Midjourney created with Stream's APIs:

Easy Developer Experience

One of our main goals when building video was to make it as easy as possible for developers to build live video & audio.

Modern SDKs for React, Kotlin, Swift, Flutter, React Native, and Unity make it easy for developers to interact with the API by creating calls, listening to a call's state, etc.

swift
// create our call object
let call = client.call(callType: "default", callId: "123")

// join or create the call (starts audio, video etc)
try await call.join(create: true)

// state for building your own UI
call.state.participants.first.isSpeaking;

UI components enable you to quickly build a video-calling UI like Zoom. Our cookbook also shows many examples of how to build UI on top of the state layer. Here's an example of rendering a list of remote participants and a floating element for your own video in SwiftUI:

swift
ParticipantsView(call: call, participants: call.state.remoteParticipants)

FloatingParticipantView(participant: call.state.localParticipant)

Dynascale automatically optimises video tracks based on what resolution it's displayed in your app. Think about how Zoom handles calls with thousands of users: you subscribe only to the video displayed on the screen. If you're looking at a thumbnail, it is not rendered in high resolution to save on device performance and billing costs. Stream handles this complexity automatically and adjusts based on different factors such as network performance, rendering size, etc. This reduces how much you spend on video, improves the call quality and enables you to scale to calls with many participants.

There are also many small features that make it easier to build in-app live video and audio:

  • Permissions for requesting to share your screen, audio, etc. 
  • Backstage rooms that enable you to set up your mic/cam with your co-hosts. 
  • Call previews so you can show the participants and transcriptions for an audio room before listening in. 
  • Notifications let users know a stream is starting. 
  • Automatic reconnects that ensure your call doesn't break when the internet has a hiccup.

Don't take our word for it; follow along with one of our SDK tutorials to see how quickly you can build live video applications:

Video Calling 

Livestreaming

Audio Rooms

Global Edge Network

Stream's edge network of servers worldwide ensures optimal latency, low jitter, and the best possible calling performance. Regardless of where your end users are located when they connect to Stream's servers, we will automatically route them to the closest possible server to ensure minimal latency.

Lowering the distance to our servers makes it less likely that audio and video packets will be lost in transit. It lowers the rate of audio and video issues and recovers faster when network problems occur.

Roadmap and Features

Today, we released 1.0 of our video API. Developers can currently benefit from the following features:

Backstage modeHLS and RTMP support
AI Noise suppressionCustom Audio/Video Filters
RecordingParticipant moderation
First-party Stream Chat integrationCallKit/Device ringing support
TranscriptionsReal-time Video optimization (Dynascale)
Statistics DashboardLarge group calls
Picture-in-picture supportScreen sharing
Call PreviewsCustom Events
Network Quality DetectionActive Speaker

For a full feature list, check out our Video product page.

To view what's in the pipeline, we encourage you to look at our public roadmap on our Github and share your thoughts on new features with our team.

Video has been in beta for ten months and has been under development for two years. We thank our customers for the tremendous collaboration during the beta and for steering us in the right direction. We're also grateful to the Stream engineering team for building an amazing product with great velocity. 

Summary

Stream's Video API is now out of beta and generally available. You can use it to build video calling, audio rooms, and live streaming. Our API differentiates itself from the competition in two major ways:

  • Developer experience: We aim to make it easier to build video calling, audio rooms, and live-streaming
  • Edge network: Optimal latency and reliability

We encourage you to try it today on our free tier, which includes 66,000 monthly minutes of HD usage for free. As new capabilities are released each month, we'd love your feedback; reach out on Github or email product@getstream.io with your thoughts.