First decide who writes the words
Cue, our streaming engine, carries captions that arrive with your feed; it doesn't write them. So booking the words comes first, and the accuracy you need decides the route.
| Who writes them | Suits | Keep in mind |
|---|---|---|
| A live captioner (often called CART) | Public meetings, courses, anything where a wrong word matters | Send names and terms ahead, and agree how the text reaches your encoder |
| A respeaker, who repeats the speech to tuned software | Long broadcasts, news-style shows | Ask how it handles several voices |
| Speech recognition software | Low-stakes shows, or a first version to correct later | Try it on a recording of your own show first |
That's our general advice, not a measurement. W3C guidance sets the bar: captions cover not only dialogue but who is speaking and significant sounds, so tell your captioner what you expect.
Closed captions are the ones a viewer turns on and off. Open captions are burned into the picture for everyone: a fallback if your chain can't carry closed ones, though viewers lose the choice.
Follow the words along the chain
The picture stays perfect when captions drop, so walk your chain and name the box at each hop.
| Hop | What has to happen | How it goes wrong |
|---|---|---|
| Captioner to encoder | The text is inserted into the signal, usually by a caption encoder | Your encoder has no caption input. Check its manual before you book anyone |
| Encoder to server | CEA-608 rides inside the video stream. Teletext travels in an MPEG-TS feed | A box that re-encodes the video without copying captions drops them, with no error |
| Inside the server | In Cue, captions and teletext become subtitles when you switch that on | The setting is off, or your feed carries a format that isn't on the list |
| Server to player | The playlist offers a text track and the player shows a switch | A custom player built without the control |
The second row is the fragile one. RFC 8216, the HLS specification, notes that closed-caption media is typically carried in the video stream itself. So when a step makes new video, the old captions survive only if that step copies them. FFmpeg has an a53cc option for this; on hardware, look for something like caption passthrough.
Our public pages name two for Cue: CEA-608 and teletext. A feed with only CEA-708 services or DVB bitmap subtitles isn't on that list, so ask us before you plan around it. And if you turn on lower-quality versions, check captions on each one.
Switch them on in Cue
- Send the feed with captions in it.
- In the channel's Settings, under HLS and DASH delivery, switch on captions and teletext as subtitles (the Cue manual lists it there).
- Do this before the show, then open the channel in a player and look for the subtitle control.
The switch sits under HLS and DASH delivery, so if some viewers watch over WebRTC, try it before you promise them captions.
Prove it on real screens
Two quick checks show which half of the chain to look at. The first uses FFmpeg's documented subcc output to pull the captions out of a capture of your feed. Save a minute of the encoder's output as capture.ts, copying the stream rather than re-encoding it, or the capture itself can lose them. Include speech; teletext won't show here. For the second, set HLS_LINK to the channel's HLS address from the Watch box.
# 1. Do the captions reach the encoder's output?
rm -f check.srt
if ffmpeg -v error -f lavfi -i "movie=capture.ts[out+subcc]" -map 0:s:0 check.srt; then
if [ -s check.srt ]; then head check.srt; else echo "no CEA-608 captions found in this capture"; fi
else
echo "ffmpeg could not finish, so fix the capture first"
fi
# 2. Does the top-level playlist offer a text track?
if curl -fsSL "$HLS_LINK" -o top.m3u8; then
grep -E 'TYPE=(SUBTITLES|CLOSED-CAPTIONS)' top.m3u8 || echo "no text track offered: check the channel setting"
else
echo "could not fetch the playlist: check HLS_LINK"
fi
TYPE=SUBTITLES points to a subtitle playlist, and TYPE=CLOSED-CAPTIONS declares captions inside the video. Apple's HLS authoring rules require closed captions to be declared, and Android's ExoPlayer guide warns that undeclared caption tracks can go undetected.
Then rehearse on real devices, because a pass in one player proves nothing about the next:
- A laptop browser, in your embedded player. On a custom hls.js page, read its caption options: rendering can be native or left to your own code.
- An iPhone in Safari, with the phone's own caption setting on and off.
- An Android phone, in the browser and in your own app if you have one.
- The TV or set-top box your viewers use most, in the actual app.
On each: is the switch easy to find, and do the words survive a quality change and a jump back to live? Ask someone who relies on captions to watch with you.
Check what the rules ask of you
This is general information, not legal advice, so check with your own counsel. Some reference points:
- The web standard. WCAG success criterion 1.2.4, Captions (Live), is Level AA: captions for all live audio in synchronized media.
- US state and local government. The Justice Department's ADA Title II rule makes WCAG 2.1 Level AA the technical standard for web content and apps. A 2026 interim rule moved compliance to April 26, 2027 for governments serving 50,000 people or more, and April 26, 2028 for smaller ones and special districts.
- US television online. FCC rule 47 CFR 79.4 requires captions on non-exempt full-length programming delivered over the internet if it was shown on US television with captions, live programming included. An internet-only show isn't caught by that wording alone.
- The EU. The European Accessibility Act lists access to audiovisual media services among what it covers. Check how your country adopted it.
Fix the words for the recording
Ask your captioner for a corrected file after the show and add it when you upload the video: Cue's on-demand library takes subtitle files, and viewers pick each language by name in the player.
When this isn't the right setup
This route suits a broadcast-style chain, such as a TV feed, a council chamber or a studio with caption gear, running Cue on a dedicated streaming server or a server you already have. If your feed carries neither CEA-608 nor teletext, Cue has nothing to pass on: change the encoder or burn the captions into the picture.
Planning a one-off rather than a permanent chain? Start with our live event streaming and ask about captions before you book. And if you embed our live streaming player, try it on the rehearsal stream and check that a caption control appears where your viewers will look.
Questions people ask
- Will Cue create captions from my audio automatically?
- Our pages describe Cue carrying captions that come in with a live feed, not generating them, so something has to produce the text first.
- Can I have captions in several languages on a live stream?
- Our public pages don't promise that for live captions, so test your own feed. Several audio languages are a separate Cue feature, and on-demand videos can carry subtitle files in several languages.
- Why do my captions show in one app and not another?
- If they show in one app, the feed is carrying them, so look at the other player. An app may hide the control or skip a track it wasn't told about. Check the top-level playlist first, then that player's settings.