Subtitles & Captions Support

Overview

Subtitles and/or captions are terms sometimes used indistinctly to refer to the text version of the speech and non-speech audio information needed to understand the content, that is displayed as a layer on top of the video screen. W3C describes:

Subtitles are implemented the same way as captions. Subtitles/interlingual subtitles are usually only the spoken audio (for people who can hear the audio but do not know the spoken language). They can be a translation of the caption content, including non-speech audio information.

Captions are needed for accessibility, whereas subtitles in other languages are not directly an accessibility accommodation. (Source: Captions/Subtitles)

Some of the most popular formats for subtitles used on the industry right now are listed below with references to their correspondent specification:

For a more detailed explanation and comparison between subtitles format, please refer to: TTML and derived captions formats

Compatibility with Bitmovin SDKs

1 - Side loaded WebVTT supported

2 - Fragmented WebVTT (Live, HLS) supported

3 - ISOBMFF-wrapped WebVTT supported

4 - ISOBMFF-wrapped TTML/DFXP supported

5 - In-Manifest WebVTT support for DASH

6 - In-Manifest WebVTT support for HLS

Notes:

  • Side-loaded WebVTT is supported for both HLS and DASH : Android SDK, iOS/tvOS SDK (rendering to be done by app for customUI/SystemUI), Web SDK.

  • In-Manifest WebVTT support for HLS : iOS/tvOS SDK , Web SDK (Safari) including rendering support. Also supported in Android SDK and Web SDK for non-Safari browsers.

  • In-Manifest WebVTT support for DASH : This is supported when WebVTT subtitles are wrapped in MP4 container as per DASH IOP recommendation(DASH-IF Interoperability Guidelines , section 6.4.5. Guidelines for side-loaded TTML and WebVTT files).

Subtitle and Caption Format Support Matrix

This table lists the officially supported Subtitle and Closed Captions (CC) Formats of the Bitmovin player. Subtitles and CCs could be configured through our JavaScript API and player configuration.

Streaming FormatSubtitle/CC FormatBitmovin Player Support
MPEG-DASHWebVTT
MPEG-DASHSRT
MPEG-DASHTTML
MPEG-DASHEBU-TT-D
MPEG-DASHCEA-608 over 708
HLSWebVTT
HLSSRT✅*
HLSTTML✅*
HLSEBU-TT-D✅*
HLSCEA-608 over 708

* Not available on iOS

Legend

✅ supported | ✖ not supported

Styling and positioning Subtitles

Subtitles styling and positioning depends on the type of UI used. Either Bitmovin Web UI (available for Desktop browsers, iOS and Android) or the NativeUI (Android, iOS, tvOS, Roku).

Web

For further details on styling subtitles on Web SDK please visit: https://bitmovin.com/demos/caption-styling

Also this Github repository contains a full example of customising the subtitles view: bitmovin-player-web-samples/subtitles at main · bitmovin/bitmovin-player-web-samples

Android

When using Bitmovin Web UI the capabilities are dependent of the CSS and Javascript features provided by Bitmovin UI. A Custom HTML Player UI can be used, in order to expand the customisation of subtitles. Please refer to the Bitmovin Player UI Github repository to know more about creating a custom Web UI.

On the other hand, a Custom Native UI can be also used, please refer to Bitmovin’s Android samples repository to see a sample of using Custom UI Subtitle View.

iOS

In iOS when using Bitmovin Web UI, the capabilities are dependent of the CSS and Javascript features provided by Bitmovin UI. Like for Android, a Custom HTML Player UI can be used, in order to expand the customisation of subtitles. Please refer to Custom HTML UI for a sample app.

When using SystemUI styling capabilities are restricted to the ones offered by AVFoundation. Please check the SystemUI sample in our Github repository.

tvOS

The main difference between tvOS with iOS is that it does not support Bitmovin UI only System UI or a Custom NativeUI . So, styling and positioning capabilities are restricted to AVFoundation entirely.