How to Add Closed Captions to Roku
Roku enables your TV to stream TV and movies from services like Netflix, Amazon, Hulu, YouTube, and many others.
Service providers can add captions to their content through their channel. Roku supports the captioning formats SMPTE-TT, EIA-608, and WebVTT.
- SMPTE-TT: Supported by MP4 VOD, HLS VOD, Smooth VOD, Smooth Live, and DASH VOD as an external file only.
- EIA-608: Supported by all AVC streams using MP4 VOD, HLS VOD, HLS Live, Smooth VOD, Smooth Live, and DASH VOD.
- WebVTT: Embedded into HLS streams, such as HLS VOD and HLS Live.
Closed captions should be added to the
roVideoPlayer component. The preferred technique for adding the closed caption track is to use the
Content Meta-Data property
SubtitleConfig.
Step 1 – Submit Your Video for Transcription
Log into your 3Play Media account. From the
Upload tab at the top of the screen, select
From Computer.
You’ll receive an email when your video has been transcribed.
Step 2 – Download Your Captions in WebVTT Format
Go to the
My Files page in your 3Play Media account and select your recording.
Click on
Download and select the WebVTT or SMPTE-TT format under Web Caption Formats. Save the closed caption file to your computer.
Step 3 - Upload your file to Roku
Under
Content Meta-Data, you will use the following codes to render closed captions on videos via
roVideoScreen. Depending on the caption format, SMPTE-TT or WebVTT, the code will be slightly different.
SMPTE-TT
- This caption format is supported by Roku through TTML formatted external files, or by embedding the TTML directly into the video stream.
- To use an external TTML file:
- Set the SubtitleURL content metadata of your roVideoScreen to specify the path.
- To specify closed captions need to be added, call subtitle_config.
- Under TrackName specify the url of the TTML file.
- Under MetaData, specify the stream, which will link to the videos URL.
- Call ifVideoScreen.ShowSubtitle(true)
- The captions will render once ifVideoScreen.Play() is called.
A code example is outlined below.
WebVTT
- This caption format is supported by Roku when embedded into the HLS stream or manifest. WebVTT formats are specified in the SubtitleConfig metadata.
- Set the SubtitleURL content metadata of your roVideoScreen to specify the path.
- To specify closed captions need to be added, call subtitle_config.
- Under TrackName specify the url of the TTML file.
- TrackName should be set to webvtt/track where track specifies the index of the caption to render.
- Under MetaData, specify the stream, which will link to the videos URL
A code example is outlined below.
Step 4 - View your video with captions!