AI & automationReady to pilotBuilt by LabsLast updated 29 July 2026

Closed CaptioningReal-time captions and translated subtitles for live channels

Live channels that cannot caption their output are failing accessibility obligations and leaving foreign-language audiences entirely unserved. Closed Captioning adds real-time captions and translated subtitles to live streams as they run, transcribing and translating the audio with AWS services and embedding the captions into the outgoing stream, so they travel with the content to every player.

Real-time TranscriptionMulti-language TranslationCEA-608/708 Support
Closed Captioning logo

Try the demo

Loading livestream status...

Closed Captions Livestream

Translated Subtitles Livestream

The problem this solves

Regulatory pressure on live caption coverage is increasing across every major market. For broadcasters and telcos carrying live channels, the gap between what is legally required and what is technically feasible without a dedicated caption team is widening. Human captioners are expensive, in short supply, and cannot be scaled to cover every feed on a platform.

Translation compounds the problem. A channel that reaches its domestic audience via captions cannot reach a foreign-language audience without a separate workflow - typically a separate vendor, a separate delay, and a separate integration with the playout chain. A pipeline that handles both transcription and translation in a single pass, embedded in the stream itself, removes both problems at once.

Who this is for

This is relevant if you are:

Broadcaster

A broadcaster carrying live linear channels that has accessibility obligations it cannot currently meet at scale with human captioners

Telco

A telco distributing live channels in markets with mandatory caption requirements, looking to automate compliance across a large number of simultaneous feeds

Sports organisation

A sports organisation live-streaming events to international audiences and needing real-time translated subtitles without a separate post-production step

How it works

  1. 1Audio is ingested from the live RTMP or SRT feed and streamed continuously to AWS Transcribe, which returns partial and final results with word-level timestamps at streaming latency rather than per file.
  2. 2A token stabilisation layer filters the partial results, holding each word until it is confirmed stable - so nothing flickers on screen and no sentence rewrites itself in front of the viewer.
  3. 3Confirmed text segments are passed to AWS Bedrock for translation into the target language, carrying sentence context across segment boundaries so grammar survives the split.
  4. 4Both the original captions and the translated subtitles are encoded as CEA-608/708 data and multiplexed back into the live stream as it progresses, which is the format every major player already knows how to render.
  5. 5A watchdog monitors the pipeline and restarts any failed stage automatically, so captions keep arriving for the length of a broadcast rather than only for as long as every component behaves.

What makes it different

Most live captioning integrations require a separate caption service to sit in front of your encoder and hand off a sidecar file. This POC embeds the captions directly into the stream at the point of encoding, which means the caption track travels with the content through your CDN, your player and your archive without any additional playout integration. The translation runs in the same pipeline pass as the transcription, so there is no separate translation latency on top of the inherent caption delay - the two operations happen concurrently rather than sequentially.

Current status & next steps

Ready to pilotReviewed 29 July 2026

Closed Captioning is ready to pilot. The live demo on this page runs against a real broadcast feed and demonstrates the full transcription, translation and CEA-608/708 embedding pipeline end-to-end.

Speaker diarization is planned but not yet ready for production, so individual speakers are not identified. Translations can be inaccurate, or appear to repeat themselves, where contextual information is missing, and a very long single sentence can display incorrectly. Captioning also adds latency to the stream: roughly five seconds when captions are generated without translation, and about fifteen seconds when translation is enabled.

It is worth being honest about where this sits in the broader picture: an earlier version of this solution - built on MediaServices rather than the current Transcribe/Bedrock stack - is archived at the bottom of this page. That earlier solution reached its limits around translation quality and pipeline resilience, which is what motivated the rebuild. The current pipeline addresses both.

Want to add live captions to your channels?

Tell us which channels you need to cover, what your current caption workflow looks like, and which markets you need to reach, and we will tell you what a pilot would involve.

Archived (previous) solution

ArchivedBuilt by Professional Services

Automatic Live Captioning

The MediaServices-powered predecessor of this pipeline, kept for reference. It reached its limits on translation quality and resilience, which is what motivated the rebuild.

View archived demo