Live audio streaming
The business goal
Our client is a small music studio from Chicago. The business goal of this project is to provide a smooth experience for connecting up and coming music talent and producers using one app. This application would transmit voice/audio with close to real-time communication. For that purpose, they need a high-load and simple-to-use app.
The goal of the developed desktop application is to hook up audio stream playing on an ASIO sound card and send it to a remote party with minimal delay and with perfect quality.
For this project, we designed an architecture from scratch. The framework consists of two parts: one is a desktop application. The other is a backend server. We use VoIP approach similar to SIP/RTP, but use extremely optimized codes which work only with Vorbis audio codec. For reliable NAT traversal, the applications communicate with a rfc5766-compliant TURN server. The HTTP backend is used as a signaling protocol.
The backend consists of two logical parts based on OpenResty and MediaRelay. Both components share one Redis instance as persistence storage. The backend is designed to be scalable and supports hundreds of connected clients and media streams.
The project resulted in creating a Minimum Viable Product that our client used for bringing further rounds of investments. This application also attracts producers and artists.