找回密码
 立即注册
查看: 677|回复: 8

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

  • TA的每日心情
    开心
    2021-5-7 20:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    240

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    15502
    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,也许以后我会重写合并字幕的算法。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 1活跃度 +12800 收起 理由
    Yukarubih + 12800 赞一个!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-19 13:16
  • 签到天数: 61 天

    [LV.6]常住居民II

    0

    主题

    4

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    6923
    長安寧 发表于 2024-3-27 16:07:03 | 显示全部楼层
    希望可以增加一个自定义选择字幕文件输出位置和支持iso文件生成字幕
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 20:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    240

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    15502
    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文件夹里面就行)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-19 13:16
  • 签到天数: 61 天

    [LV.6]常住居民II

    0

    主题

    4

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    6923
    長安寧 发表于 2024-3-28 12:11:46 | 显示全部楼层
    ktuup6 发表于 2024-3-27 18:23
    我觉得字幕默认生成的位置没有什么不好的。因为首先把原盘拖到播放器里面播放就要点进生成字幕所在的文件 ...

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

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 20:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    240

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    15502
    ktuup6  楼主| 发表于 2024-3-28 14:38:38 | 显示全部楼层
    長安寧 发表于 2024-3-28 12:11
    我使用的是PowerDVD 2022,PowerDVD观看原盘的时候字幕是需要自己手动挂载的,选择的字幕时候默认是本机 ...

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

    另外,这个工具也是可以拖拽文件夹的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 20:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    240

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    15502
    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文件)。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    50

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    14326
    lslqtz 发表于 2024-4-4 19:49:05 | 显示全部楼层
    要是能自动对轴就好了呢. 这也忒大了吧! Python, 那不意外了.
    BTW: Mac 用 Crossover 开就好, 虽然没试过能不能用, 但是能开!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-5-7 20:15
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    2

    主题

    6

    回帖

    240

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    15502
    ktuup6  楼主| 发表于 2024-4-4 21:47:07 | 显示全部楼层
    lslqtz 发表于 2024-4-4 19:49
    要是能自动对轴就好了呢. 这也忒大了吧! Python, 那不意外了.
    BTW: Mac 用 Crossover 开就好, 虽然 ...

    调轴不是有 Sushi 吗,我这个工具只是合并字幕用。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2024-4-11 20:42
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    1

    主题

    4

    回帖

    8

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    203617
    CBWK 发表于 2024-4-6 13:46:51 | 显示全部楼层
    感谢分享,亲测可用
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表