Video content is king—but video content in particular is emperor when it comes to digital outreach and audience impact. Did you know…
- The average user watches 40 minutes of YouTube video on their device every day
- 6 billion hours of YouTube videos are watched every day
- Facebook posts with videos are shared 2X more than text- or image-based content
- Facebook Live videos are watched 3X longer than other videos
Almost every online platform, big or small, is finding some way to incorporate video chat or other interactivity in order to boost usage and user engagement. Otherwise they run the risk of losing relevancy with each generation.
For instance, let’s look at one of the digital powerhouses: Facebook. Facebook announced the one-to-one and group video chat feature on Instagram Direct in 2018, at their F8 Conference. This feature allows users to connect with each other using real-time video chat, even if they cannot physically be together. There is no doubt that many popular social media giants are paying more attention to the implementation of real-time audio and video technology in their platform.
Agora is already aiding many businesses in transforming their traditional applications to excelling in the video revolution. These developers and companies turn to Agora to provide unparalleled level of excellence to their app. Here’s just one example. Way before Instagram’s announcement, Momo, the top social and dating application in China, has started to explore a new use case for real-time audio and video communication features, which are becoming popular in the market: “KTV Together.”
KTV refers to Karaoke Television. It’s for people to sing along with recorded music using a microphone. KTV is heavily ingrained in Southeast Asian culture. Traditionally, people required a karaoke box and TV to start. Since nearly everyone has a smartphone now, online karaoke can be a new exploration in the social media market–one that Agora SDK is more than ready to help you discover and dominate.
How Does “KTV Together” Work?
- After the host creates a chat room, they can turn on the KTV feature and grant the microphone access.
- The room host picks a song online (through a karaoke database, such as Karafun). The participants and the host can start singing along with the songs by following the video and subtitles.
- Other audiences can send requests to take over microphone, letting them pick a different song and sing.
- Singers can also adjust the volume and background music.
- The room host can play, pause, or skip the current song.
The Challenges of Online KTV
Song Synchronization Control
Online KTV emphasizes participants singing “together.” The room host can invite multiple listeners to sing, and everyone has a chance to shine in the chat room.
In this process, the “microphone” access can be transferred to different audiences in sequence. And the host can still control the song playing, such as play or pause the song. However, if we use RTMP to do the transmission, the network delay is relatively high. In the case of good network conditions, when the host pauses or skips the song, it may take 3-4 seconds for the audience’s client side to receive. Or the song may have already started, but the next singer’s client side may not have yet started. If the network is poor, the delay may exceed 10 seconds.
High Sound Quality and Image Quality
How Should We Solve It?
Here is the logic as shown above:
- The room host turns on the “KTV together” feature and becomes the lead singer.
- The host’s client side pulls and reads data from the third party Karaoke database.
- The audience sends a request to gain the “microphone” access.
- After the request is approved by the host, the audience can pick songs from Karaoke database.
- The host’s voice and the background music are transmitted to cloud (Agora’s SD-RTN) based on UDP protocol.
- UDP protocol delivers the host’s audio and background music to the audience side.
- When it is time for the next singer to sing, the singer has the “microphone” access. Except for the music control access, the singer in sequence should have the same access as the host.