oximedia-subtitle
Comprehensive subtitle and closed caption rendering for OxiMedia.
Part of the oximedia workspace — a comprehensive pure-Rust media processing framework.
Version: 0.1.6 — 2026-04-26 — 736 tests
Features
-
Multiple Subtitle Formats
- SubRip (SRT) - Simple text subtitles
- WebVTT - Web Video Text Tracks with positioning
- SSA/ASS - Advanced SubStation Alpha with full styling
- CEA-608/708 - Closed captions
-
Text Rendering
- TrueType/OpenType font support via fontdue
- Glyph caching for performance
- Full Unicode support including emoji
- Bidirectional text (RTL languages like Arabic, Hebrew)
-
Styling
- Font properties: size, weight, style
- Colors: text, outline, shadow
- Positioning: top, middle, bottom, custom
- Alignment: left, center, right
- Outline and shadow effects
-
Advanced Features
- Burn-in onto video frames
- Word wrapping and line breaking
- Fade in/out animations
- Karaoke effects (SSA/ASS)
- Dynamic positioning
- Accessibility features
- Translation/localization support
- Spell checking
- Timing adjustment and readability optimization
- Overlap detection and resolution
- Cue point annotations
- Multi-format export
- Subtitle merging and diffing
- Sanitization and validation
- Full-text search across subtitles
- Statistics and analytics
- Subtitle segmentation
Usage
Add to your Cargo.toml:
[]
= "0.1.6"
use ;
// Parse SRT subtitles
let text = read_to_string?;
let subtitles = parse?;
// Parse WebVTT
let vtt = read_to_string?;
let vtt_subs = parse?;
// Parse ASS
let ass = read_to_string?;
let ass_subs = parse?;
// Check active subtitle at timestamp
for sub in &subtitles
API Overview
SubtitleRenderer— Render subtitles onto video framesSubtitle— Single subtitle cue with timing, text, style, position, animationsSrtParser/WebVttParser/AssParser— High-level format parsersSubtitleStyle— Font, color, outline, shadow, position, alignmentFont/GlyphCache— Font loading and glyph cachingTextLayout/TextLayoutEngine— Bidirectional text layoutColor/OutlineStyle/ShadowStyle/Position/Alignment— Style primitivesAnimation— FadeIn, FadeOut, and other animation typesSubtitleError/SubtitleResult— Error and result typesoverlay_subtitle()— Overlay subtitle onto raw frame data- Modules:
accessibility,burn_in,cea,convert,cue_parser,cue_point,cue_timing,error,font,format_convert,line_break,overlap_detect,overlay,parser,position_calc,reading_speed,renderer,segmentation,spell_check,style,sub_style,subtitle_diff,subtitle_export,subtitle_index,subtitle_merge,subtitle_sanitize,subtitle_search,subtitle_stats,subtitle_style_ext,subtitle_validator,text,timing,timing_adjust,translation
License
Apache-2.0 — Copyright 2024-2026 COOLJAPAN OU (Team Kitasan)