Show HN: I fixed FFmpeg's subtitle conversion (the bug from 2014) FFmpeg converts everything except subtitles across format boundaries. SRT to Blu-ray PGS? "Subtitle encoding currently only possible from text to text or bitmap to bitmap." Ticket #3819, filed 2014. I built this with Claude Code over a few weeks. Claude wrote most of the encoder, found an integer overflow in the decoder buffer tracking, and ran review from five angles. I read the Panasonic and Sony patents, made the architectural calls, and told it when it was wrong about the spec. We argued about whether DTS computation belongs in the muxer. (It does, and also in fftools. We did both.) Animation is an interesting problem. Advanced SubStation Alpha fades have to survive conversion to Blu-ray's PGS format. The encoder watches pixel changes between frames and classifies them: palette shift or full redraw. Fades become palette-only updates, no bitmap retransmission. Overlapping subtitles with different end times took four rewrites and an event lookahead window. I'd like to maintain this properly and get the patches upstream eventually. If you hit a bug or have a subtitle workflow that doesn't work, open an issue. I'm dead curious what people do with this, but i have some plans for translation related plugins building on the OCR work. Six iterations. 23 patches. libass and Tesseract were already in FFmpeg's filter library. I wired them into the main pipeline the same way sub2video works. Text to bitmap, bitmap to text, 114 OCR languages, RGBA-to-GIF. The development page has the history. Pre-built for 6 platforms, no dependencies: https://connollydavid.github.io/pgs-release/ https://connollydavid.github.io/pgs-release/ March 17, 2026 at 09:39AM
0 Comments