SANTA CLARA, Calif., June 21, 2019 /PRNewswire/ — Agora.io, the leading voice, video and live interactive streaming platform, today announced it is a Unity Technologies Verified Solutions Partner and released the Agora Video Chat SDK for Unity. As a Unity Verified Solutions Partner, Agora.io enables game developers to easily embed high-quality video chat directly inside their games.
Mobile experiences are becoming increasingly interactive as users turn to live video to communicate and engage with each other across a wide variety of apps, with gaming at the forefront of this evolution. The Agora Video Chat SDK for Unity provides game developers with everything they need to create richer, more engaging user experiences with live in-game video chat.
By enabling players to interact with each other in real time, developers can boost player engagement and retention while delivering unique gaming experiences that today’s gamers crave. In-app video communications add an interactive social layer to games so players don’t have to rely on third-party apps, which increases user stickiness and keeps gamers inside the game.
“Live video is a powerful tool for game developers who want to take their games to new heights but most existing solutions come with a trade-off in gameplay,” said Clive Downie, CMO at Unity Technologies. “Agora’s new video SDK is designed to work seamlessly with our development platform and makes it incredibly easy for developers to deploy live interactive video within their games. More importantly, Agora’s SDK is a robust yet lightweight solution, allowing developers to add real-time video without compromising the player experience.”
The Agora Video Chat SDK for Unity delivers in-game real-time video communications with sub-second latency and a small footprint that ensures a seamless experience for gamers. The SDK is optimized in size, CPU usage, and power consumption for minimal impact on gameplay without affecting gaming bitrate or diluting the experience.
In addition to high-quality video, Agora.io’s SDK also ensures high-quality voice integration with zero interference and low latency with passive echo cancellation, background noise reduction, volume normalization, and proprietary anti-data loss algorithms. Other features include spatial voice effects, which add a sense of player positioning and depth, and voice changing, which utilizes pitch, reverb, equalizer, and other sound effects to provide players with personalized experiences.
“By working with Unity, we’re making real-time video easily accessible for Unity’s massive game developer community to power the next generation of engagement-centric mobile games,” said Reggie Yativ, COO & CRO of Agora.io. “Both Unity and Agora.io share a similar vision of powering the real-time generation, so we’re thrilled to become a trusted partner to drive the future of gaming together.”
About Agora.io
Founded in 2014, Agora.io is a global company with offices in Santa Clara, London, Bangalore, and Shanghai and customers in over 100 countries. Agora.io offers a real-time engagement platform-as-a-service that allows developers to easily embed voice, video, interactive streaming, and messaging for any mobile, web or desktop application and go live globally in a matter of days.
With over 20 billion minutes of monthly usage on our network, Agora.io is trusted by developers and business managers and powers live streaming and video interaction for leading social and enterprise brands across the globe, with use cases in a wide variety of industries such as social, gaming, workflow collaboration, enterprise training & branding, e-commerce, healthcare and more. Agora.io services are backed by an SLA, priced very competitively, and GDPR compliant.
The Agora.io platform is powered by the Agora Software Defined Real Time Network (SD-RTN), a global delivery network of 200 data centers. SD-RTN that dynamically manages the routing of voice and video to overcome severe packet loss incidents and enables seamless, uninterrupted, high-quality real-time streaming delivery across the globe, even in the most remote locations and emerging markets.
For several years, YouTube has broadcasted live streams from Coachella, arguably the most talked-about music festival of the year. 2018 was a milestone year, with41 million visitors tuning induring the festival’s opening weekend—a 75% jump from the previous year. While Beyonce’s jaw-dropping performance drew many eyeballs, the dramatic growth in viewership can also be attributed to the increasing popularity of live streaming in social media. This is good news for emerging artists around the world, as live streaming gives them the ability to create, record, and perform their music live anytime, anywhere. They can interact with their followers, grow their fan bases, and eventually monetize their content—depending on the platform they choose. For established artists who have already built a big following, live streaming allows them to give their fans front-row access to performances no matter where they are. The Problem with Music Streaming Music streaming platforms, including Tidal, Pandora, and specifically Spotify, have changed the way the average person listens to music. No longer are they required to buy a song or album or go to YouTube to listen to their favorite artist’s latest soundtrack. For less than $10 per month, consumers can get access to all the music they want, when they want it. While it’s a hit with consumers, Spotify’s revenue model has been criticized by artists and songwriters. According to CNBC, Spotify is earning billions of dollars per year but only paying $.006 to .0084 per stream to the holder of music rights. The “holder” is then split among many parties, including the record label, producers, artists, and songwriters. In other words, the people who actually create the music we enjoy aren’t getting paid fairly for their work. It’s no wonder that more artists are turning toward concerts and live performances to earn revenue. Selling one-time tickets to a show isn’t the only way to bring in cash, however. As more consumers turn to their mobile devices and live streaming platforms like Facebook Live for in-the-moment entertainment, there are more opportunities than ever for musicians to monetize their music through live streaming. “Going Live” In Person and Online A few individuals and bands have already started taking advantage of live streaming. Iconic rock band Phish live streamed its Halloween shows in 2018 in 4K—a first for any major concert. The live shows were such a hit with fans that the band is selling live stream tickets to 16 of its upcoming concerts this summer. Live streaming offers artists and bands like Phish a plethora of benefits—the most obvious being a new stream of revenue. According to Vimeo Livestream, 45 percent of live video audiences would pay for live, exclusive on-demand video from a favorite performer. While a physical venue can sell out in a matter of minutes, hundreds and thousands of fans can tune in to a single live stream at the same time, which means artists can sell many more tickets than they could during a traditional, in-person concert. Tickets to these live streamed shows can be sold separately or as part of a paid subscription service that gives fans additional content, including access to albums and side projects, on a weekly, monthly, or yearly basis. Live content is more than just live concerts and videos, however. It can be anything from behind-the-scenes action to live interviews with band members and production crew. By offering an inside look at what goes on behind closed doors, musicians can not only monetize but build trust with their audiences and show a more authentic side of themselves they might not be able to convey while on stage. For emerging and established artists alike, live streaming is an effective way to spread their music and build relationships with their growing fan bases. Platforms like Facebook Live, Instagram Live, and LiveMe give users a platform to perform live, share updates, engage with their fans, and get feedback in real time. In late 2017, Esperanza Spalding, a Grammy-nominated Jazz singer, composed and recorded an entire album from scratch in just 77 hours—all of which was streamed on Facebook Live. More than 1.4 million people tuned in to the production, offering their feedback and thoughts, some of which were incorporated in the final product which sold out on the final day of the live stream. Creating Your Own Musical Masterpiece Though music streaming is changing the industry, live streaming is giving artists a way to make money and grow their brands outside of royalties. As more apps and platforms implement live streaming and other live video features, there will be even more opportunities for singers, bands, and musicians alike to bring awareness to their music in new, innovative ways. Artists aren’t restricted to social media and live video platforms to live stream their music and performances, however. They can also create their own live video streaming or audio streaming experiences on their owned channels with the help of an RTC solutions provider, such as Agora. By implementing Agora’s live video streaming SDK into their existing channels, artists can create their own customized live video and audio experiences free of time limits and other restrictions artists may face on third-party social media or hosting platforms. They can also directly monetize their music and performances and monitor their channels at their own discretion without having to adhere to another channel’s community standards. By building their own live streaming experiences, artists can have complete control over the content they broadcast and share music with their fans at the same time.
To learn how Agora can help you create immersive live streaming experiences to share with your audience, contact us.
What a time we had at the AllThingsRTC conference! The Agora.io team had a fantastic experience hosting this exceptional real-time communications event. We were graced with the presence of hundreds of technology leaders, developers, and partners from leading industries who came together to share their knowledge, make invaluable connections, and inspire one another as pioneering RTC peers.
Agora’s Founder and CEO, Tony Zhao, delivered a resounding welcome keynote that emphasized the convergence of the RTC community and how this is impacting the world and everyday life. The overarching message focused on real-time interactions across many industries – gaming, personalized fitness training, interactive online classroom/training, telehealth, online shopping, social, and much more.
If you missed the event or had to make the hard choice between the different speaker tracks, we’ve got you covered! We’ll be posting the full event recordings in the coming weeks. For now, let’s look at some noteworthy product announcements, demos, and highlights.
One of the top highlights was Agora’s Super Resolution advancement edge devices. This engineering feat leverages the computing power of machine learning and AI algorithms on devices to render more clarity and sharpness on streams. Furthermore, it allows for lower bandwidth allocation on the current stream, thereby delivering a better interactive experience for users in troubled network environments and emerging markets.
Another notable mention was the Agora Fast Channel Switch and Battle Mode demo, which drew laughter from the crowd as the demo crew rocked some sick dance moves. It was a definite crowd-pleaser and impressive as it enables users to experience immediate channel switching and host battling without needing to double the bandwidth.
Continuing the keynote trend, the next generation of Agora’s Software Defined-Real-Time Network (SD-RTN) that can withstand more than 70-80% packet loss with minimal jitter and no visible resolution degradation was featured. It was followed by a benchmark video comparison that demonstrated ultra-low latency against key competitors at up to 60% packet loss.
Other highlights include, tech keynote from Debargha Mukherjee Google’s Principal Software Engineer, on “The Past, Present and Future of AVI (AOMedia Video 1)” as well as a session from Zoe Liu, Co-founder and President of Visionular, on “Machine Learning for AOM/AVI (Alliance for Open Media) and its Application in RTC.” These presentations broached awareness of AVI, an emerging open-source, royalty-free video coding format that is jointly developed by AOMedia and incorporates a sizeable consortium of leading technology companies.
The event also featured a wide range of stimulating tech presentations, including talks from Shawn Zhong from Agora, Bernard Aboba from Microsoft, and a suite of other fantastic speakers who presented their RTC expertise. They passionately delivered their vision around deep learning for RTC, new features of WebRTC, bridging the broadcast gap between WebRTC and RTMP, and many more hot topics within the RTC realm.
Similarly, the panel track engaged the room with much needed RTC use case discussions on a variety of themes on fitness and wellness, the future of social gaming, incorporating RTC in education, real-time community engagement, and other insightful conversations. In addition, the panelists encouraged users to create content and distribute live to their networks by using social platforms such as Socialive and LinkedIn Live.
Overall, the presentations, demos, and partner booths provided attendees with ample understanding of how the real-time communications field is evolving, shaping growth strategies, and transforming social experiences to live engagements through live content creation.
AllThingsRTC 2019 wrapped up with a networking hour, flowing with the intermingling of attendees and the Agora team. Everyone delighted on hors d’oeuvres, an assortment of drinks, and a live DJ jamming out great music. to great music. Special thanks to all the speakers, sponsors and strategic partners. We couldn’t have pulled an excellent show without you!
The future of WebRTC is strong with interactive communications and live streaming, unifying the way we work, play, and entertain and creating an immersive, exciting experience.
Be sure to be on the lookout for our upcoming series of blogs as we continue to release videos in segments of the keynote, tech and use case tracks. Have any questions? Contact us here or join the Agora Slack channel.
Almost 3.5 billion people around the world use social media and many of those users are broadcasting or engaging in live streams. As we discussed in a previous post, live streaming has become a vital feature in social media apps as more users look to interact and share real-life moments with their family and friends in real time, grow their followings, or even establish themselves as creators. If you plan on creating your own social app, you’ll need a way to stand out in an increasingly competitive market and find your niche. By integrating live streaming into your app, you can allow your users to create their own live video content, engage with each other, and keep them coming back.
Taking Advantage of User-Generated Content A report from Park Associates revealed that U.S. broadband households spend more time watching user-generated content (UGC) online than they do watching video on a television. In other words, today’s consumers don’t just want to be spectators. They want to engage with the content they consume—whether it’s created by their family, friends, or their favorite influencers. Though UGC can be anything from images and videos to text and audio, live UGC video is some of the most engaging content across social platforms. Facebook, Instagram, Twitter, Snapchat, and more top social media platforms have implemented live streaming capabilities into their apps to encourage users to “go live” and share their own content. Whether you want to create a social app that appeals to a wide variety of people or just a small, niche group, implementing a live streaming feature can be an effective way to reach and engage with potential users and encourage them to create content on your platform.
Going Mobile & Global Now that smartphones are widely available, more people are looking to social networks to connect and engage with people in their communities and around the world. However, “going global” and providing a seamless experience for app users across many locations and devices can be difficult for developers. Here’s why:
Different Operating Systems. A user’s device and operating system can have a significant impact on their social app experiences—especially live streams. Many live videos solutions aren’t designed to work with a variety of devices and operating systems, so users often experience significant battery loss and CPU consumption.
Network connectivity. While the internet’s reach has expanded, network connectivity levels can vary from region to region. Users tuning in to the same live stream can have conflicting experiences.
Scalability. As your social app scales, supporting more users at the same time can be difficult. Many social apps experience technical issues when their user base grows dramatically in a short period of time.
To overcome these challenges, take advantage of a flexible, live streaming solution, like Agora’s, that ensures your users experience high-quality and low-latency video anytime, anywhere.
Building a Live Streaming Social Experience You might be thinking: Can’t I just build out my own live streaming application? While many developers choose to build out their own solutions, it’s not the right choice for every social app as it can be a very time-consuming, cumbersome, and costly process. By partnering with a third-party RTC provider like Agora, you can get:
Access to easy-to-embed SDKs that work with your application—whether it’s designed for mobile, web, or desktop.
A quick turnaround. Get live streaming capabilities up and running on your application in as little as a few weeks.
Reliability and flexibility. Agora’s lightweight, client-side codec is optimized to work on 5,500+ different devices, even those that are underpowered.
Access to a reliable network. With Agora’s software-defined real-time network (SD-RTN), which delivers sub-second low latency across the globe, your users can experience the same quality live stream no matter their location or operating system.
Customized features.AR filters, 2D and 3D stickers, emojis, and voice modulation are just a few ways you can entertain your users and encourage them to take advantage of live streaming.
Ready to integrate the right live streaming solution with your social app? With Agora, you can create meaningful, engaging real-time experiences for your users around the world with our easy-to-embed SDK and APIs. Learn more about our live video streaming solution.
The audio space is evolving quickly. From dramatic growth in podcast industry to the many voice-enabled products announced at the Consumer Electronics Show a few months ago, it’s evident that more people are becoming aware of the power of voice technology, and specifically, live voice. Live voice is more than just a trend, however. It’s a tool to build connections, better relationships, and interact with people all over the world.
Here are three reasons 2019 is already shaping out to be a monumental year for live voice. 1. It’s on the rise. Many factors have contributed to the growth of live voice, but the advent of smart home devices has played a major role in bringing more awareness to the technology. Voice assistants like Google Home and Alexa can play music or check the weather, but there is a variety of smart home products on the market. From doorbells to pet monitors, these devices utilize live voice features and other real-time communication solutions to keep people﹘and even their furry family members﹘in regular communication, inside and outside the home.
According to GlobalWebIndex’s Voice Search report, 27 percent of the global online population is using voice search on mobileand 34 percent of internet users say they’re interested in purchasing a voice assistant.While these numbers may not be off the charts just yet, consumers are slowly but surely becoming more aware of live voice and its potential.
2. It benefits both companies & their customers.
Live voice isn’t limited to consumer technology, however. More enterprises across a variety of industries are using real-time voice to create new channels of communications and opportunities for engagement with their users and customers. While running a business via the Internet can cut down on costs, it also makes communicating with customers online more difficult. For B2C businesses like e-commerce stores, finding more efficient ways to answer customer questions and address feedback is a must. Through one-to-one voice call, companies can offer personalized customer service in real time, no back-in-forth emails required. They can elevate the customer experience even further by hosting group calls or even live interactive streaming that answers customers’ FAQs or feature live demonstrations of products or services. For many social engagement and gaming apps, live voice has become an integral part of the user experience. From coordinating with teammates to competing with a plan, nothing beats calling out to other players over an open voice channel in a multiplayer game like Vainglory. Live voice not only improves gameplay; it significantly increases engagement, user stickiness, and monetization opportunities. In addition to live voice chat, developers can embed a variety of features, like 3D spatial audio, and voice effects to keep players entertained for even longer spans of time. 3. It’s easy to implement.
While there are plenty of web platforms that offer live voice services, there are often limits to the amount of time that can be spent or the number of people who can participate in a single call. For businesses that are serving hundreds or even thousands of customers or developers who are looking to build out their own in-app live feature, embedded live voice is an ideal option. Incorporating live voice can seem like a complicated overwhelming endeavor but by taking advantage of an easy-to-implement solution like Agora’s voice signaling SDK, individual developers and enterprises can install live voice features into their existing platforms and applications. Live voice is becoming an increasingly sought-after feature in the consumer and enterprise tech space. Companies across a variety of industries should consider how the “voice” revolution will affect their current products and services. Incorporating features like voice calling and group conferencing will help create interactive experiences and drive engagement and sales.
To learn how you can incorporate Agora live voice chat and calling services into your platform or application, talk to our team.
SAN FRANCISCO, July 11, 2019 /PRNewswire/ — Doki Doki Inc., a voice technology company, today announced the launch of Dabel, the first social live voice streaming app in the U.S. Dabel lets users live stream up to two hours of audio per session with the tap of a button and invite listeners to join the conversation. Each live stream supports up to 10,000 concurrent speakers and is automatically saved for easy social sharing across different platforms.
“It’s time to make communication more human using the tool we all have: our voice,” said Takahito Iguchi, founder, and CEO of Doki Doki. “Dabel offers users a deeper, more intimate way of connecting with each other.”
Dabel was created in partnership with Agora.io, the leading voice, video, and live broadcasting platform that also powers real-time engagement for social apps like MeetMe, Gravy, and Bunch. The new app provides an intuitive mobile platform for anyone to share their stories—anytime, anywhere.
Dabel’s unique voice streaming format is designed to let users create their own personal audio stream on any topic, interest, format, or style with a community of listeners who can also join the live stream. Dabel streams can have multiple co-hosts, as hosts can open up the conversation and invite listeners to talk in the stream. Listeners can also interact with their favorite hosts and other listeners via in-app comments within the streams.
“The audio revolution is sweeping the world as voice-enabled apps, smart speakers, voice assistants, and podcasts reach mass adoption at an incredibly rapid pace,” said Reggie Yativ, CRO & COO of Agora.io. “Dabel is making its mark in the social media industry with a unique platform that gives people an innovative new way to create and enjoy real-time audio content on mobile devices.”
Aimed at the growing number of people fatigued by crowded social media feeds and endless visual stimulation, Dabel enables users to give their senses a break by immersing themselves in the spoken word. As Iguchi observes, “Everyone has something to say but social media overload can make you feel like your voice is lost in the crowd. With Dabel, everyone has the ability to speak their mind with all the emotional nuances. We’re giving our users a platform that empowers them to be heard.”
The underlying technology behind Dabel’s voice streaming feature is Agora’s Voice SDK, which allows developers to embed crystal-clear, real-time voice chat into any application. The partnership allows Dabel to tap into Agora’s network of 200 globally distributed data centers and proprietary software-defined real-time network (SD-RTN) to connect users globally via high-quality, real-time voice chat.
Download the Dabel app now and start your own open conversation.
About Doki Doki Inc.
Doki Doki Inc. is on a mission to erase loneliness with voice. With offices in Tokyo and San Francisco, they have been developing voice-based communication platforms since 2015. In 2017, Doki Doki released the apps Baby and Ball, which were both innovative “voice social networks.” The next app they released in the U.S. is Dabel, a social network for voice streaming. On this platform, users are able to stream and connect with other users they just met, where “conversations lead to new conversations.” Doki Doki was founded by Takahito Iguchi, who has been a leader in the XR (Cross Reality) field, starting with the augmented reality app Sekai Camera and in 2013, the Telepathy wearable device. Now, Iguchi leads Doki Doki in developing products that evolve voice technology beyond the one-way communication that podcasts and streaming apps now represent, towards a more interactive form.
About Agora.io
Founded in 2014, Agora.io is a global company with offices in Santa Clara, London, Bangalore, and Shanghai and customers in over 100 countries. Agora.io offers a real-time engagement platform-as-a-service that allows developers to easily embed voice, video, interactive streaming, and messaging for any mobile, web or desktop application and go live globally in a matter of days.
With over 20 billion minutes of monthly usage on our network, Agora.io is trusted by developers and business managers and powers live streaming and video interaction for leading social and enterprise brands across the globe, with use cases in a wide variety of industries such as social, gaming, workflow collaboration, enterprise training & branding, e-commerce, healthcare and more. Agora.io services are backed by an SLA, priced very competitively, and GDPR compliant.
Are you planning to join the ranks of remote workers? This fast-growing segment of the job market is appealing to a variety of companies and their employees. How do you choose the right tools to stay in touch with staff and clients? While nothing beats face-to-face communication, today’s technology is helping remote labor keep and make real connections with customers and colleagues.
From project management to video chat API, learn how to choose the best programs with this handy infographic. Whether from home or on the road, turn your smartphone into a powerful communication tool that’s capable of real-time video chat. Replace texts and emails with a face for more personal conversations, while you cut down on travel time and save money for both the client and your business.
Find out which system works across a variety of platforms, from Linex to macOS using video chat SDK’s. Interact just like you would in the board room, with interactive applications, high-quality video, and crystal-clear voice capabilities. When you equip yourself with the right remote applications, you really can meet anyone anywhere in the world without having to worry about cross-platform support.
Start your remote assignment out on the right foot. Discover how to choose the latest in advanced web-based tools and select a project management system that keeps your virtual team connected. With role-based features, collaborative editing, plus time and tracking management, stay up-to-date with cloud-based storage options and powerful communication tools. What are you waiting for? Check out our detailed infographic to learn how.
At Agora, we help businesses and startups across a variety of industries incorporate live video, voice and interactive streaming solutions into their platforms and apps. While each of our clients has different wants and needs, many ask the same question: “How can I monetize my app?”
Monetization is particularly important in mobile gaming as many gaming apps operate on a freemium model and are free to download, relying on user engagement or in-app purchases to drive revenue streams. While ads and premium in-game items are proven paths to monetization, gaming studios and developers can also get a boost by encouraging their users to interact with each other through live engagement features.
Monetization Begins with Live Engagement
According to a report from Appboy, 25 percent of users fail to return to an app the day after they first use it. In other words, the number of times a gaming app has been downloaded is not necessarily indicative of success. Other important factors, such as a game’s retention rate or the number of daily active users (DAU), should also be taken into consideration, as they can contribute to the overall engagement level of an app, which affects its monetization capabilities.
Here are some other engagement metrics developers and business managers should keep in mind as they look to monetize their gaming apps:
User stickiness. A “sticky” app attracts users regularly and offers more opportunities to monetize.
Average session length. One session typically begins with the opening of the application and is averaged across all daily active users.
App growth. It’s not enough to be a one-hit-wonder. To consistently grow its revenue, an app must grow and improve its user base, engagement, and platform over time.
Keeping users engaged so they stay within the app for longer periods of time and return often isn’t always easy, however. That’s why a growing number of gaming apps, such as group video chat poker app Pokerface and popular multiplayer online battle arena (MOBA) game Vainglory, are utilizing live communication features like interactive streaming and in-game voice chat to increase engagement and monetize their apps.
In-App Purchases
Offering in-app purchases is common in the mobile gaming space. In fact, in-app purchases have begun to take over paid-for revenue models in mobile gaming. For live communications-enabled gaming apps, there are even more opportunities to incorporate in-app purchases as gamers play and interact together in real-time.
Virtual Gifts
What started as a popular trend among Chinese platforms like YY, Inke, Panda.tv, and Momo have become more common in the West with the rise of social live streaming applications like Livestar and MeetMe. Virtual gifts are typically non-physical objects that are purchased by users and sent to broadcasters in exchange for creating high-quality or entertaining live video and voice content. The gift is then exchanged for currency, which is split between the broadcaster and the hosting platform or application.
Virtual gifting is available predominantly in social live streaming apps, but the trend has started to catch on in the video game live streaming space as well. For example, Twitch recently created its own virtual gifting system in which viewers can purchase virtual goods, or “bits,” to support their favorite streamers.
Game developers can take advantage of virtual gifting by incorporating an in-game gifting feature in their apps and allowing players to buy virtual gifts for their friends or family members who also play the game. A feature that allows gamers to “level up” through in-app purchases is another effective way to monetize.
Filters and Avatars
When Snapchat first introduced AR filters in 2016, the filters were such a hit with users that other major apps began to implement their own versions and soon enough. The trend became ubiquitous among all social platforms and eventually extended into the mobile gaming space with AR games like Kitten Craze and Flying Face.
Game developers can take a cue from these social and gaming apps’ strategies by creating their own unique, personalized filters and avatars that not only draw users but keep them engaged for longer periods of times. This includes both face filters and voice changing effects, so players can enjoy a truly personalized social gaming experience.
Taking Advantage of In-Game Live Engagement Features
To help developers and companies create engaging gaming apps, Agora offers a variety of high-quality, scalable real-time communications solutions that can be easily and quickly integrated. Agora’s SDKs come with a powerful tech stack for delivering live video and voice directly from inside your app, while Agora’s Software Defined Real-Time Network (SD-RTN) ensures that every user sees and hears clearly in real-time. To make the most of real-time engagement experiences and enable its customers to monetize their apps, Agora offers over 600 different AR stickers, virtual gifting capabilities, and filters—all of which can be customized for your gaming app. Developers can also use Agora’s mobile gaming SDK to take advantage of 3D spatial audio. Ideal for an immersive multiplayer gaming experience, 3D spatial audio allows players to locate each other by sound using proximity-based hearing to sense and determine other players’ positions.
To learn more about Agora can help you engage with your users and monetize your gaming app, talk to our team.
Most product specialists take an ad-hoc approach to field-test their SDKs under different conditions (if at all). In this step-by-step tutorial, I will show an alternative. It is a runtime comparison with a bona fide network testing utility. Apple’s Network Link Conditioner is just such a utility that allows developers on macOS and iOS devices to accurately and consistently simulate adverse networking environments, which run the gambit from 100% Loss, 3G, DSL, EDGE, High Latency DNS, LTE, Very Bad Network, WiFi, all the way to WiFi 802.11ac. A result is a simulation tool for packet degradation.
In your runtime Comparisons for iOS Video SDKs, you will run different codebases tested side-by-side to see how either one fares, as network conditions begin to fail if not terminate entirely. You will run one codebase alongside another while simulating the effects of packet degradation with Apple’s Network Link Conditioner. You will demonstrate how to use Apple’s Network Link Conditioner, make side-by-side comparisons in terms of diagnostics, as well as see the effects of packet degradation in real-time. Concurrently, you will become a specialist in how to test demo applications for the three major competing forces in real-time communications, Agora, Twilio and TokBox.
Enabling the Network Link Conditioner
Enabling the Network Link Conditioner changes the network environment across the system according to the selected configuration, limiting uplink or download bandwidth, latency, and rate of packet loss.
You can choose from one of the following presets:
100% Loss
3G
DSL
EDGE
High Latency DNS
LTE
Very Bad Network
WiFi
WiFi 802.11ac
Alternatively, you may create your own preset. The Network Link Conditioner provides the following levers for creating “Custom Profiles”:
Downlink Bandwidth
Downlink Packets Dropped
Uplink Bandwidth
Uplink Packets Dropped
DNS Delay
Enabling Network Link Conditioner on Xcode with iOS Devices
To utilize the Network Link Conditioner, you have to make sure that your iPhone or iPad is connected to your Apple MacBook.
Connect your iOS device to your Mac
In Xcode navigate from Window > Organizer
Select your preferred device in the sidebar
Click “Use for Development”
Alongside your Xcode configuration, you have to configure your iOS device. iOS device under Settings > Developer > Networking.
Runtime Comparison with the Network Link Conditioner
Your next step is to do a runtime comparison. In your runtime Comparisons for iOS Video SDKs, you will run two different codebases tested with web integrations side-by-side to see how either one fares, as network conditions begin to fail if not terminate entirely. For the background, you will use Hammacher Schlemmer’s electric jellyfish.
Hammacher Schlemmer’s Electric Jellyfish
Custom Packet Loss
Why custom packet loss? Results based on 100% Loss, 3G, DSL, EDGE, High Latency DNS, LTE, Very Bad Network, WiFi, WiFi 802.11ac are largely inconclusive or, rather, tell us nothing at all about how to differentiate the abilities to compete SDKs. To really appreciate how competing SDKs perform under adverse network conditions the packet loss has to be successively negative. In a double uplink packet-in loss scheme where packets are dropped from the network at 10% increments, the packet loss is successively negative. To implement this type of scheme click “Add profile” in the Network Link Conditioner. Under name write in the name of the packet loss percentage as 10, 20, 30, etc… In packet loss add 10, 20, 30, etc… During testing toggle on and successively degrade network quality.
Agora vs. Twilio, TokBox, FaceTime
In testing Agora against Twilio, TokBox, and FaceTime, the results were that these latter three SDKs fell off on or before 60% double uplink packet-in loss, whereas Agora continued to stream with little to no interruption well past 60% of the same. Agora’s stream is clear, stable, and continuous. The frames per second are rolling. There is no visible resolution degradation. Here is the video:
Conclusions
Our analysis, as in what we see at Agora, does not focus on specific network faults, uncovering detailed failures in resolution or frames per second but what the naked eye sees under visible network workability. In the four contrasted videos, both sets of which are competitor multi-party platform-specific iOS demo applications, Agora’s SDK outperforms TokBox’s on, around or at 40 percent packet loss and it outperforms Twilio’s on, around or at 40 percent packet loss. FaceTime crashes on, around, or at the same percentage.
What’s Next?
Do not let your lava lamp of interconnected application users stop. If you haven’t adopted Agora yet, check out the following guides that help you switch from TokBox or Twilio. If you want to withstand adverse network conditions, chose Agora. Agora’s software is software that runs on a Software Defined Real-Time Network. Agora’s SD-RTN optimizes its uplink, downlink voice, video or live broadcasting traffic algorithmically.
Connect with us!
If you have any questions or would like to reach out to us at Agora directly, feel free to join our Slack channel agoraiodev.slack.com.
Agora’s voice, video and live broadcasting software all run on a Software Defined Real-Time Network (SD-RTN), which is a real–time transmission network built by Agora and is the only network infrastructure specifically designed for real–time communications in the world. All voice and video services provided by the Agora SDK are deployed and transmitted through the Agora SD-RTN.
The Agora SD-RTN may be one motivation for adopting the Agora iOS SDK for all of your voice, video or live broadcasting needs. Another may be pricing. Whatever the need may be, the following guide details how a generically functional app with a working Twilio video integration may be disintegrated to provide essentially the same functionality but on a totally different infrastructure, with a completely different set of required methods, and an entirely new feel.
Adoption Guide
To drive adoption, Agora is offering this guide. To simplify the adoption process, here are the three primary codebases:
Just as TokBox’s integration is heavily dependent upon delegates, so too is Twilio. Twilio’s TwilioVideo SDK requires implementation of four delegates, which is nearly the same number of delegates TokBox’s integration requires: TVIRoomDelegate, TVIRemoteParticipantDelegate, TVIVideoViewDelegate, TVICameraSourceDelegate, each of which has an inordinately large number of required methods. As is the case with TokBox, adoption of the Agora iOS SDK proceeds from a change in architecture. Agora’s iOS SDK, however, is an architecture based upon the singleton design pattern.
At Agora we empathize web developers such as Dzung Nguyen or Anand Nimje, who look for simplicity in development so that our iOS SDK is designed in accordance with popular development sentiments in mind. Many developers such as Dzung Nguyen, for instance, claim the Singleton pattern in iOS to be “the most common and easiest-to-implement design pattern.” Others such as Anand Nimje, whose describes the design pattern as “very popular in development”, says it is a “[very simple, common and easy to use.”
What is the singleton design pattern?
A singleton is a design pattern much like the all too familiar Model View Controller is a design pattern, except it is a pattern whose single instance returns no matter which application resource makes the request. It provides a global point of access to its available methods. Used in situations where a single point of control is desirable, a singleton is great for services like those offered by Agora in the CPaaS market such as live voice, video or broadcasting.
In this adoption guide, you learn how to singlehandedly replace Twilio’s TwilioVideo with Agora’s AgoraRtcEngine_iOS to power live voice, video or broadcasting integrations.
Step One
The first step to replacing Twilio’s delegate design pattern with Agora’s singleton design pattern is to create an easily accessible variable in the AppDelegate.swift:
let AppID = ""
Step Two
The next step requires replacing both the Twilio’s TwilioVideo pod as well as the imports. In the pod file add AgoraRtcEngine_iOS in place of theTwilioVideo pod in the Podfile. At the top of the ViewController file replace the import TwilioVideo with AgoraRtcEngineKit. Run pod update and install.
Step Three
The next step requires replacing the four Twilio delegates with an instance of Agora’s singleton. At the bottom of the ViewController, remove the four extensions: TVIRoomDelegate, TVIRemoteParticipantDelegate, TVIVideoViewDelegate, TVICameraSourceDelegate. With these four delegates removed, create a function for initializing an instance of the Agora singleton:
Here you pass your AppID into the sharedEngine method, assigning the delegate as “self”. While enabling web SDK interoperability is optional, enable it here so that you can use it for testing with the web. With the initialization function setup, make sure to call the function in viewDidLoad(). Finally, make sure to create a property at the top of your ViewController file for initialization:
var agoraKit: AgoraRtcEngineKit!
There is essentially all you need to completely replace Twilio’s heavily delegate design pattern with Agora’s singleton design pattern. With the design pattern of the app’s architecture transformed, the next steps are to replace Twilio’s local/remote functionality with Agora’s local and remote video setups.
Step Four
To replace Twilio’s local/remote functionality with Agora’s local and remote video setups, remove the publisher/subscriber methods:
setupRemoteVideoView()
connect()
disconnect()
prepareLocalMedia()
startPreview()
With these five or any other relevant Twilio specific method already removed, you add three parts for enabling video, setting up the video, and configuring the canvas or video display through a delegate, which is standard in iOS.
Add a function now for enabling video:
func setupVideo() {
agoraKit.enableVideo()
agoraKit.setVideoEncoderConfiguration(AgoraVideoEncoderConfiguration(size: AgoraVideoDimension640x360, frameRate: .fps15, bitrate: AgoraVideoBitrateStandard, orientationMode: .adaptative) ) // Default video profile is 360P}
Agora’s AgoraVideoEncoderConfiguration is designed primarily to empower developers with the ability to set a video dimension, a frame rate, a bitrate, and an orientation so that you can control how to deliver your video.
The local video is, as explained earlier, Alice’s device camera capturing video of her and upon joining a channel, as you will see later, it streams into Bob’s phone as a remote video.
Add an extension to ViewController for the AgoraRtcEngineDelegate to configure the canvas or video:
Agora’s delegate method firstRemoteVideoFrameOfUid kicks off the reception of another user’s local video or, put in another way, Alice’s local video on Bob’s device as a remote video. It is the method designed to handle the first frame coming out of a remote stream! If that UID drops off, didOfflineOfUid handles their departure and its consequences for the call. Finally, add a call to setupVideo() in viewDidLoad().
Step Five
Last but not least is joining a channel. You join a user to a channel with .joinChannel, a single method in the Agora iOS SDK that takes a value for a parameter called byToken, a value for a channelId, a value for info, as well as an uid:
There you go! If you programmed your twilioDisintegrationTool’s xcworkspace according to the instructions in this guide, your code should run as well as, if not better, than the code in the agoraIntegrationTool. If so, then you have successfully adopted Agora! Congratulations! Welcome to the benefits of the Agora SD-RTN!
Although it would be impossible to account for all of the different integrations, you should note that you replaced all of the salient generic features of Twilio with those of Agora in less than five steps. Now it should be easy to simulate fully a large scale adoption with Agora. The changes that need to be made are the shift in design pattern architecture, as well as the new concepts such as local vs. remote video (as opposed to publish or subscribe) together with joining a channel. Accordingly, you probably have a few questions now about product design with respect to SDKs.
Product Design
The SD-RTN, for instance, provides:
Global network coverage
Covers 200+ countries and regions
Covers dozens of small and medium telecommunication providers in China
2. Mass access capability
Supports multiple intelligent terminal access
A single channel can support a million people online at the same time
3. QoS (Quality of Service) capability enhancement
Prevents network congestion in advance
Weak network anti-loss guarantee
4. QoS-based dynamic routing
Comprehensive assessment of network resources
QoS optimal path guarantee
5. SLA (Service Level Agreement) guarantee
7 × 24 support, including ticketing system/IM/community
One-to-one VIP service
6. Global network reliability
Global network availability at 99.999%
Invisible core business, such as anti-DDoS
7. Compatibility and Interoperability
Support for 6000+ devices
Support for mainstream web browsers, including Google Chrome, Safari, and Firefox
Support for iOS, Android, the Web, Windows, macOS, Linux, CoCos, Unity, and so on
8. UDP (User Datagram Protocol) optimizationOptimizes multiple private protocols based on the UDPSelf-developed audio and video codecs
Efficient use of network resources
Self-developed SOLO and NOVA codecs
9. Anti-packet-loss optimization
Algorithm for optimizing anti-packet-loss mechanism under weak network conditions
Audio anti-packet-loss rate of 70%
With these features enabled through the SD-RTN natively both in the iOS as well as the Android mobile SDKs Agora provides a powerful, competitive source of live voice, video or broadcasting for your needs.
Runtime Comparison
Test it out. Although most product specialists take an ad-hoc approach to field-test their SDKs under different conditions (if at all), there is another way. Wouldn’t it be great to complete a runtime comparison? How does TokBox’s video streaming compare to Agora’s SD-RTN in terms of multiple levels of packet degradation? Apple’s Network Link Conditioner is a really useful utility that allows macOS and iOS devices to accurately and consistently simulate adverse networking environments (i.e., 100% Loss, 3G, DSL, EDGE, High Latency DNS, LTE, Very Bad Network, WiFi,
WiFi 802.11ac) that simulate packet degradation, or, check out the blog on successively degraded network conditions with customized packet loss.
Agora’s voice, video and live broadcasting software all run on a Software Defined Real-Time Network (SD-RTN), which is a real–time transmission network built by Agora and is the only network infrastructure specifically designed for real–time communications in the world. All voice and video services provided by the Agora SDK are deployed and transmitted through the Agora SD-RTN.
The Agora SD-RTN may be one motivation for adopting the Agora iOS SDK for all of your voice, video or live broadcasting needs. Another may be pricing. Whatever the need may be, the following guide details how a generically functional app with a working TokBox video integration may be disintegrated to provide essentially the same functionality but on a totally different infrastructure, with a completely different set of required methods, and an entirely new feel.
Adoption Guide
To drive adoption, Agora is offering this guide. To simplify the adoption process, here are the three primary codebases:
The codebase for the sample application is a standardized, generic, and minimalistic set of basic features or functionalities (i.e., call button, answer button, mute button, hang-up button, & programmatic video display view). The sample application with your old TokBox integration connects with each of the features. Your sample application with your new Agora integration is the final destination.
What is the singleton design pattern?
A singleton is a design pattern much like the all too familiar Model View Controller is a design pattern, except it is a pattern whose single instance returns no matter which application resource makes the request. It provides a global point of access to its available methods. Used in situations where a single point of control is desirable, a singleton is great for services like those offered by Agora in the CPaaS market such as live voice, video or broadcasting.
In this adoption guide, you learn how to singlehandedly replace Twilio’s TwilioVideo with Agora’s AgoraRtcEngine_iOS to power live voice, video or broadcasting integrations.
Adoption
At Agora we empathize web developers such as Dzung Nguyen or Anand Nimje, who look for simplicity in development so that our iOS SDK is designed in accordance with popular development sentiments in mind. Many developers such as Dzung Nguyen, for instance, claim the Singleton pattern in iOS to be “the most common and easiest-to-implement design pattern.” Others such as Anand Nimje, whose describes the design pattern as “very popular in development”, says it is a “[very simple, common and easy to use.”
TokBox, which runs on media serves, has three layers comparable to Agora: session, token, publishing / subscribing where the primary difference between each is 1) sessions in TokBox are like channels in Agora, which exists independently of a user in Agora, 2) tokens are like Agora’s two options of security, and finally, 3) subscribing / publishing is a much more redundant pattern for simply joining a channel. But there is no one-to-one correspondence like a bijection from one function in TokBox to another in Agora. This primarily so because of the difference in architecture. TokBox, for instance, relies heavily upon delegates, whereas TokBox’s architecture is based upon a singleton. To illustrate this point, see the diagram below:
Since TokBox’s relies heavily, however, on the delegation design pattern, your first step in disintegrating TokBox is to eliminate the publisher, subscriber or session delegate. Your next step is to integrate Agora’s singleton design pattern, which replaces tokens as well as sessions. Agora’s setup for remote or local video, albeit similar, nonetheless, requires you remove TokBox’s publish/subscribe architecture. With these steps out of the way, the remainder of the guide focuses on joining or leaving a channel.
It might be important to emphasize that after an instance of the AgoraRtcEngine is initialized, nearly all of the important aspects of the SDK’s functionality are called through its methods or, in other words, all of the important SDK functions are its methods: setupLocalVideo(), setupRemoteVideo(), enableVideo(), setChannelProfile(), joinChannel(), leaveChannel(). If you learn how to use these methods, the Agora iOS SDK is at your fingertips.
Step One
The first step to replacing TokBox’s delegate design pattern with Agora’s singleton design pattern is to create an easily accessible variable in the AppDelegate.swift:
let AppID = ""
Step Two
The next step requires replacing both the TokBox pod as well as the imports. In the pod file add AgoraRtcEngine_iOS in place of the OpenTok pod in the Podfile. At the top of the ViewController file replace the importOpenTokwith AgoraRtcEngineKit.
Step Three
The next step requires replacing the three TokBox delegates with an instance of Agora’s singleton. At the bottom of theViewController, remove the three extensions: OTPublisherDelegate, OTSessionDelegate, OTSubscriberDelegate. With these three delegates removed, create a function for initializing an instance of the Agora singleton:
Here you pass your AppID into the sharedEngine method, assigning the delegate as “self”. While enabling web SDK interoperability is optional, enable it here so that you can use it for testing with the web. With the initialization function setup, make sure to call the function in viewDidLoad(). Finally, make sure to create a property at the top of your ViewController file for initialization:
var agoraKit: AgoraRtcEngineKit!
There is essentially all you need to completely replace TokBox’s heavily delegate design pattern with Agora’s singleton design pattern. As stated earlier, an instance of the Agora singleton puts nearly all of the SDK’s important methods right at your fingertips! With the design pattern of the app’s architecture transformed, the next steps are to replace TokBox’s publisher/subscriber functionality with Agora’s local and remote video setups.
Step Four
To replace TokBox’s publisher/subscriber functionality with Agora’s local and remote video setups, remove the publisher/subscriber methods:
publish()
subscribe()
addSubscribeView()
handleError(_ error: OTError?)
Remote/Local v. Publisher/Subscriber
Before we move ahead, let us take a step back. Publisher and subscriber are confusing terms. They lack orientation. Local and remote are specific to a user’s device. It makes more sense to think of video streams in terms of a device-specific orientation than in terms of abstract concepts such as “publishing” or “subscribing”. Think of two users, for instance, like user Alice and user Bob. It is much easier to understand how local and remote are better terms than subscriber and publisher if you think of these two users. From the perspective of Alice’s device, Alice’s local video is her video and the remote video on her device is Bob’s video. From Bob’s, Bob’s local video is his video and his remote video is Alice’s video. Speak in terms of publisher/subscriber. Publishing to whom? Are you just a publisher? Subscribing to whom? Are you just a subscriber? The problem here is that both Alice and Bob are publisher and subscriber at the same time but from whose perspective? There’s no perspective. That’s why it makes more sense to think in terms of local and remote and NOT in subscriber and publisher.
With this concept explained and their four methods removed, you need to enable video, set up video, and configure the canvas or video display through a delegate, which is standard in iOS.
Add a function now for enabling video:
func setupVideo() {
agoraKit.enableVideo()
agoraKit.setVideoEncoderConfiguration(AgoraVideoEncoderConfiguration(size: AgoraVideoDimension640x360, frameRate: .fps15, bitrate: AgoraVideoBitrateStandard, orientationMode: .adaptative) ) // Default video profile is 360P }
Agora’s AgoraVideoEncoderConfiguration is designed primarily to empower developers with the ability to set a video dimension, a frame rate, a bitrate, and an orientation so that you can control how to deliver your video.
The local video is, as explained earlier, Alice’s device camera capturing video of her and upon joining a channel, as you will see later, it streams into Bob’s phone as a remote video.
Add an extension to ViewController for the AgoraRtcEngineDelegate to configure the canvas or video:
Agora’s delegate method firstRemoteVideoFrameOfUid kicks off the reception of another user’s local video or, put in another way, Alice’s local video on Bob’s device as a remote video. It is the method designed to handle the first frame coming out of a remote stream! If that UID drops off, didOfflineOfUid handles their departure and its consequences for the call.
Finally, add a call to setupVideo() in viewDidLoad().
Step Five
Last but not least is joining a channel. Users join channels with.joinChannel, a single method in the Agora iOS SDK:
Although important for production, byToken is not important for our purposes, since Agora enables you to get up and running ASAP without having to deal with tokens by default. If you want to read more about tokens in the Agora SDK, check out the documentation or this blog.
Run
There you go! If it builds and runs, then you have successfully adopted Agora! Congratulations! Welcome to the benefits of the Agora SD-RTN!
Although it would be impossible to account for all of the different integrations, you should note that you replaced all of the salient generic features of TokBox with those of Agora in less than five steps. Now it should be easy to simulate fully a large scale adoption with Agora. The changes that need to be made are the shift in design pattern architecture, as well as the new concepts such as local vs. remote video (as opposed to publish or subscribe) together with joining a channel. Accordingly, you probably have a few questions now about product design with respect to SDKs.
Product Design
The SD-RTN, for instance, provides:
Global network coverage
Covers 200+ countries and regions
Covers dozens of small and medium telecommunication providers in China
2. Mass access capability
Supports multiple intelligent terminal access
A single channel can support a million people online at the same time
3. QoS (Quality of Service) capability enhancement
Prevents network congestion in advance
Weak network anti-loss guarantee
4. QoS-based dynamic routing
Comprehensive assessment of network resources
QoS optimal path guarantee
5. SLA (Service Level Agreement) guarantee
7 × 24 support, including ticketing system/IM/community
One-to-one VIP service
6. Global network reliability
Global network availability at 99.999%
Invisible core business, such as anti-DDoS
7. Compatibility and Interoperability
Support for 6000+ devices
Support for mainstream web browsers, including Google Chrome, Safari, and Firefox
Support for iOS, Android, the Web, Windows, macOS, Linux, CoCos, Unity, and so on
8. UDP (User Datagram Protocol) optimizationOptimizes multiple private protocols based on the UDPSelf-developed audio and video codecs
Efficient use of network resources
Self-developed SOLO and NOVA codecs
9. Anti-packet-loss optimization
Algorithm for optimizing anti-packet-loss mechanism under weak network conditions
Audio anti-packet-loss rate of 70%
With these features enabled through the SD-RTN natively both in the iOS as well as the Android mobile SDKs Agora provides a powerful, competitive source of live voice, video or broadcasting for your needs.
Runtime Comparison
Test it out. Although most product specialists take an ad-hoc approach to field-test their SDKs under different conditions (if at all), there is another way. Wouldn’t it be great to complete a runtime comparison? How does TokBox’s video streaming compare to Agora’s SD-RTN in terms of multiple levels of packet degradation? Apple’s Network Link Conditioner is a really useful utility that allows macOS and iOS devices to accurately and consistently simulate adverse networking environments (i.e., 100% Loss, 3G, DSL, EDGE, High Latency DNS, LTE, Very Bad Network, WiFi,
WiFi 802.11ac) that simulate packet degradation, or, check out the blog on successively degraded network conditions with customized packet loss.
In a previous post we built a group video chat app similar to a Google Hangouts/Meet. Now we want to build something more akin to Instagram Live. When building a live broadcasting web-app, the architecture is similar to that of a communication web-app, except with a slight twist.
For the sake of simplicity, this tutorial will walk through the process of creating a “one-to-many” live broadcasting web-app similar to Facebook and Youtube Live. The web-app will allow a single broadcaster to stream their video feed to a multi-person audience. This project can be extended to support “many-to-many” broadcasting, where multiple broadcasters are streaming to the same audience.
In “Building a Group Video Chat Web-App,” the build conformed to the communication scenario, where every user in the channel has the ability to broadcast their audio and video streams.
In this project we will be implementing a broadcasting scenario, where there is a mix of users. Some users in the channel are broadcasting (broadcasters) their camera streams and other users that will be watching the content streamed by the “broadcasters” (audience).
In this case we need to limit the broadcasting capability to specific users while allowing all other users are in the audience they will only consume the broadcaster stream(s).
Live broadcasting app flow
The graphic above helps us to visualize the flow of our broadcaster web-app. We can see we have to implement two different clients, one for broadcasters and one for the audience. Each client will have a unique interface for each of the user roles (broadcaster/audience) and both will connect to the Agora.io Software Defined Real-Time Network (SD-RTN).
Core Structure (HTML)
In our live broadcast web-app we will have two clients (broadcaster/audience), each with their own UI.
The broadcaster client is almost identical to the client we build for our communication web-app. The main difference being we won’t need to account for other broadcasters, since we’re building this as a one-to-many broadcast.
The above code should look very familiar with a few minor differences — we’ve added some comments to add drop down selectors for the camera and microphone buttons. Along with the button comments there are also two rows of comments for some modal windows that we need to add in.
Let’s start with the camera/mic buttons. We can use button groups to create simple containers for each and we’ll use Agora.io’s SDK to get the input devices and populate these containers. This will give the broadcaster the ability to switch their camera and microphone to any media device connected to their computer/tablet/phone.
Now we are ready to add in our models for configuring the settings for pushing our broadcast stream to RTMP servers. I’ll dive into pushing the stream to external servers a little later in the article, for now lets add the modals and input elements.
Now that we have our broadcaster client we need our Audience client. The audience client is very straight-forward. We have some wrapperdiv along with the fullscreendiv that we can set to 100% of the browser window height and width to play the broadcast video stream.
As with our last project, we’ll use a mix of Bootstrap and some custom CSS. For both clients we’ll use the same css file. The broadcaster client we can re-use most of the CSS from our communications web-app, with some adjustments/updates. For the audience, we can keep the CSS very simple.
Let’s start with our broadcaster. I chose to use Agora.io’s WebSDK to simplify the heavy lifting generally associated with writing a WebRTC interface. I wrote a short post on how to get setup with Agora.io for anyone new to the Agora.io platform.
In our JS code for both clients we start by declaring and initializing the Client object. Once we create the Client object we can join or leave the channel.
var client = AgoraRTC.createClient({mode: 'live', codec: 'vp8'});
Prior to joining the channel we need to set our client’s role. Within Agora’s SDK, any user publishing a stream is by default a broadcaster, but I’d recommend being explicit about the client’s role within the stream to avoid any unwanted streams.
It shouldn’t be assumed that a broadcaster will always have a published stream. In that same breath it can’t be assumed that an audience member will never try to publish a stream (consider someone trying to hack and inject their stream into the broadcast).
We’ll also need to add event listeners for the various engine events that Agora’s SDK provides. Most of the events should look familiar, as the broadcaster has all of the same controls as a video chat web-app, plus a few extras. We have liveStreamingStarted, liveStreamingFailed, liveStreamingStopped, liveTranscodingUpdated, and streamInjectedStatusas the new events. These events are related to the Agora’s ability to push out to external RTMP server or to pull in an external RTMP stream.
The RTMP Push/Pull features will allow us to push the video broadcast out to third party RTMP servers such as Facebook, YouTube, Vimeo, or any other service that accepts an RTMP stream and similarly pull streams from these same sources into our live stream.
Since RTMP Push/Pull is one of the more important additions to our broadcaster UI, let’s first take a closer look at the methods needed to push our stream out to an external service and then we’ll dive into how to pull an external stream into our broadcast.
The two main methods that enable us to push out are setLiveTranscodingand startLiveStreaming. Before we can push our stream to an RTMP server, we first need to set the transcoding configuration using client.setLiveTranscoding(config) passing an object with the various settings. Then, once we have our configuration set, we can call client.startLiveStreaming(url) passing the url we wish to push out to.
We are using a form to allow a user to configure the settings for their broadcast
We are using the form elements to allow the broadcaster to control their settings, but since we are building an object for the configuration we need to ensure that we are pulling the values with the correct types.
One area to take note, is the userCount and transcodingUser. In our example, the user count is hardcoded in because we are only broadcasting with a single user, but if you intend to have more than a single broadcaster in each channel you need to make this number dynamic to the number of streams you want to push to the external server. Along with userCount, the transcodingUser array in our example is a single element array, but you can make that dynamic if you wish to have more broadcasters in the external stream.
Another point worth mentioning: if you are broadcasting more than one stream to a 3rd party service using RTMP, the streams will be merged into a single stream. To allow developers to control the layout when the videos are merged into a single video stream. The configuration object allows us to set the overall width and height of the stream and then within the transcodingUser array we can also specify the scale and position of the individual streams within the merged video stream.
Earlier we added some dropdown UI elements to our microphone and camera buttons. Let’s now take the time to add in the Agora method to load the list of our devices.
Its best to wait until the user has granted permission to use the devices before we ask for the list of permissions because each browser has varying support as to how much information they return. For example, in Safari the browser will return an empty array but in Chrome the browser returns an array of devices but without any identifiable information. On the other hand, every browser gives consistent access once the user has granted permission.
In the snippet above we store the devices in arrays to quickly switch whenever the user selects a different device. The stream.switchDevice()method allows us to pass in the deviceId and quickly switch the input device on our broadcast stream.
The audience client is much simpler. We have most of the same event listeners but in our use-case we will only need a handful of them. We’ll include the extra ones in the even that we want to extend the demo at a later date. Below is the full implementation of our agora-audience-client.js.
There are a few different ways to test and deploy our broadcast web-app. We can use localhost but if we want to share with our friends we must spin up a simple web server with a https connection. This is due to browser restricts when accessing userMedia resources like the camera and microphone.
Once the server is ready we can share our ngrok link with a friend or two and run our test broadcast.
NOTE: For testing I am using an iPad and iPhone as the audience, and my laptop is the broadcaster.
That’s a wrap
Thanks for following along. Now it’s your turn to go and build something amazing!
Thanks for taking the time to read my tutorial and if you have any questions please let me know with a comment. If you see any room for improvement feel free to fork the repo and make a pull request!
Please note: Due to high demand, I have updated the Code Sandbox example code to not include an AppId.
At the AllThingsRTC conference, Agora.io proudly hosted numerous speakers who addressed some of the latest industry developments in their businesses, pointing out advancements in RTC services and platforms as well as the challenges posed by ongoing RTC performance needs.
Several talks tackled the issue of the AV1 codec, where it came from, and how it might be positioned to launch a greater evolution in how real-time communications are offered alongside the video on demand (VOD) services. In particular, the opening keynote speech by Debargha Mukherjee, the principal software engineer at Google, gave an expansive overview of AV1.
The importance of AV1 is critical in the junction of RTC and VOD offerings, as video is drastically changing how internet tech is evolving. The video tech landscape is shifting faster than ever, and rapid advances in video compression tech are essential to cope with ongoing explosion in internet video demands. A few points of evidence of this include projection that, by 2021:
82% of all internet traffic will be video
50% increase of video on demand
15X growth in live video
Every second, 1 million minutes of video will cross the network
The Outdated Refresh Cycle
Debargha made the point that the traditional 10-year codec refresh cycle driven by hardware isn’t enough to keep up with this growth. Instead, software-based codecs are more easily deployed (letting hardware support catch up on a case-by-case basis).
He pointed out AV1’s beginnings back in 2010, with Google’s establishment of the WebM project, to develop royalty-free formats for the web. One of the results, VP9, becoming the first real challenger to MPEG codec.
Formation of AOM
Then, in 2015, the Alliance for Open Media (AOM) was formed as a collaborative, cross-industry effort to build royalty-free codecs and promote a royalty-free ecosystem. Now with 42 members throughout the video streaming and RTC service marketplace, AOM produced its first video codec, AV1, with the goal of 30% bitrate reduction over VP9 with royalty-free tech.
AV1 is currently the most advanced royalty-free video codec from AOM, and external adoption continues to gain steam with large improvements in encoding speed and performance made daily. It’s used in Chrome, Firefox, and Edge apps, as well as Chrome, Windows, and Linux OS, showing that it’s in the early stages of global industry adoption.
AOM’s continued focus is establishing a 5-year refresh push for AV2 to come out in 2023 and achieve at least a 25-30% gain over AV1.
This includes:
Better prediction modes
Improved non-translational motion models
In-loop restoration for coding
Learned neural network-based compression
In the end, it was clear that, while codec technology has been evolving quickly, for RTC, it remains about a generation behind. Organizations like Google are working hard to change the process of codec standardization and development to shorten the deployment turnaround while finding ways to serve RTC needs explicitly.
Scientists have been studying artificial intelligence and its applications for decades, but today the term “AI” is used more frequently than ever. As companies around the world begin to utilize AI across a variety of industries, from social media and gaming to healthcare and transportation, it will play an increasingly important role in our lives and the way we interact with others—especially through live video features such as interactive streaming.
What is AI?
Before we can explore AI’s impact on interactive streaming, it’s important to know what AI actually is.
Put simply, AI refers to the process of incorporating human intelligence to machines, especially computer systems. AI is often used interchangeably with other terms such as “machine learning” or “deep learning,” but they’re not the same. Machine Learning (ML) is the training process for machines so that they can learn how to make decisions, while deep learning (DL) is a subset of ML. DL algorithms work similarly to the human brain in that when they receive new information, they compare it to a known item to make sense of it.
How AI Can Improve Interactive Streaming?
Live video is expected to make up 17 percent of all video traffic by 2020. While the growing popularity of live engagement features is giving companies and individuals alike more opportunities to interact with each other, the real-time nature of live video also presents its fair share of issues—both ethical and tech-related.
As more videos are recorded and broadcasted live, AI will play an increasingly crucial role in monitoring, improving, and personalizing interactive streams. Detecting Harmful Content Live communications-enabled apps give people the ability to spend time with friends, meet new people, and learn about cultures they might not have the opportunity to experience otherwise. However, a few bad apples can ruin the experience for others by live streaming inappropriate content or writing hurtful comments. While these videos are typically flagged within minutes, hundreds of people may see them before they are removed.
That’s why Facebook and other platforms are employing AI to remove and even prevent harmful content before it’s even posted.Image analysis techniques such as image classification and object detection are used to categorize and detect specific images, while images segmentation puts those images into context. The more text and images the machine receives, the better it gets at detecting potentially harmful content.
Improving Interactive Streaming Technology
AI isn’t just making the interactive streaming space safer; it’s pushing video and voice quality to new heights.
YouTube and Netflix both utilize ML to dynamically optimize the encoding parameters for every video on their platforms. In addition to improving the quality of experience (QoE) for their users, ML reduces the number of bits required for the same quality and reduces the overall costs because less bandwidth is required.
To provide our customers around the world with high-quality interactive streaming experiences, Agora uses ML in a variety of ways. Software-Defined Real-Time Network (SD-RTN), Agora’s proprietary network, uses ML to dynamically manage the routing of voice and video to overcome severe packet loss incidents and provide uninterrupted streaming.Agora Super Resolution, a new feature recently announced at the AllThingsRTC conference, leverages the computing power of ML and AI algorithms on devices to render more clarity and sharpness during interactive streams. Super Resolution allows for lower bandwidth allocation during streams, which ensures that users in troubled network environments or emerging markets experience the best live voice and video possible.
Personalizing the User Experience From the Snapchat-inspired filters across many social media apps to the voice changing effects that bring mobile games to life, AI is powering many of the top and emerging platforms and applications.
However, interactive features aren’t limited to social media and gaming. Enterprises across a variety of industries can use AI-powered engagement features to create more interactive live streaming experiences, whether they’re communicating with their customers or with their internal teams.
Agora offers over 600 different AR stickers and filters—all of which can be customized for your application or platform. Customers can also take advantage of live voice features, such as 3D spatial audio, active speaker detection, and voice effects including sound mixing and sound reverb to make live streams and video calling more fun and engaging.
What’s Next for AI in Interactive Streaming?
As the interactive streaming space continues to grow and evolve, AI will continue to have a major impact on the space, as well as the many other industries and verticals it is transforming. In the future we can expect even smarter, more engaging, immersive live streaming experiences powered by AI. Want to incorporate interactive streaming or real-time engagement features in your app or platform? Talk to our team.
Alongside gaming and dating, another huge industry that is seeing major transformations through real-time communication is fitness and health. The whole fitness and wellness landscape is no longer reliant on in-person classrooms at a local studio or gym. Trainers and nutritionists are able to go global in their outreach and instruction, and people are able to access greater information and guidance than ever before through video and voice chat.
At AllThingsRTC, a panel of fitness and wellness experts discussed their companies’ various uses of RTC for personal training, mental health, and nutrition, among other topics. The panel was moderated by Haley Shapley, a writer and editor from Seattle, and attended by Shayna Schmidt, the co-founder and VP of operations at LiveKick, Lauren Foundos, the CEO of Forte, and D Sharma, the founder of Meditation.Live.
Is Fitness RTC Just Another Fad?
The fitness industry is quite rife with fads, from new exercise equipment to the latest diet craze. So is the technological shift of RTC just another fad that will surge in popularity and then fade away?
The panelists’ answer is a resounding no. Live, interactive video for fitness and health purposes is definitely here to stay. After all, people of all ages and lifestyles are seeking individualized, on-demand workout and nutrition advice. RTC empowers these goals and gives people the motivation to achieve greater fitness performance than ever before.
Live video is now streaming real classes to help people get engaged with a larger community of like-minded, health-focused individuals. It replaces the “manicured” look often seen in traditional workout videos, and also gives people a much larger amount of exercise varieties with new instructors and routines every day.
Live video does make for unique challenges, though, such as keeping the streaming quality intact. At Forte, trainers do get extensive training in how to work with the video format and handle the technical elements of the broadcast so customers and viewers aren’t left struggling with lag or stuttering feeds.
Mind Over Matter
D Sharma made the point that, no matter what industry one is in, mental and emotional burnout is a constant hazard—if not inevitable for most people. Meditation is a powerful solution for this, and it can enhance the physical health and fitness that most others are seeking in the first place.
Exercise and nutrition are facets of the overall self-care and wellness trend in today’s culture, combating chronic disease, stress, and mental/emotional maladies. Part of the big challenge with this is providing an interactive learning format via RTC, rather than trying to exactly mimic a meditation session where there’s a lot of silence and less engagement.
Establishing the Platform for Fitness Performance
Because of the importance of fitness and wellness in people’s lives, having steady access to their online training is critical, and so any aspiring health platforms must have the bandwidth to handle that growing demand of online users.
One way this is being addressed is when a company partners with a larger studio rather than just individual instructors, ensuring that the studio comes equipped with the reliable wifi and broadcasting gear that the trainer might not be able to afford or maintain on their own.
An Exciting New Frontier
RTC will continue to revolutionize how people access and get involved with their fitness and health communities, while also tackling the technical challenges these platforms present. One of the biggest ways it will continue to impact our world is in providing direct access to health and wellness activities to specialized demographics, including pregnant women and senior citizens who aren’t as mobile.
More trainers will also be able to harness greater earnings via online classrooms and instruction, since they will not have to worry about the logistics of space for larger student signups, or the extra cost of overhead that would normally be involved in a growing client base.
This past July, the best Fortnite players in the world competed in the inaugural Fortnite World Cup Finals. Live-streamed on both Twitch and Youtube, the finals of the competition garnered more than two million concurrent sessions, rivaling the average minute audience of 2.6 million viewers who viewed the Super Bowl live stream this year. With eSports revenues expected to top $1 billion this year, the time is ripe for casinos and sportsbooks to take advantage of the video game competition wave.
So how can you bring the excitement of eSports events to your customers’ mobile devices and laptops through live content? Here are some ideas: Create Engaging Live Shows
One of the most compelling features of live video and voice is that it allows viewers to immerse themselves in an event virtually even if they’re not physically present. By making live content easily accessible across mobile, web, and desktop apps, venues can encourage viewers to not only watch but interact and engage in real-time. Hosting daily or weekly live eSports shows from a sportsbook is an ideal way to attract new sports fans and keep the conversation going long after the event or game has ended. Some features ideal for fostering interaction:
Real-time chat. By directly integrating this feature into your broadcast, viewers can communicate with each other and the hosts without depending on an outside channel.
Live video calls. Fans can call in with their thoughts, opinions, and feedback, which encourages other viewers to do the same.
Co-hosting opportunities. Giving away prizes, like co-hosting opportunities, encourages users to participate and tune in again and again. Betting lines. News channels to bet on sporting games and events are a win-win for fans and sportsbooks.
Virtual gifting. Opening up new channels of communication through live video and voice allows for new monetization opportunities, such as virtual gifting.
Host eSports Tournaments
The opportunities don’t stop at live eSports shows. Large, established casinos and small- and medium-sized gambling houses alike can reap the benefits of hosting a tournament in-person while streaming it for thousands or even millions of people across the world to watch in real-time. To take full advantage of the eSports tournament both offline and online, you can:
Develop your own eSports league. Build your casino’s brand in the eSports world by launching your own teams.
Run World-Cup level tournaments. Draw attention to your casino or other venues by broadcasting an established tournament.
Host monthly tournaments. Can’t host a major tournament? Create your own tournament schedule and draw a physical and virtual audience over time.
Integrate group video chat into the experience. Overlaying the feature on top of the eSports tournament stream encourages in-app or platform engagement.
Add virtual gifting and betting lines. These monetization features can be embedded in the tournament viewing experience.
Broadcast Live Events and More
In addition to hosting and broadcasting eSports-related shows and tournaments, casinos and sportsbooks can use live video to draw attention to and monetize other events, such as poker tournaments and concerts, as well. Access to live streaming content is also an ideal perk for VIP guests and customers.
To take full advantage of the many opportunities eSports and other live events can bring, casinos and sportsbooks should consult with a real-time communications (RTC) provider such as Agora and determine what kind of real-time engagement experiences are the best fit. With several partners and customers in the entertainment, gaming, and eSports industries, Agora has the experience and tools necessary to help you take your next live event to the masses.
Will you be at the Casino eSports Conference (CEC) in Las Vegas on September 4th and 5th? Join us for our COO Reggie Yativ’s speaking session on Wednesday, September 4th at 12:40 PM PDT to learn more about how you can monetize your eSports audience, and stop by our booth,to learn more about how Agora’s live video, voice, and interactive broadcasting solutions can help take your eSports experiences to the next level.
In the tech track presentations at the recent All Things RTC conference event, we had a fantastic talk by a Founder and CTO of SignalWire, one of the many dev-oriented organizations that partners with Agora to achieve incredible results.
Evan gave audiences a quick overview of SignalWire—a tech company focused on software-defined telecommunications. The company’s goal is to create a scalable, global telecom infrastructure that forms the basis for an easy-to-use, intuitive RELAY API. Its ultimate mission is to empower devs of all skill levels to build amazing communication apps.
Everything SignalWire does is rooted in open source. The founders are actually the creators of the FreeSWITCH platform, which is now used by over a million devs worldwide.
So what’s the main issue SignalWire is helping devs address?
Elastic, Global Communications Infrastructure
A big problem for any developer is getting up to scale on their communications, especially when they’re operating globally. It’s difficult to make everything accessible at once but is critical in order to streamline growth and optimize connectivity and productivity. SignalWire, however, lets people connect around the world right away without any ramp-up period.
How? By Leveraging Containers
Evan provided a brief rundown of their main technique: using containers, which are lightweight, immutable, distributable program images. These are single process, ephemeral data loads that provide scalability due to built-in resilience and orchestration layers. Plus they offer higher packaging density than virtual machines thanks to shared files.
While this looks good for just one computer, what about when “n computers” becomes the central part of the equation?
That then requires an orchestration framework. Two of the big ones now are Kubernetes and Docker Swarm.
Evan emphasized that it doesn’t really matter which orchestration framework you pick, whether Swarm, Kubernetes, or otherwise. The point is to just pick one and start building.
SignalWire goes with Docker Swarm for several reasons:
Why Docker Swarm?
Orchestration layer built into Docker engine
Simple to scale container services across multiple nodes
Built-in state reconciliation, health checks, and eventing system
Native DNS-based service discovery
Rolling updates for zero downtime recovery deployments
Very easy to set up and monitor.
He also shared several operational tips and tricks when using either the Swarm or Kubernetes platforms.
First, keep master nodes close together but in different regions/providers in order to keep latency at a minimum. Second, working on a global scale means having potential high inter-node communication times. So keep an eye on metrics and logging to avoid any major disruptions. Lastly, encrypt all inter-service communications.
SignalWire recognizes that in order to reach global RTC, a company must have a wide footprint. He encouraged attendees to be everywhere when it comes to RTC, and stated that there’s no excuse for not being ubiquitous at this time, thanks to commodity data centers across the planet.
SignalWire’s goal is to eventually establish a 50ms footprint, where no one on Earth is more than 50ms away from an RTC node, and they’re growing closer to this all the time.
To wrap up his presentation, Evans gave a few last pieces of advice to devs wanting to make the most of their RTC infrastructure. When it comes to cloud providers, don’t get tied down to a single one. Remain as agnostic as possible and leverage each provider for their unique strengths.
SignalWire is working to help companies customize the infrastructures available to solve their tech use cases. Their motto? “Build cool stuff!”
SignalWire will soon be opening a public beta for companies to add PSTN & WebRTC connectivity into Agora conferences. You will be able to call into Agora conferences using a normal telephone number or WebRTC client, or dial out to the greater world. Additional integrations like text-to-speech and transcriptions are right around the corner. SignalWire is excited to help the world of Agora users reach out to the rest of the Internet and beyond.
As if the Agora Video SDK for unity wasn’t good enough with Android, iOS, and Windows support, it just got that much better by adding Mac support as well. Pair that with our ability to interoperate between our Native SDK and Unity SDK and you have a closed-loop solution ready to build on.
Follow along in this tutorial to see just how easy it is to add live realtime video communication to your desktop or laptop-based Mac app. Let’s run through these steps together.
To start, open Unity and create a blank new project named Agora Video Demo.
The next step is to navigate to the Unity Store (if you are in the scene view, click the Unity Store tab) and search for “Agora Video SDK”. Once the plugin page has loaded, go ahead and click Download. Once the plugin page has loaded, go ahead and click Download. Once the download is complete, click and Import the assets into your project.
Update code
Great! Now that we have the plugin downloaded and imported to our project we need to make 1 quick update before we can build and run our app. Double click the TestHelloUnityVideo.cs file within the assets panel to edit it.
The file will open in Visual Studio (Unity’s default code editor). Let’s scroll down to line 16.
You will need to change the App ID to a new one you create on the Agora.io website. Don’t worry about charges during early development, they give you the first 10,000 minutes free every month
At this point, we need to log into our Agora.io developer account and create a new AppID or select an existing one. Then replace“YOUR_APPID ” on line 16 by copying and pasting over it. Make sure to save your changes.
We can scroll through the TestHelloUnityVideo.cs file to see all the various event callbacks the Agora.io Voice SDK for Unity offers.
Running the Sample Application
Open the Build Settings and drag the TestSceneHome.unity & TestSceneHelloVideo.unity scenes from the assets list into the “Scenes in Build” list. If it is not already selected, select PC, Mac & Linux from the Platform list and select Mac as the Target Platform then click Switch Platform.
Once Unity finishes its setup process, open the Player Settings. We will need to make sure our Mac app also has a unique package name, I chose com.agora.videodemo.
Then click Build And Run. Unity will prompt you to save your project, I create a folder for my builds named Builds and Create a folder inside of that named MacBuilds to hold my Mac builds, this will keep you from having issues in the future if you want to use the same project to run on Windows, iOS, or Android.
Other Resources
The complete API documentation is available in the Document Center.
For technical support, submit a ticket using the Agora Dashboard or reach out directly to our Developer Relations team devrel@agora.io
Being able to communicate with across mobile platforms is great but when you add the ability to connect to the Windows platform you begin to open a whole new world of possibilities. With our Agora Video SDK for Unity3D, you can add cross-platform functionality to Windows, Mac, Android, and iOS. Follow along and I will show you how to get video communication up to and running in no time on your Windows device.
Getting a sample Windows app up and running is simple and took less than 10 minutes. Let’s run through the steps together.
To start, open Unity and create a blank new project named Agora Video Demo.
The next step is to navigate to the Unity Store (if you are in the scene view, click the Unity Store tab) and search for “Agora Video SDK”. Once the plugin page has loaded, go ahead and click Download. Once the plugin page has loaded, go ahead and click Download. Once the download is complete, click and Import the assets into your project.
Update code
Great! Now that we have the plugin downloaded and imported to our project we need to make 1 quick update before we can build and run our app. Double click the TestHelloUnityVideo.cs file within the assets panel to edit it.
The file will open in Visual Studio (Unity’s default code editor). Let’s scroll down to line 16.
You will need to change the App ID to a new one you create on the Agora.io website. Don’t worry about charges during early development, they give you the first 10,000 minutes free every month.
At this point, we need to log into our Agora.io developer account and create a new AppID or select an existing one. Then replace“YOUR_APPID ” on line 16 by copying and pasting over it. Make sure to save your changes.
We can scroll through the TestHelloUnityVideo.cs file to see all the various event callbacks the Agora.io Voice SDK for Unity offers.
Set Plugin Identities
Because the Agora.io Video chat app has cross-functionality with Android, iOS, Mac, and Windows we will set the plugin identities. You will need to also choose between x86 and x86_64 and set the identities accordingly. Here I will go into Assets > Plugins > x86 folder and select only Standalone so I can run it on my Windows device and then hit Apply.
Here I choose x86 as my Architecture
So that the plugins don’t collide we will then need to go into Assets>Plugins>x86_64 and select all the files. Then go into the Inspector and uncheck everything and hit apply.
Deselecting the x86_64 plugin will keep you from getting a collision error.
Running the Sample Application
Open the Build Settings and drag the TestSceneHome.unity & TestSceneHelloVideo.unity scenes from the assets list into the “Scenes in Build” list. If it is not already selected, select PC, Mac & Linux from the Platform list and select Windows as the Target Platform. Since the Video SDK 2.9.0 update, x86 and x86_64 architectures are both supported. If necessary click Switch Platform.
Once Unity finishes its setup process, open the Player Settings. We will need to make sure our Windows app also has a unique package name, I chose com.agora.videodemo.
Then click Build And Run. Unity will prompt you to save your project, I create a folder for my builds named Builds and Create a folder inside of that named WindowsBuilds to hold my Windows builds, this will keep you from having issues in the future if you want to use the same project to run on Mac, iOS, or Android.
Other Resources
The complete API documentation is available in the Document Center.
For technical support, submit a ticket using the Agora Dashboard or reach out directly to our Developer Relations team devrel@agora.io
Launching a new app with real time engagement is a tremendous feat, and we know the time, work, and determination it takes to bring the vision to life. While the Agora platform took care of the real time voice and video, we heard our customers increasingly asking for recommendations on complementary solutions and services to help them go to market faster. For example:
Add facial filters, avatars, or beautification effect to create fun and engaging experiences
Enable PSTN access so users can connect through a phone number
Look to hire qualified external developers to supplement their internal development team.
That’s why we’re excited to announce the launch of Agora Partner Gallery, a new resource that gives our customers access to our network of Development, Technology, and Platform Partners. All partners in the Agora Partner Gallery are required to go through a verification process to ensure they are compatible with the Agora SDK. Additionally, Agora requires all partners provide a demo app or customer reference as based on the Agora SDK to demonstrate their technical expertise.
Meet Our Launch Partners
Our first official development and technology partners are listed below, and we plan to add more partners in the future to ensure our customers have access to the most comprehensive network of solutions and services available for real time engagement.
Development Partners
BeLive has unparalleled experience in building apps, app ecosystems, and complete integrated solutions for business domains such as audio calls, video calls, and VOIP apps. BeLive has created Singapore’s most popular live-streaming platform with over a million registered accounts where users can be informed, entertained, and discovered. As an official partner of Rakuten, Samsung, and many others, BeLive knows the importance of delivering first-class, uninterrupted product enjoyment to millions of customers.
BigStep Technologies is a full-service software development company specializing in developing modern Web and Mobile Applications, Enterprise Applications, and API Services, and in providing DevOps and Cloud Solutions. BigStep works with startups and enterprises to rapidly evolve ideas to products and solve business problems.
DreamTeam Mobile provides high-quality development and testing services in the mobile app domain. The DreamTeam Mobile team has knowledge and experience with business domains, including audio calls and video calls, VOIP apps, navigation and mapping apps, geolocation-based apps, translators, business (B2C) apps, messengers, ticketing systems and more.
Pepper Square is a design-driven organization with a vision to simplify every software product interface. The company’s focus is on UX & UI design and software product development.
SiliconPrime Labs is a full-service software development company that started at Stanford Lab in the heart of Silicon Valley. Since 2011 SiliconPrime has been helping startups and big enterprises build live streaming business platforms from backend and frontend to mobile apps.
Swarm is a digital studio that creates products people love to use, from mobile apps to OTT, Web, and even complex technologies like video, IoT, and machine learning/AI. Swarm’s solution combines augmented reality (AR) technologies from Google (ARCore) and Apple (ARKit coming soon) with Agora to live stream a shared augmented reality experience.
UHP Software supports businesses of all sizes in their quest for digitalization. Besides custom solutions, UHP Software also offers SaaS solutions such as the Realtime Platform, an end-to-end, interactive field service collaboration platform for equipment manufacturers and users. This innovative software enables remote experts to send precise visual instructions to field technicians using real-time augmented reality, live video, messaging and file-sharing functionalities.
WebRTC.ventures builds innovative solutions that enable the communication of the future. The company delivers easy-to-use, encrypted, high-quality apps for businesses that feature voice, video, and data customization.
Technology Partners
Articom is an AI-powered audio and video analytics platform. The Articom content moderation solutions for Agora help reduce workload on the moderation team by more than 80%.
Banuba builds ultra-immersive camera apps with the world’s fastest Face Augmented Reality SDK. Their FaceAR SDK combines augmented reality software like Face Filters, Beautification, Avatars, and Analytics — all based on their innovative face tracking technology that functions robustly both on iPhone-Xs and $100 Android phones.
Bunch provides a social gaming platform that makes it easier for gamers to socialize, before, during, and after games. With Bunch’s social gaming SDK, game developers can easily add social features similar to Discord to their games, and incent longer game sessions.
FaceUnity provides professional solutions for 3D digital avatars, facial AR effects, and facial beautification. FaceUnity’s current products include a 3D Animoji SDK, a 2D/3D animated facial stickers SDK, and an artificial facial beautification SDK.
TurboBridge offers a flexible, highly-reliable audio conference service that supports thousands of large and small businesses, government agencies and non-profit groups. TurboBridge has integrated with the Agora Linux Server SDK to enable PSTN access to Agora channels. Agora customers can now add PSTN access to their applications by leveraging TurboBridge’s worldwide DID network which spans 60+ countries.
Voctro Labs was founded in 2011 with the aim to become a world benchmark in the field of voice and audio technologies for creative industries. The team has gathered over 15 years of experience in creating expressive voices, which have resulted in several commercial patents, having text-to-song as our flagship application. The company’s Voiceful brand technologies are available as Cloud API and Mobile SDK for integration in apps, video games, VR, advertising and other media projects.
VRJAM is the world’s first real-time, streaming platform for 3D graphics for mobile devices and smartphones. It empowers brands, business owners, and content creators to create and stream ultra-high quality, real-time 3D graphics via mobile devices and smartphones. Using native streaming technology, VRJAM can stream 3D, interactive content to millions of people globally using a highly innovative, server-based data streaming solution that is, in every way, the first of its kind.
White is a cross-platform, real-time, interactive whiteboard. It can be used for tele-education, meetings, remote work cooperation, presentation, etc. The White product serves a large number of corporate users, and its products are stable, feature-rich and widely acclaimed. At the same time, it also partners with a number of well-known cloud service companies and is engaged in strategic cooperation to improve the product ecosystem of online collaboration.
Want to learn how Agora and our partners can help meet your company’s needs? Talk to our team.