找回密码
 立即注册
查看: 2405|回复: 18

请问下ass特效字幕开始与结束时间是反的怎么快速修正

  • TA的每日心情
    奋斗
    2024-3-28 10:17
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    20

    回帖

    80

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8945
    艾伦沃克1234 发表于 2023-7-26 23:06:04 | 显示全部楼层 |阅读模式
    在网上下了一个ass字幕,发现在potplayer里播放有部分的特效字幕不显示,打开字幕文件仔细一开原来是,那段的开始时间超过了结束时间,也就是前后时间相反了,网上搜也没搜到办法,就自己一条条改了一会,倒是能显示出来了,但特效太多了,鼠标点死人,眼睛看的发酸
    想问问各位字幕大佬,这种情况有没有快捷的调整方式。跪谢




    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-28 10:17
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    20

    回帖

    80

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8945
    艾伦沃克1234  楼主| 发表于 2023-7-26 23:46:16 | 显示全部楼层
    顺便请教下,怎么会出现这种情况的,我的水平在小白与大佬之间,还有很多不懂
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    5 天前
  • 签到天数: 156 天

    [LV.7]常住居民III

    23

    主题

    743

    回帖

    3104

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    584900
    sommio 发表于 2023-7-27 05:34:18 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    8 小时前
  • 签到天数: 580 天

    [LV.9]以坛为家II

    2

    主题

    28

    回帖

    1001

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    129255
    fuxin052 发表于 2023-7-27 09:05:31 | 显示全部楼层
    如果只是反了, 你需要把时间交换下, 用脚本做这个重复的事挺好的

    1. import os
    2. import sys
    3. import time

    4. def run(p):
    5.     bn = os.path.basename(p)
    6.     name, ext=os.path.splitext(bn)
    7.     if not (ext.lower() in ['.ass',]):
    8.         return
    9.     for coding in ["utf-8", "gbk", "big5", "gb2312", "gb18030", "cp1252", "utf-16", "utf-32"]:
    10.         try:
    11.             with open(p, 'r', encoding=coding) as file:
    12.                 lines = file.readlines()
    13.             break
    14.         except (UnicodeDecodeError, UnicodeError):
    15.             print(2)
    16.             continue
    17.         except FileNotFoundError:
    18.             print(3)
    19.             return
    20.     new_lines = []
    21.     for idx, line in enumerate(lines):
    22.         if line.startswith("Dialogue:"):
    23.             fields = line.split(",", 3)
    24.             start_time = fields[1]
    25.             end_time = fields[2]
    26.             if start_time > end_time:
    27.                 fields[1] = end_time
    28.                 fields[2] = start_time
    29.                 new_line = ','.join(fields)
    30.                 new_lines.append(new_line)
    31.                 print(f"L{str(idx+1)} 时间相反 {line}", end="")
    32.             else:
    33.                 new_lines.append(line)
    34.         else:
    35.             new_lines.append(line)
    36.     new_name = os.path.join(os.path.dirname(p), name + '.' + str(int(time.time())) + ext)
    37.     with open(new_name, 'w', encoding="utf-8") as fw:
    38.         fw.writelines(new_lines)
    39.     return new_name

    40. if __name__ == '__main__':
    41.     if sys.argv[1]:
    42.         run(sys.argv[1])
    43.         os.system('pause')
    复制代码

    代码保存成1.py
    命令行执行python c:\文件全路径\1.py c:\文件全路径\1.ass即可
    如果没装python就装一个python3
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-28 10:17
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    20

    回帖

    80

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8945
    艾伦沃克1234  楼主| 发表于 2023-7-27 09:58:02 | 显示全部楼层
    sommio 发表于 2023-7-27 05:34
    aegisub 用 shift 多选改时轴

    谢谢回复,能稍微展开说下吗?多选平移时间的我只会,但它们的时间前后相反,间隔又有长有短,这多选怎么该
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-28 10:17
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    20

    回帖

    80

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8945
    艾伦沃克1234  楼主| 发表于 2023-7-27 09:59:09 | 显示全部楼层
    fuxin052 发表于 2023-7-27 09:05
    如果只是反了, 你需要把时间交换下, 用脚本做这个重复的事挺好的

    谢谢大佬,会编程就是好,这种重复枯燥的事就需要自动化编程,我试试
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    9 小时前
  • 签到天数: 448 天

    [LV.9]以坛为家II

    9

    主题

    162

    回帖

    507

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    112858
    verdurewind 发表于 2023-7-27 10:19:12 | 显示全部楼层
    我想趁机问问,有没有单独把时间轴抽出来的方法,就是只保留时间轴,把字幕都去掉
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-28 10:17
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    20

    回帖

    80

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8945
    艾伦沃克1234  楼主| 发表于 2023-7-27 10:37:05 | 显示全部楼层
    fuxin052 发表于 2023-7-27 09:05
    如果只是反了, 你需要把时间交换下, 用脚本做这个重复的事挺好的

    大佬,刚才试了下不行啊,是哪步错了呢


    我是先用文档保存代码,然后改成1.py文件

    然后路径也是按你给的来的,防止问题,文件名称还都用了阿拉伯数字
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-28 10:17
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    20

    回帖

    80

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8945
    艾伦沃克1234  楼主| 发表于 2023-7-27 10:37:21 | 显示全部楼层
    本帖最后由 艾伦沃克1234 于 2023-7-27 10:41 编辑

    艾伦沃克1234 发表于 2023-7-27 10:37
    大佬,刚才试了下不行啊,是哪步错了呢



    SyntaxError: unexpected character after line continuation character
    >>> C:\xyz\123\1.py C:\zcc\456\1.ass
      File "<stdin>", line 1
        C:\xyz\123\1.py C:\zcc\456\1.ass
           ^
    SyntaxError: unexpected character after line continuation character
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-28 10:17
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    5

    主题

    20

    回帖

    80

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    8945
    艾伦沃克1234  楼主| 发表于 2023-7-27 10:40:44 | 显示全部楼层
    为什么上传不了图片呢

    点评

    新用户没权限上传可以丢外部链接  发表于 2023-7-27 10:43
    回复

    使用道具 举报

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

    本版积分规则

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