Integrate real-time video calling functionality into your web, iOS, and Android applications with Twilio Video. Twilio Video is a communications platform built on WebRTC that provides user access management, media services, and signaling to support scalable video applications.
Twilio Video is programmable, giving you full control over how video appears in your application. You aren't constrained to any particular formats and can calibrate performance based on your use case. Twilio Video capabilities include screen sharing, recordings, noise cancellation, virtual backgrounds, dominant speaker detection, and support for Twilio Voice.
Twilio provides SDKs and APIs to build Twilio Video into your app, and tools to monitor and optimize video quality and app performance.
Video Rooms are the core building blocks of a Twilio Video experience. Participants join a Room and can then exchange audio, video, and other data in real time.
Rooms can have up to 50 concurrent Participants. Clients only publish Participant media tracks once to the SFU, which clones and routes them to subscribers (other Participants). This means that a Participant's upstream bandwidth and battery consumption isn't affected by the number of Participants in a Room.
You can create Video Rooms in two ways:
While the API allows fine-grained control over Room configuration, client-side Room creation is better for rapid scaling to a large number of Rooms. In both cases, Rooms have a maximum duration of 24 hours, and Participants can remain connected for up to 24 hours.
Learn more about Video Rooms.
A Twilio Video app requires both a front-end and a back-end component to support Video Rooms:
Learn more about the components of a Twilio Video app.
You can add functionality and tooling to enhance, customize, and optimize your app.
Your Twilio Video app can include screen capture so that Participants can share their device screen with other Participants in a Video Room.
Learn how to capture a Participant's screen to share in a Room as a video track.
You can record Video Room content. Because all Participant audio, video, and data passes through Twilio's SFU, Twilio can save that media for you to retrieve after a Room session completes.
Twilio records and stores each Participant media track (video, audio, and data) as a separate file. For example, if Participants share audio and video, each Participant will have a file for video and another for audio. You can choose to record all the tracks in a Room, or capture specific Participants and tracks.
After recording a Room, you can customize the layout of the final recorded video using Compositions. The Composition service takes individual track recordings, formats them visually according to your specifications, and creates an output file in MP4 or WebM format.
You can choose to store Recordings and Compositions in the Twilio Cloud by default, or set up external AWS S3 storage.
Learn more about recordings and compositions.
The end user's network and device setup influences the quality of a video call. Twilio Video tools can provide the end user feedback about their connectivity before they join a call, display real-time information and metrics about a call, and capture logs for app monitoring.
See the full list of Twilio Video diagnostic and troubleshooting tools.
Simulcast is a scalable video technique that helps you determine video quality for each Participant based on their available bandwidth. Adaptive simulcast dynamically enables and disables video quality layers to improve bandwidth and CPU usage. This helps save device resources in cases such as a presentation or grid UI layout, when the application doesn't need a Participant's highest resolution video. Adaptive simulcast ensures that publishers are only encoding the video quality layers needed at a given moment.
Learn more in Working with VP8 Adaptive Simulcast.
You can add virtual backgrounds, background blurring, or other custom video filters in JavaScript applications using the Twilio Video Processors SDK. See a demo of the Video Processors SDK and a blog post about how to use the Video Processors to create virtual backgrounds.
Twilio Video Noise Cancellation (powered by Krisp) is an AI-based plugin that filters out background noise in real time. You can host and serve the Krisp audio plugin for JavaScript, iOS, or Android in your application. The plugin runs as part of the audio pipeline between the microphone and audio encoder and removes unwanted sounds during a preprocessing step.
Learn how to add noise cancellation to your Twilio Video app.
Twilio Video enforces default concurrency and request quotas to optimize resource usage while enabling application growth. Quotas apply per Account SID and include the following:
To manage quotas and scale your app:
Learn more about quotas and limits and how to scale your Twilio Video application.
Gain insight into your video applications and provide feedback to end users about their setup and connectivity both before and during video calls.
Twilio Video uses WebRTC to provide real-time video and audio communication in Rooms. Review the list of ports and protocols that Twilio uses during video calls so that you can help end users connect to your application.
Additionally, you can learn more about locations of Twilio servers and global low latency. Connecting to Twilio infrastructure that's closest to your end users will help reduce round-trip time and latency on video calls.
For more information, see Networking considerations for Video applications.
You can integrate other Twilio services into your Video application. Consider adding the following services: