Convert Blu-ray .sup subtitles into:
- vertical sprite sheets (
sheet_0001.png, ...) timeline.srt(per-cue time with image marker text)mapping.json(machine-readable mapping)
Also supports VobSub .idx + .sub input.
Recommended: use uv.
uv syncNo Python environment:
- Download prebuilt binaries from GitHub
Releases.
uv run pixelsup parser input.sup --limit 40 --gap 12 --max-width 1080 --padding 10 --keep-temp
uv run pixelsup parser input.idx --limit 40 --gap 12 --max-width 1080 --padding 10
uv run pixelsup ocr ./output_dir --config ./ocr_config.yamlBy default, each sheet includes large row index labels in a left-side gutter.
Use --no-row-index to disable this.
Or use Python module mode:
python -m pixelsup parser input.sup -o output_dir
python -m pixelsup ocr output_dir --config ocr_config.yamlIf installed into environment PATH, you can also call directly:
pixelsup parser input.sup -o output_dir
pixelsup ocr output_dir --config ocr_config.yamlsheet_*.png: black background, white spacing between rowstimeline.srt: each subtitle keeps original timing and uses marker text like[img:sheet_0001.png#03]mapping.json: per-cue mapping (sheet, position, start/end ms)temp/*.png: kept only with--keep-temp