SrtToSub Tutorial: Batch Convert Subtitles EasilyConverting subtitle files from one format to another can be tedious when you have dozens or hundreds of files. SrtToSub is a simple, efficient tool designed to batch-convert .srt subtitles into .sub (MicroDVD or other .sub variants) while preserving timing, formatting, and character encoding. This tutorial walks through installation, core features, step-by-step batch conversion, handling common issues, and advanced tips to streamline large-scale subtitle workflows.
What SrtToSub Does (Brief)
SrtToSub takes standard SubRip (.srt) files and converts them into .sub formats commonly used by DVD players and some video players. It can process single files or entire folders in batch mode, adjust frame rates, handle different encodings (UTF-8, ANSI, ISO-8859-1), and optionally tweak timing or apply simple style conversions.
Installation and Setup
-
System requirements
- Windows ⁄11, macOS 10.13+, or Linux (modern distributions).
- Python 3.8+ if using the command-line Python version (optional).
- Optional: FFmpeg for advanced timebase/frame-rate conversions.
-
Download and install
- If there’s a GUI build, download the installer for your OS and follow prompts.
- For the portable CLI/Python script:
- Download the srt-to-sub.zip and extract.
- (If Python script) run:
pip install -r requirements.txt
- Make script executable (Linux/macOS):
chmod +x srt_to_sub.py
-
Verify installation
- Run the program or script with a help flag to confirm:
srt_to_sub --help
- Run the program or script with a help flag to confirm:
Supported Formats and Options
- Input: .srt (SubRip)
- Output: .sub (MicroDVD) — other .sub dialects may be selectable
- Encoding options: UTF-8, ANSI, ISO-8859-1
- Frame-rate adjustment: specify source and target FPS (e.g., 23.976 → 25)
- Batch mode: process folders recursively or non-recursively
- Logging: generate a conversion report with errors/warnings
Basic Usage — Single File
Command-line example:
srt_to_sub --input movie.srt --output movie.sub --fps 23.976 --encoding utf-8
GUI steps:
- Open SrtToSub.
- Click “Add File” and choose movie.srt.
- Select output folder, set FPS and encoding.
- Click “Convert”.
Batch Conversion — Step by Step
-
Prepare your folder
- Put all .srt files in one directory. If subtitles accompany video files and you want matching names, ensure they follow a consistent naming scheme (e.g., movie1.srt → movie1.avi).
-
Choose batch options
- Recursive: include subfolders.
- Overwrite policy: overwrite existing .sub, skip, or create .sub.bak backups.
- FPS mapping: apply a uniform target FPS or use per-file FPS map if converting from mixed sources.
-
Run batch (CLI example):
srt_to_sub --input-dir /path/to/srt_folder --output-dir /path/to/sub_folder --batch --fps 25 --recursive --encoding utf-8 --log batch_report.txt
-
Monitor progress
- GUI: progress bar and live log.
- CLI: console output with per-file status and final summary.
-
Verify outputs
- Spot-check several .sub files in a text editor to confirm timing/frame numbers and encoding.
- Play one or two video+subtitle combinations in a player that supports .sub (e.g., VLC) to confirm sync.
Handling Frame Rate and Timing Issues
- Why frame rate matters: .sub (MicroDVD) uses frame numbers rather than timestamps. Converting requires knowing target video FPS to compute correct frame indices.
- Converting timestamps to frames:
- Formula: frames = time_seconds × target_FPS
- Example: 00:01:30.500 → 90.5s × 25fps = 2262.5 → round to nearest frame (2263).
- Dealing with fractional frames:
- Options: round, floor, or ceil. Choose based on whether you prefer subtitles to appear slightly earlier or later.
- If you don’t know the correct FPS:
- Try common values (23.976, 24, 25, 29.97) or inspect the video file with media info tools.
Encoding and Character Issues
- Always detect and set the correct input encoding. Converting UTF-8 subtitles to ANSI can lose characters (accents, non-Latin scripts).
- CLI example forcing UTF-8 input and output:
srt_to_sub --input movie.srt --output movie.sub --encoding-in utf-8 --encoding-out utf-8
- For non-Latin languages, test output in a player that supports the encoding or prefer UTF-8 whenever possible.
Common Problems and Fixes
- Misplaced timing after conversion: check FPS and rounding method.
- Strange characters: fix input encoding or use UTF-8 for output.
- Missing italic/bold formatting: .sub formats often lack rich styling; SrtToSub can optionally translate basic tags ( … ) to the closest .sub convention.
- Files not processed in batch: check file extensions and recursive flag.
Advanced Tips
- Batch FPS mapping file: create a CSV mapping filenames or patterns to FPS values for mixed-source batches.
- Integrate with FFmpeg: automate detection of source video FPS and call SrtToSub with per-file FPS automatically.
- Parallel processing: on multi-core machines, convert several files concurrently to speed up large jobs.
- Create backups automatically: enable .srt backups before overwrite to prevent data loss.
Example Workflows
-
Home movie library conversion
- Use FFmpeg to probe each video’s FPS, generate a mapping file, then run SrtToSub in batch with that mapping.
-
Translation pipeline
- After translating .srt files, run SrtToSub to produce .sub for legacy players, using UTF-8 to preserve diacritics, then convert encoding only if needed.
Quick Troubleshooting Checklist
- Confirm input .srt validity (no overlapping cues).
- Verify chosen FPS matches target video.
- Test output encoding in a player.
- Check logs for skipped/errored files.
Conclusion
SrtToSub simplifies converting large numbers of .srt files into .sub, handling encoding, frame-rate adjustments, and batch automation. With careful FPS selection and encoding handling, batch conversions can be fast, reliable, and preserve subtitle quality.
Leave a Reply