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.
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)
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")
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)