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.
12345678// 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:
123ParticipantsView(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
- iOS Swift Video Calling Tutorial
- Kotlin Video Calling Tutorial
- Flutter Video Calling Tutorial
- React Native Video Calling Tutorial
- React Video Calling Tutorial
- Javascript Video Calling Tutorial
Livestreaming
- iOS Swift Livestreaming Tutorial
- Kotlin Livestreaming Tutorial
- Flutter Livestreaming Tutorial
- React Native Livestreaming Tutorial
- React Livestreaming Tutorial
- Javascript Livestreaming Tutorial
Audio Rooms
- iOS Swift Audio Rooms Tutorial
- Kotlin Audio Rooms Tutorial
- Flutter Audio Rooms Tutorial
- React Native Audio Rooms Tutorial
- React Audio Rooms Tutorial
- Javascript Audio Rooms Tutorial
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 mode | HLS and RTMP support |
---|---|
AI Noise suppression | Custom Audio/Video Filters |
Recording | Participant moderation |
First-party Stream Chat integration | CallKit/Device ringing support |
Transcriptions | Real-time Video optimization (Dynascale) |
Statistics Dashboard | Large group calls |
Picture-in-picture support | Screen sharing |
Call Previews | Custom Events |
Network Quality Detection | Active 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 [email protected] with your thoughts.