In telehealth and edtech, where video communication is vital infrastructure, the Amazon Chime SDK provides a reliable and feature-rich alternative to the Twilio Video SDK.
Here at WebRTC.ventures, we’re huge fans of the Amazon Chime SDK. It offers the power and capabilities of many lower level solutions, while still allowing the abstraction and built-in media server infrastructure of the simpler CPaaS solutions. This is very powerful for a wide range of use cases (not just healthcare and education!) ranging from startups with plans to scale dramatically to call centers that want to ensure a reliable global infrastructure.
Now is the time to explore alternative solutions to Twilio and prepare a transition plan. As one of the few agencies in the world dedicated to WebRTC that is also a System Integration Partner for the Amazon Chime SDK and an official AWS Partner, we’ve prepared this detailed guide to arm you with knowledge for navigating this important decision. View all of our Migrating from Twilio Video resources.
From assessing your current solution and providing recommendations for next steps to complete migration, deployment, and support of your new solution, we’re here to assist. Don’t hesitate—contact us today.
Contents of this guide:
- Why was Twilio Video so popular among telehealth and edtech providers?
- Why the Amazon Chime SDK is a fitting successor to Twilio Video
- Twilio Video – Amazon Chime SDK Product Comparison
- Twilio Video – Amazon Chime SDK Pricing Comparison
- Detailed migration process for moving from Twilio Video to the Amazon Chime SDK
- An ideal migration plan
Why was Twilio Video so popular among telehealth and edtech providers?
WebRTC technology makes healthcare more accessible and efficient by enabling remote consultations, remote patient monitoring, and many other types of personalized care from a distance. In the education sector, real-time communication platforms facilitate virtual classrooms, interactive learning experiences, and a broader reach for educational institutions.
Twilio Programmable Video was a cornerstone in revolutionizing how the medical and education industries engaged in video communication. Its robust set of features allowed for the creation of highly interactive and personalized video experiences.
Key features of Twilio Video:
- Real-time video (QCIF, VGA, qHD, HD, FHD)
- Audio calls
- Screen sharing
- Recording
- All these features could be seamlessly integrated into various applications via comprehensive SDKs and APIs.
The security and reliability that the Twilio solution provided sealed the deal for remote healthcare and remote learning. For these use cases, these are not just technical requirements, but also essential components for building and maintaining trust, ensuring compliance with regulations, and delivering uninterrupted learning experiences and medical appointments.
Why the Amazon Chime SDK is a Fitting Successor to Twilio Video
The Amazon Chime SDK was designed by Amazon Web Services to revolutionize real-time communication by providing developers with components to add messaging, audio, video, and screen-sharing capabilities to web or mobile applications.
The toolkit allows for the integration of features such as video consultations in health applications or custom audio prompts in various services, simplifying the development process by eliminating the need to create and maintain a real-time communication infrastructure.
Key features of the Amazon Chime SDK
- High-Quality Audio and Video. Support for up to 250 attendees in a single session out of the box, with HD and FHD video and stereo audio.
- Media Recording. Sessions, including audio and video, can be recorded and stored on Amazon S3 through a media pipeline.
- Speech Enhancements. Features like noise reduction with Amazon Voice Focus and echo reduction improve audio clarity.
- Live Transcription. Integration with Amazon Transcribe for real-time subtitles and content analysis, with language identification across multiple languages.
- Call Analytics. Machine learning-powered analytics provide insights from voice tone analysis to speaker search.
More reasons to choose the Amazon Chime SDK
The fact that the Amazon Chime SDK is built on AWS is a great foundation. Even Twilio Video ran on AWS infrastructure, taking advantage of global coverage, market stability, and enterprise level security and compliance.
Amazon Chime SDK benefits from AWS's global infrastructure, offering significant scalability. The SDK can support large numbers of participants in a single meeting and scales automatically with AWS's backing, ensuring reliable performance under varying loads.
Its integration with AWS services, like Amazon Transcribe for automatic speech recognition (ASR) and Amazon Kinesis for serverless data stream processing, enhances the functionality, offering developers the flexibility to build more sophisticated applications than when using Twilio Video.
Amazon Chime SDK, within the AWS ecosystem, adheres to a wide array of compliance programs, including but not limited to SOC, PCI, FedRAMP, GDPR, and HIPAA. In the context of edTech and telehealth, the compliance aspects of Amazon Chime SDK are critical due to the sensitive nature of the data and interactions involved. AWS's compliance is validated by third-party auditors, ensuring that the infrastructure and services meet the stringent requirements of security-sensitive schools and healthcare facilities.
AWS emphasizes a shared responsibility model, where AWS secures the cloud infrastructure and users are responsible for securing their data within the cloud. Amazon Chime SDK benefits from AWS's robust data center and network architecture, designed for high security. This includes features like encryption in transit and at rest, identity and access management, and the ability to use AWS services such as AWS Security Hub and AWS Audit Manager for continuous security assessment and monitoring. These features are integral to maintaining the confidentiality and integrity of communication within EdTech and Telehealth platforms.
Twilio Video - Amazon Chime SDK Product Comparison
Feature | Twilio Video | Amazon Chime SDK |
---|---|---|
Video call / Meeting | ||
Recording | ||
Messaging | ||
Transcription | ||
Supported Video resolutions and Codec |
Resolutions: QCIF, VGA, qHD, HD, FHD Codecs: (VP8, VP9, and H.264) |
Resolutions: SD, HD, FHD, UHD* Codecs: (H.264, VP8, VP9, and AV1) |
Supported audio resolutions | iSAC, OPUS, PCMU, PCMA, and G.722. All here | Up to 48kHz and to 2 channels (stereo) encoded in Opus |
Compliance | GDPR, SOC, HIPAA |
GDPR, SOC, HIPAA, PCI, FedRAMP, etc All covered by AWS. |
Participant per meeting | Default 50, max 100 | Default 250, max 10,000 |
Platform support | Browser, Android, and iOS | Browser, Android, iOS, Linux, MacOS |
Screen sharing | ||
Virtual Background | ||
Noise Reduction | ||
Troubleshooting and diagnosis | ||
PSTN and SIP | ||
Call analytics | ||
Integration with other services | ||
Live Stream |
*UHD is only available for screen share
Twilio Video - Amazon Chime SDK Pricing Comparison
Twilio Video pricing depends on type of room, recording, and composition:
Peer-to-Peer Rooms | 0.0015 per participant minute |
Group Rooms | $0.004 per participant minute |
Audio-Only Group Room | $0.0016 per participant minute |
Group Room Recording | $0.004 per recorded participant minute |
Recording Compositions | $0.01 per composition minute |
Billing for Group Room recording begins once a Participant publishes any media track – audio webcam/video, screencast, etc. – and continues as long as media tracks are being published. Recording for Group Rooms must be enabled when the Room is created. Once recording is enabled, all Participants of the Room will have all tracks they publish recorded.
Compositions combine the multiple tracks published to a recorded Group Room into a single file for playback or archiving. Compositions are billed by the duration of the final composed media file output, rather than the duration, number, or nature of the source media recordings.
Amazon Chime SDK pricing depends on resolution, recordings (“media capture” in AWS terminology), and compositions (“concatenation” in AWS terminology).
Standard Definition (HD) | $0.0017 per attendee minute |
High Definition (Full HD) | $0.0034 per attendee minute |
Recordings (aka Media Capture, single stream) | From $0.0017 (one media type) to $0.0034 (audio/video mix) per minute |
Recordings (aka Media Capture composition) | From $0.01 (HD) to 0.0125 (4K/FHD) per minute |
Concatenation | $0.002 per minute per media stream |
Media capture allows you to capture the contents of an Amazon Chime SDK WebRTC media session and save them to a Amazon Simple Storage Services (S3) bucket of your choice. Media is stored in 5-second segments that can be used with the concatenation features to create a single file from a sequence of segments. When media is captured, events and data messages are also captured at no additional charge.
The price range in the chart depends on a standard or high definition WebRTC media session. A standard session supports up to 250 interactive participants, with video up to 720p (1280×720) resolution and screen share up to 1080p (1920 x 1080). A high definition session supports up to 25 interactive participants, with video up to 1080p (1920 x 1080) resolution and screen share up to 4K (3840 x 2160).
Both types of sessions can be replicated to up to 40 additional sessions, providing media distribution to 10,000 participants for a standard session and 1,000 participants for a high-definition session.
Compositions combine the multiple tracks published to a recorded Group Room into a single file for playback or archiving. Compositions are billed by the duration of the final composed media file output, rather than the duration, number, or nature of the source media recordings.
Ed Tech Scenario-Based Pricing Comparison
Assuming a meeting or online class with 30 attendees (participants) for 60 minutes with High Definition, prices would be as listed below. Amazon Chime SDK pricing assumes HD resolution, with recording composed/single recording (media capture + concatenation); Twilio Video assumes a group Room with HD, and recording composition.
Note: Speech enhancement and storage costs are not included in these calculations.
Scenario | Amazon Chime SDK | Twilio Video |
---|---|---|
Meeting (30 attendees, 60 minutes, HD) | $3.06 | $7.20 |
Recording (Main or Active Speaker for 60 minutes) | $0.204 | $0.60 |
Total | $3.264 | $7.80 |
Telehealth Scenario-Based Pricing Comparison
A telehealth application enables online consultations between physicians and patients. Let’s assume consultations typically take 20 minutes. All sessions must be captured for compliance.
The application uses Amazon Chime SDK WebRTC media sessions with media capture and concatenation to capture the meeting audio and the individual webcam video of the physician and the patient. The patient joins 5 minutes before the physician and begins sharing video immediately upon joining the session. The physician shares video the entire 15 minutes while on the session. The CreateMediaCapturePipeline API is called when the consultation starts and runs the entire duration of the consultation.
Scenario | Amazon Chime SDK | Twilio Video |
---|---|---|
Meeting (2 attendees, 20 minutes, HD) | $0.0599 | $0.14 |
Recording (2 attendees composed into a single recording, 15 minutes, HD) | $0.18 | $0.15 |
Total | $0.239 | $0.29 |
Twilio Video > Amazon Chime SDK migration process
This guide assumes you are familiar with how to build solutions with Twilio Programmable Video, as shown in the architecture below:
Amazon Chime SDK Terminology
In order to migrate to the Amazon Chime SDK, there are a few new concepts you need to get to know. The following terminology and concepts are central to understanding how to use the Amazon Chime SDK:
- Meeting: In the Amazon Chime SDK, a ‘meeting’ refers to a temporary space where real-time communication occurs, identified by a unique MeetingId. This is analogous to a ‘Room’ in Twilio Video, which serves as the virtual space where participants join to communicate.
- Media Service Group: This term describes the collection of media services that facilitate an active meeting in the Amazon Chime SDK. It’s akin to Twilio Video’s media servers that manage the media streams within a Room.
- Media Placement: In the Amazon Chime SDK, ‘media placement’ denotes the set of URLs that participants use to connect to the media service group for exchanging audio, video, and screen sharing data.
- Attendee: An ‘attendee’ in the Amazon Chime SDK is equivalent to a ‘Participant’ in Twilio Video. Both represent individuals taking part in the communication, identified by unique identifiers.
- Join Token: The ‘join token’ in Amazon Chime SDK is used by attendees to authenticate and join a meeting. This concept is similar to Twilio Video’s ‘Access Token’, which participants use to authenticate and gain access to a Room.
The architecture of the Amazon Chime SDK is a bit different conceptually. A video call application will require two components:
- Server application. This could be your backend where you install the Amazon Chime SDK dependency and then make requests to create meetings, attendees, recording, etc.
- Client application. This will be your client side application. It could be Browser client (JavaScript): Windows, macOS, iOS, Android, Ubuntu, an Android client, or an iOS client.
How Amazon Chime SDK Meetings Work
Amazon Chime SDK architecture has the same elements as Twilio Video, as is typical in a WebRTC architecture:
- An authentication service
- A media server
- A signaling server
All three work together to:
- Provide a token to the attendees
- Exchange signals to interact during the meeting
- Send and receive media to and from the other attendees
Joining an Amazon Chime SDK meeting
These are the steps to join an Amazon Chime SDK meeting, assuming the meeting doesn’t already exist. Note the code is with the assumption that you are working with amazon-chime-sdk-js. You can choose a different one depending on the platform in which you are working.
- The client can make an API request to your own custom server requesting to create a meeting and an attendee.
- The server then utilizes the Amazon Chime SDK (NodeJS, C++, C#, Go, etc.) and then calls the CreateMeeting API with the necessary information which can be seen in the docs, these may include features to be enabled for the meeting.
- The server then gets a response from the CreateMeeting API, which may look like this:
{
"Meeting": {
"ExternalMeetingId": "string",
"MediaPlacement": {
"AudioFallbackUrl": "string",
"AudioHostUrl": "string",
"EventIngestionUrl": "string",
"ScreenDataUrl": "string",
"ScreenSharingUrl": "string",
"ScreenViewingUrl": "string",
"SignalingUrl": "string",
"TurnControlUrl": "string"
},
"MediaRegion": "string",
"MeetingArn": "string",
"MeetingFeatures": {
"Attendee": {
"MaxCount": number
},
"Audio": {
"EchoReduction": "string"
},
"Content": {
"MaxResolution": "string"
},
"Video": {
"MaxResolution": "string"
}
},
"MeetingHostId": "string",
"MeetingId": "string",
"PrimaryMeetingId": "string",
"TenantIds": [ "string" ]
}
}
- Next, we add attendees to the meeting calling the CreateAttendee API action or the BatchCreateAttendee API action, and using the MeetingId generated on step 3, plus other configurations such as the capabilities (audio, video, content) and externalUserId.
After this we get a response in this format:
{
"Attendee": {
"AttendeeId": "string",
"Capabilities": {
"Audio": "string",
"Content": "string",
"Video": "string"
},
"ExternalUserId": "string",
"JoinToken": "string"
}
}
- We then return the meeting response on step 3 and the attendee response on step 4 to the client.
- Once we receive the meeting and attendee response, we are now capable of joining the meeting and thereby use the Amazon Chime client side SDKs (JavaScript, Android, and iOS), by passing it the meeting and attendee response in the code below:
const configuration = new MeetingSessionConfiguration(meetingResponse, attendeeResponse);
// In the usage examples below, you will use this meetingSession object.
const meetingSession = new DefaultMeetingSession(
configuration,
logger,
deviceController
);
meetingSession.audioVideo.bindAudioElement(audioElement);
const observer = {
audioVideoDidStart: () => {
console.log('Started');
}
};
meetingSession.audioVideo.addObserver(observer);
meetingSession.audioVideo.start();
Calling the various Amazon Chime SDK Features
Devices
- Listing. To get the list of devices be it audio input, audio output, and video input, you can use the command below:
const audioInputDevices = await meetingSession.audioVideo.listAudioInputDevices();
const audioOutputDevices = await meetingSession.audioVideo.listAudioOutputDevices();
const videoInputDevices = await meetingSession.audioVideo.listVideoInputDevices();
// An array of MediaDeviceInfo objects
audioInputDevices.forEach(mediaDeviceInfo => {
console.log(`Device ID: ${mediaDeviceInfo.deviceId} Microphone:${mediaDeviceInfo.label}`);
})
- Selection. To select any of the devices for use, you can use the code below:
const audioInputDevices = await meetingSession.audioVideo.listAudioInputDevices();
const audioOutputDevices = await meetingSession.audioVideo.listAudioOutputDevices();
const videoInputDevices = await meetingSession.audioVideo.listVideoInputDevices();
// An array of MediaDeviceInfo objects
audioInputDevices.forEach(mediaDeviceInfo => {
console.log(`Device ID: ${mediaDeviceInfo.deviceId} Microphone:${mediaDeviceInfo.label}`);
})
There are other things we can do such as muting, observable, on devices. Check out the documentation for more.
Screen Sharing
The SDK also supports screen sharing capabilities, and to do so all you have to do is shown in the example code below:
const contentShareStream = await
meetingSession.audioVideo.startContentShareFromScreenCapture();
Leaving a session
To leave an Amazon Chime SDK meeting session:
meetingSession.audioVideo.stop();
An ideal migration plan
A comprehensive migration plan ideally includes the steps below. The experts at WebRTC.ventures are here to help!
1. Assess
Take some time to compare not just features, but also billing models and technical implementations. We can help you compare multiple architectural considerations.
2. Prototype
Every CPaaS implements a few things differently, even when the APIs look similar. You’ll want to prototype your new solution to discover the little things that may have a big impact on your specific workflow.
3. Build, Load Test, and Pilot
After a successful prototype, you obviously need to do the full integration of your new media API into your application. Don’t forget to load test this new implementation and then pilot it with Alpha and Beta users to ensure it performs the way you expect both technically and from a usability perspective.
4. Cutover
Leave time in your schedule so that you can do a temporary rollback if needed in complicated scenarios, or to allow for gradual rollouts across your user base.
Don’t just migrate … upgrade!
For better or worse, you’re going to have to migrate your Twilio Video application in 2024. Why not make the best of it? Don’t look at this just as a media server migration. What else should you consider revamping?
This may be a good time to consider updates to your tech stack, UI and usability enhancements, as well as the addition of new features like AI integrations. If you’re moving to the Amazon Chime SDK, you can also use this as a time to consider other integrations in the AWS ecosystem like Amazon Connect.
Rely on WebRTC.ventures, System Integration Partners for the Amazon SDK
WebRTC.ventures is proud to take our experience building live video applications since 2015 and apply that to the unique needs and global scale of clients onboarding the Amazon Chime SDK.
As a System Integration Partner for the Amazon Chime SDK and offering our services in the Amazon Marketplace, there’s no better development partner for this migration than us.
Assessment fees can be partially credited toward development contracts.
Let's get started with your Twilio Video migration!
WebRTC.ventures Services
Recent AWS and Amazon Cime SDK-related Blog Posts
WebRTC Live
WebRTC.ventures hosts a monthly webinar with industry guests about the latest WebRTC use cases and technical updates. View past episodes.
Contact Us
Video should be an opportunity, not a headache
We’re here to build, integrate, assess and optimize, test, and even deploy and manage your live video application.
The WebRTC.ventures Blog
Our expertise in the Amazon Chime SDK and AWS is exemplified in our blog posts.