搜索

我修复了FFmpeg的字幕转换(2014年遗留的bug)

FFmpeg能转换除字幕外的所有跨格式内容。SRT转蓝光PGS?"目前字幕编码只能从文本到文本或位图到位图。" 2014年提交的工单#3819。我用Claude Code花了几周时间构建了这个功能。Claude编写了大部分编码器,发现了解码器缓冲区跟踪中的整数溢出问题,并从五个角度进行了审查。我阅读了松下和索尼的专利,做出了架构决策,并在它误解规范时予以纠正。我们争论过DTS计算是否应该放在复用器中。(确实应该,而且fftools也需要。我们两者都做了。)动画是个有趣的问题。Advanced SubStation Alpha的淡入淡出效果必须能在转换为蓝光PGS格式后保留。编码器会观察帧间的像素变化并进行分类:调色板偏移或完全重绘。淡入淡出变为仅调色板更新,无需重新传输位图。不同结束时间重叠的字幕经过四次重写和事件前瞻窗口才解决。我希望妥善维护这个项目,并最终将补丁推送上流。如果你遇到bug或有无法运行的字幕工作流,请提交issue。我特别好奇大家会用它做什么,但我已经有一些基于OCR工作的翻译相关插件计划。六次迭代。23个补丁。libass和Tesseract已在FFmpeg的滤镜库中。我按照sub2video的方式将它们接入主流水线。文本到位图,位图到文本,114种OCR语言,RGBA转GIF。开发页面有完整历史。预构建支持6个平台,无需依赖:https://connollydavid.github.io/pgs-release/

  • AI智能体
  • 代码生成
  • 多语言
Mar 17, 2026访问官网

AI 摘要

该项目解决了FFmpeg长期存在的缺陷(2014年提交的工单#3819),该缺陷导致无法在不同格式间转换字幕,例如从SRT转换为蓝光PGS格式。项目引入了增强的字幕编码功能,包括支持复杂动画和重叠字幕,并提供适用于多平台的预编译二进制文件。

适合谁

视频编辑人员, 媒体档案管理员, 蓝光光盘制作者

为什么值得关注

在FFmpeg中实现多种字幕格式的可靠转换,解决了长达十年的技术限制。

核心特性

  • 将SRT字幕转换为蓝光PGS格式。
  • 通过检测调色板变化处理Advanced SubStation Alpha淡入淡出效果。
  • 通过追踪帧间像素变化优化字幕位图更新。
  • 使用事件前瞻窗口管理具有不同结束时间的重叠字幕。

使用场景

  • 一位视频编辑师正在处理蓝光光盘制作项目,需要将SRT字幕转换为PGS格式以确保兼容性。该工具能让他们将基于文本的字幕无缝集成到高清光盘格式中,同时保持视觉保真度。
  • 一位媒体档案管理员正在数字化老旧电影收藏,需要将传统字幕文件(如Advanced SubStation Alpha)转换为现代且广泛支持的格式,以便纳入数字档案库。该工具处理复杂动画和淡入淡出效果的能力,确保字幕保持准确性和视觉吸引力。
  • 一位制作多语言视频的内容创作者希望为不同地区版本添加各种位图格式(如PGS)字幕。此解决方案使他们能够将原始SRT文件转换为这些格式,支持多种OCR语言以适应未来潜在的翻译工作流程。