module

Emerald::Docs::PREMIUM_FEATURES::SubtitlesAndSPU

Subtitles & Closed Captions (SPU)

Executive Summary & Key Topics

Topic Method / Anchor Description
Overview .topic_01_overview LibVLC sub-picture (SPU) rendering architecture.
Listing & Selecting Subtitle Tracks .topic_02_listing_tracks Enumerating embedded subtitles and setting active track.
Loading External Subtitles (.srt, .vtt, .ass) .topic_03_external_subtitles Attaching external subtitle files at runtime.
Timing Synchronization .topic_04_timing_synchronization Correcting out-of-sync subtitles with millisecond delay offsets.

Class methods

topic_01_overview

Overview: LibVLC sub-picture (SPU) rendering architecture.

Emerald provides full access to LibVLC's sub-picture (SPU) engine. Subtitles are rendered directly over the video frames by LibVLC, ensuring crisp font rendering, styling, and positioning.

Source
topic_02_listing_tracks

Listing & Selecting Subtitle Tracks: Enumerating embedded subtitles and setting active track.

# Inspect available subtitle streams
player.subtitle_tracks.each do |sub|
  Godot.print("Subtitle [#{sub.id}]: #{sub.name} (Lang: #{sub.language})")
end

# Select specific language track
player.select_subtitle_track(1)

# Disable subtitles (-1)
player.select_subtitle_track(-1)
Source
topic_03_external_subtitles

Loading External Subtitles (srt, vtt, ass): Attaching external subtitle files at runtime.

# Dynamically attach an external subtitle file
player.load_subtitles("res://subtitles/english_subs.srt")
Source
topic_04_timing_synchronization

Timing Synchronization: Correcting out-of-sync subtitles with millisecond delay offsets.

# If subtitles appear 500ms too early, delay them by 500ms
player.set_subtitle_delay(500_i64)
Source