Back

Blog details

What Does SDH Mean in Subtitles? SDH vs Closed Captions

AIOZ Network
6 min readSeptember 23, 2026
aioz-streamguide

SDH subtitles are subtitles for the deaf and hard of hearing: they carry the dialogue plus speaker names, sound effects and music cues in an ordinary subtitle track. Closed captions hold the same content as broadcast caption data, while plain subtitles hold dialogue only, and on AIOZ Stream you upload all three the same way.

TL;DR:

  • SDH stands for subtitles for the deaf and hard of hearing, and it adds speaker names, sound effects and music cues to the dialogue.
  • Closed captions carry the same content as SDH in broadcast caption data, and plain subtitles carry dialogue only, for viewers who can hear the audio.
  • SDH is a way of writing, not a file format, so you can write it into an SRT or a VTT file, and the W3C track element has no "sdh" kind.
  • AIOZ Stream's Go client documents a VTT upload, and its caption object has no field for style, so the text inside your file decides what a track is.

What does SDH mean in subtitles?

SDH means "Subtitles for the Deaf and Hard of Hearing." Rev's explainer calls it "the most complete form of subtitle you can use," because it transcribes speech and also marks non-verbal sounds such as laughter and music. A hearing viewer needs only the words, but a viewer who can't hear the soundtrack also needs to know who is speaking and what just happened off screen. That is the gap SDH fills, so a good SDH track reads like a transcript of the speech plus a short running description of the soundtrack.

The audience is larger than it looks, since Rev cites more than 450 million people with hearing loss worldwide. According to the matesub guide, SDH also helps non-native speakers and people with auditory processing disorders.

Diagram: the same scene written as plain subtitles with dialogue only, as SDH with a speaker name, door creak and tense music cues, and as closed captions with the same lines as SDH
One scene written three ways. An illustrative example written for this article, not taken from AIOZ docs.

How do SDH, closed captions and normal subtitles differ?

MDN's reference for the HTML track element, which follows the W3C spec, defines the first two. Subtitles "provide transcription or translation of the dialog" and suit "when the sound is available but not understood." Captions add "sound effects, relevant musical cues, and other relevant audio information" for when sound is unavailable, for example because "the user is deaf."

SubtitlesSDHClosed captions
Made forViewers who hear the audio but not the languageViewers who are deaf or hard of hearingViewers who are deaf or hard of hearing
IncludesDialogue onlyDialogue, speakers, sounds, musicDialogue, speakers, sounds, music
Delivered asSubtitle trackSubtitle trackCaption data, such as CEA-608 on broadcast TV

So the content of SDH and closed captions matches, and only the delivery differs. Rev lists two practical differences: closed captions show as white text on a black background, while SDH can use "various colors and styles." It also suits disc media that "don't support closed captions," which is another reason the format exists. 3Play Media says SDH can be translated into other languages and styled by professional captioners, while closed captions use Line 21 transmission and offer limited translation.

If you can publish only one English track for a mixed audience, SDH is the safer choice. Hearing viewers can read past a few bracketed cues, but deaf viewers lose real information when you leave them out. Publish plain subtitles as well when you also serve translations, so each audience gets the track written for it.

SRT vs SDH: is SDH a file format?

No. SRT and VTT are file formats, while SDH describes what you write inside them, so an SRT file can hold SDH and a VTT file can too. The W3C track element lists five kind values (subtitles, captions, descriptions, chapters and metadata), and none of them is "sdh," as the Chapter vs Transcript API article also shows.

The file format does matter for uploads, though, so check it before you start. The AIOZ Stream Go client describes its caption call as "Uploads a VTT file," and a WebVTT file must begin with a WEBVTT line, as MDN notes. Convert an SRT file to VTT before you upload it, since the client names only VTT.

How to write SDH subtitles

The ranking guides agree on the basics, and Netflix's English timed text style guide gives the most concrete numbers. Treat them as a respected reference point for its own catalogue, not an AIOZ requirement.

  • Name the speaker only when you can't see who is talking. Netflix says to "only use speaker IDs or sound effects when they cannot be visually identified."
  • Put speaker names and sound effects in square brackets and keep them lowercase, except for proper nouns.
  • Describe the significant sounds. Amara's guide gives "door squeaks" and "phone rings" as examples, and Netflix's rule above already rules out labeling anything the viewer can see.
  • Wrap song lyrics in a music note (♪) at the start and end of each subtitle, which is Netflix's rule.
  • Keep each subtitle to two lines of 42 characters or fewer, and to a reading speed of up to 20 characters per second for adult programs.
  • Keep the position at the bottom center of the screen, as HappyScribe's guide advises, and use a clean, sans-serif typeface with good contrast.

Here is how the scene from the diagram looks in a VTT file, with made-up timings, as an illustration rather than output from AIOZ Stream.

WEBVTT

00:00:01.000 --> 00:00:03.000
[door creaks]

00:00:03.200 --> 00:00:05.500
[Marcus] Don't open it.

00:00:05.600 --> 00:00:08.000
[tense music]

WebVTT also has a voice tag, written <v Marcus>, which MDN's example uses to style one speaker's text with CSS. You can try it for speaker names, but test how your player displays it first.

How AIOZ Stream handles SDH tracks

AIOZ Stream has no SDH setting, and the Go client's MediaCaption model lists six fields: description, is_default, is_generated, language, status and url. The is_generated field arrived in SDK v3.0.3 on 2026-10-05, so earlier versions of this article counted five, and the client doesn't say what it means. None of the six fields marks a track as subtitles, captions or SDH.

That leaves two things in your hands. The first is to use the description field to label the track, for example "English (SDH)," so viewers can tell it apart. The second is to check how many tracks one language can hold before you plan your uploads. The client's delete and set-default calls take a media ID plus a language code, which suggests one caption per language. You may then need to choose between English subtitles and English SDH for the same video. The docs don't say either way, so test it with a throwaway video before you plan around both. The client also names a set-default call that flips is_default, which is the setting to use when you want one track to play first.

For the wider picture, the multi-language captions guide covers the endpoint, and the WCAG article explains which accessibility rules require captions.

Frequently Asked Questions

Is SDH the same as closed captions?
The content is the same, covering dialogue, speakers, sound effects and music. The difference is delivery: SDH arrives as a subtitle track, while closed captions arrive as caption data such as CEA-608.

Should I use SDH or regular subtitles?
Use regular subtitles when viewers can hear the audio but not the language. Use SDH when viewers may not hear the audio at all, because they need the speaker names and sound cues.

Does AIOZ Stream support SDH subtitles?
Yes, in the sense that any VTT file can carry SDH content, but there is no dedicated SDH setting or field, so label the track with the description field.

Can I upload an SRT file to AIOZ Stream?
The Go client describes the caption upload as a VTT file, so convert SRT to VTT first, and note that a valid WebVTT file starts with a WEBVTT line.

How long can an SDH subtitle line be?
Netflix's style guide allows two lines of up to 42 characters each, at up to 20 characters per second for adult programs.

References

We only send updates when meaningful changes ship, and you can unsubscribe anytime

Related Content

blog thumbnail

What Is Video Encoding? Codecs, Containers and Bitrate

Video encoding compresses raw video with a codec, then a container packages it for playback. See how codecs, containers, bitrate and rate control fit together.

aioz-streamguide
8 min readNovember 05, 2026
blog thumbnail

Video Streaming Protocols: HLS, DASH, WebRTC, RTMP and SRT

Video streaming protocols move video from encoder to viewer. See how RTMP, SRT, HLS, DASH and WebRTC differ in latency, transport and where each one fits.

aioz-streamguide
7 min readNovember 04, 2026
blog thumbnail

What Is Decentralized Live Streaming and How Does It Work?

Decentralized live streaming sends a real-time broadcast through independently run nodes instead of one company's servers. Here's how each stage of it works.

aioz-streamguide
6 min readNovember 03, 2026
blog thumbnail

Video Streaming Glossary: Codecs, Protocols and Delivery A-Z

A video streaming glossary of 114 terms, from AAC and ABR to WebRTC and Widevine, each defined in plain English with sources and links to the deep posts.

aioz-stream
23 min readOctober 31, 2026
blog thumbnail

Monitor Livestream Health With Bitrate, FPS and Viewer Count

Read the AIOZ Stream Statistics panel: bitrate in and out, FPS in and out and current viewers, plus the documented rules for each and what the docs leave out.

aioz-streamguide
6 min readOctober 30, 2026
blog thumbnail

How to Embed a Livestream on Your Website (Link or iFrame)

Embed an AIOZ Stream livestream with the Share button's iframe or send the Public Playback URL as a link. Covers API fields, public access limits and doc gaps.

aioz-streamguide
6 min readOctober 27, 2026