Home>How-To Guides>Tips and Tricks>How To Embed Subtitles Into Video

How To Embed Subtitles Into Video How To Embed Subtitles Into Video

Tips and Tricks

How To Embed Subtitles Into Video

Written by: William Sullivan

Learn the best tips and tricks for embedding subtitles into your videos. Enhance accessibility and engagement with these expert techniques.

(Many of the links in this article redirect to a specific reviewed product. Your purchase of these products through affiliate links helps to generate commission for Techsplurge.com, at no extra cost. Learn more)

Table of Contents

Introduction

Adding subtitles to HTML videos enhances accessibility, aiding viewers who are deaf or hard of hearing, as well as those who prefer captions. This feature is particularly important for educational, instructional, and entertainment content. This guide will walk you through the steps of embedding a video in HTML and adding subtitles to it, ensuring your content reaches a wider audience.

Step 1: Prepare Your Video and Subtitles Files

Before embedding your video, ensure you have the following files:

  • Video file: Formats such as .mp4 or .webm are common.
  • Subtitles file: Use the .vtt (WebVTT) format. The subtitles file should be properly formatted with timestamps indicating when each subtitle should appear.

Example of a .vtt file:

WEBVTT

1
00:00:01.000 –> 00:00:10.000
This is the first line of text, displaying from 1-10 seconds

2
00:00:15.000 –> 00:00:20.000
And the second line of text separated over two lines

Step 2: Basic HTML Structure

Set up a basic HTML structure, including the <!DOCTYPE html> declaration, the <html> tag, and the <head> and <body> sections.

html





Video with Subtitles


Step 3: Add the Video Element

Within the <body> tag, add your video element with necessary attributes. The controls attribute adds video controls (play, pause, volume), and the source element specifies the video file and its type.

html

Step 4: Add Subtitles to Your Video

Use the <track> element inside the <video> tag to add subtitles. The src attribute specifies the path to the subtitles file, kind specifies the kind of text track (in this case, subtitles), srclang specifies the language of the subtitles, and label provides a user-readable title for the track.

html

Step 5: Test Your Video and Subtitles

Open your HTML file in a web browser to test the video and subtitles. Ensure the subtitles appear correctly at the designated times. If the subtitles do not appear, check that the MIME type for .vtt files is correctly set in your server configuration. Some browsers may not support the video tag or may require additional MIME types to be added.

Step 6: Styling the Video Element

Enhance the appearance of your video element using CSS. Customize the appearance of the subtitles and captions by adding a <style> tag before the </video> tag. Target specific texts to style in your subtitles and captions using the ::cue pseudo-element.

Example:

html

Step 7: Building a Caption Menu

Provide users with the option to choose which language they want the subtitles displayed in or to turn them off entirely by building a caption menu dynamically. This involves reading the properties of the textTracks within the video's markup and building an unordered list containing options for each text track.

Example:

javascript
let subtitlesMenu;

if (video.textTracks) {
const df = document.createDocumentFragment();
const subtitlesMenu = df.appendChild(document.createElement("ul"));
subtitlesMenu.className = "subtitles-menu";

subtitlesMenu.appendChild(createMenuItem("subtitles-off", "", "Off"));

for (let i = 0; i < video.textTracks.length; i++) {
    subtitlesMenu.appendChild(
        createMenuItem(
            `subtitles-${video.textTracks[i].language}`,
            video.textTracks[i].language,
            video.textTracks[i].label,
        ),
    );
}

videoContainer.appendChild(subtitlesMenu);

}

function createMenuItem(name, value, text) {
const menuItem = document.createElement("li");
const button = document.createElement("button");
button.textContent = text;
button.value = value;

menuItem.appendChild(button);

return menuItem;

}

Final Thoughts

Embedding a video with subtitles in HTML is a straightforward process that greatly enhances accessibility. By following these steps, you can ensure your content is accessible to a wider audience, providing an inclusive experience for all users. Whether you’re a web developer, content creator, or just starting out, this guide is tailored for you. Test your video and subtitles across different browsers to ensure compatibility and customize the appearance of your subtitles using CSS for better readability and engagement.

Was this page helpful?

Related Post