ktuup6 发表于 2024-3-26 19:17:21

一个自动生成原盘播放所需字幕的小工具

本帖最后由 ktuup6 于 2024-4-7 22:22 编辑

因为原盘一般都是几集整一个盘,连续播放,所以主播放列表一般有2-6集不等。而字幕组制作的字幕基本上都是按单集划分,如果想用PowerDVD或者JRiver看原盘的话就面临字幕不匹配的问题,解决方法只能是合并字幕,而这个操作手动做事很费时间的。所以我研究了这个问题,写了一个全自动合并字幕的脚本,只需要选择原盘所在的文件夹和字幕所在的文件夹,就能合成原盘播放所需的字幕。


代码:BluraySubtitle/BluraySubtitle.py at main · Haruite/BluraySubtitle (github.com)




使用方法:将代码保存为文件,python 运行,需要安装依赖 pip install ass PyQt5。“原盘所在的文件夹”指的是原盘合集的根目录,字幕所在的文件是 .ass 文件的上级目录,.ass 文件要和原盘每集一一对应(x.5 集通常不在主播放列表而是单独播放,所以要移除相应字幕文件)。
不会 py 的话也可以下载这个可执行文件运行。


界面很简陋,如下


已知问题
1. ass 模块有 bug,有可能会 dump 失败(我打算自己写解析 ass 的)。
2. 当字幕文件时间轴错误最大结束时间大于该集长度时,字幕匹配错误(这其实是字幕的问题)。





目前只支持 ass 和 ssa 字幕合并,合成的字幕在 BDMV 文件夹的上上级文件夹,和 BDMV 上级文件夹同名。
目前可能有一些奇怪的 bug,也许以后我会重写合并字幕的算法。

長安寧 发表于 2024-3-27 16:07:03

希望可以增加一个自定义选择字幕文件输出位置和支持iso文件生成字幕

ktuup6 发表于 2024-3-27 18:23:20

長安寧 发表于 2024-3-27 16:07
希望可以增加一个自定义选择字幕文件输出位置和支持iso文件生成字幕

我觉得字幕默认生成的位置没有什么不好的。因为首先把原盘拖到播放器里面播放就要点进生成字幕所在的文件夹,其次有些播放器(比如potplayer/mpv)可以自动挂载字幕。你是想生成字幕到PLAYLIST文件夹吗还是?...总之我觉得这样做没多大意义。
然后iso文件的话,可能以后会增加支持,等我有时间来试一试。目前的话如果想用iso原盘生成字幕可以这样做:新建一个同名文件夹A,A里面新建文件夹BDMV,然后挂载iso文件,找到里面的PLAYLIST文件夹把它复制到新建的BDMV文件夹里,然后运行程序就会在文件夹A所在的目录生成一个同名的字幕文件(也就是说,只要有PLAYLIST文件夹的内容并且放在BDMV文件夹里面就行)

長安寧 发表于 2024-3-28 12:11:46

ktuup6 发表于 2024-3-27 18:23
我觉得字幕默认生成的位置没有什么不好的。因为首先把原盘拖到播放器里面播放就要点进生成字幕所在的文件 ...

我使用的是PowerDVD 2022,PowerDVD观看原盘的时候字幕是需要自己手动挂载的,选择的字幕时候默认是本机的桌面(无法更改默认路径)。如果原盘是存在nas上的话,选择字幕会有点麻烦,需要一层一层目录的找。iso可以通过这种方法使用吗,我去试试看,非常感谢。

ktuup6 发表于 2024-3-28 14:38:38

長安寧 发表于 2024-3-28 12:11
我使用的是PowerDVD 2022,PowerDVD观看原盘的时候字幕是需要自己手动挂载的,选择的字幕时候默认是本机 ...

PowerDVD 可以直接把字幕拖到播放界面的。

另外,这个工具也是可以拖拽文件夹的。

ktuup6 发表于 2024-3-28 22:08:17

本帖最后由 ktuup6 于 2024-3-31 01:00 编辑

好了,支持 iso 文件了,只支持在 Windows 平台。UDF 的 spec (http://www.osta.org/specs/) 看得我头疼, github 上也没找到合适的库,所以我换了种方法,调用 powershell 命令来挂载 iso 文件(感觉有点慢,直接调用底层api来挂载iso文件)。

lslqtz 发表于 2024-4-4 19:49:05

要是能自动对轴就好了呢. 这也忒大了吧! Python, 那不意外了.
BTW: Mac 用 Crossover 开就好, 虽然没试过能不能用, 但是能开!

ktuup6 发表于 2024-4-4 21:47:07

lslqtz 发表于 2024-4-4 19:49
要是能自动对轴就好了呢. 这也忒大了吧! Python, 那不意外了.
BTW: Mac 用 Crossover 开就好, 虽然 ...

调轴不是有 Sushi 吗,我这个工具只是合并字幕用。

CBWK 发表于 2024-4-6 13:46:51

感谢分享,亲测可用{:4_683:}
页: [1]
查看完整版本: 一个自动生成原盘播放所需字幕的小工具