• 2 min read

Live Real-time captions with Azure Media Services and Player

Delivering real-time multi-language captions for a live events is easy with Azure Media Services and SubPly.

Last month, Microsoft Azure Media Services teamed up with the Microsoft Production Studios to webcast the Microsoft Build and Microsoft Ignite keynotes. Combined, the events served live, HD quality streams to hundreds of thousands of unique viewers leveraging the power of the cloud. Using Azure Media Player, the webcast performed very well and was accessible on a broad range of platforms, devices and browsers. Furthermore to these live events being delivered cross-platform, they were also served with real-time multi-language captions inside Azure Media Player through a unique solution built with a company called SubPLY.

How did it work?

In this solution, live streaming data was pushed from the encoder and RTMP ingested into East US and West US Azure Media Services datacenters. In addition to this, two low bitrate RTMP streams were also sent directly to SubPLY servers, allowing the captionist to receive the streams and generate associated English captions slightly before clients receive the content from the CDN. The real-time generated captions were linked to the embedded timecodes in the RTMP streams and pushed to a Azure hosted load balanced webservice, where they were then machine translated to several different languages using a solution developed around Microsoft Translator technology.

Before the start of the live event, during the pre-roll slate, a synchronization video was used to allow SubPLY to sync the timecodes between the RTMP feed from the encoder and the streams served by the CDN from the Azure Media Services origin. This allowed the captions and the live video streams to be synchronized when viewed through Azure Media Player.

The SubPLY JavaScript extension for Azure Media Player received a list of languages to display from the Azure hosted webservice. Within the player, viewers could choose to enable captions and view professionally generated English captions or choose any of the 10 approximated machine translated languages.  Once a language was selected from inside the player, the extension retrieved the caption data from the load balanced webservice and displayed them over the corresponding timecode aligned video fragments that were delivered from the CDN in real-time.

All styling to the captions were applied using CSS.  Attributes for setting the default language, color, outline, shadow, font and position, were all configurable when initializing the SubPLY JavaScript extension.


Utilizing the power of Azure Media Services, Microsoft Production Studios was able to use an end to end live workflow to ingest their live streaming events into the cloud, leveraging Azure Media Service’s on-the-fly protocol transcoding to mpeg-DASH, Smooth Streaming and HLS in conjunction with a live captioning workflow provided by SubPLY all combined and served by Azure Media Player to deliver their content to viewers cross-platform around the world!

Take a peek behind the curtain to learn more about this event and end to end workflow with Azure Media Services.