杜比视界免费播放器、srt、ass字幕时间轴修改-python、简繁转化

杜比视界免费播放器

        杜比视界一般结构是DV.mp4这样子,如: 月光骑士Moon.Knight.S01E01.2022.DSNP.WEB-DL.2160p.HEVC.DV.DDP-Xiaomi.mp4

        具体表现为迅雷内置播放器播放全片泛绿色,媒体播放器播放全片泛绿色。优酷播放器、爱奇艺播放器等无法解析或全片泛绿色。

        比如这样子:

        恒星播放器可以看杜比视界,但是收费!

        其实win10 win11自带的媒体播放器就可以做到免费观看,就是需要装一下一两个不要钱的官方插件

        第一个插件hevc

​​​​​​Microsoft Appsdd

        第二个插件dolby

Microsoft Apps

        装好其中一个就可以去掉绿色泛黄。另一个功能是画质优化之类的吧就。

srt字幕时间轴时间修改

        媒体播放器没有字幕轴调整功能,非常不人性化,所以看杜比的字幕只能自己调整。art本质上差不多就是个文本文件而已,批量修改一下时间就可以了。

        我做的是针对我看的美剧字幕调整,暂时没有考虑大于一小时的字幕调整。如有需要可以自己加上这方面。输入变量为原字幕文件名,新字幕文件名,修改弹幕轨迹时间(可以为正也可以为负)。

import redef change_time(tm, changeminute):rec = re.compile('\d\d:(?P.*?):(?P.*?),\d\d\d --> \d\d:(?P.*?):(?P.*?),\d\d\d')s = rec.search(tm)if s:org_tm = s.group()d1 = s.group('d1')d2 = s.group('d2')d3 = s.group('d3')d4 = s.group('d4')tar_s1 = int(d2) + changeminutetar_s2 = int(d4) + changeminutetar_m1 = int(d1)tar_m2 = int(d3)if changeminute > 0:if tar_s1 >= 60:tar_m1 += 1tar_s1 = tar_s1 - 60if tar_s2 >= 60:tar_m2 += 1tar_s2 = tar_s2 - 60if changeminute < 0:if tar_s1 < 0:tar_m1 -= 1tar_s1 = tar_s1 + 60if tar_s2 < 0:tar_s2 = tar_s2 + 60oo = org_tm[0:3] + ':' + org_tm[8:20] + ':,' + org_tm[-3:]new_tm = ''listx1 = [tar_m1, tar_s1, tar_m2, tar_s2]listx = []for i in listx1:if i < 10:i = '0' + str(i)else:i = str(i)listx.append(i)bgq = -1for i in oo:new_tm = new_tm + iif i == ':':bgq += 1new_tm += listx[bgq]print(new_tm)return new_tm + '\n'else:return tmdef change_file_tm(ct, file1, file2):rec = re.compile('(?P.*?):(?P.*?):\d\d,\d\d\d --> (?P.*?):(?P.*?):\d\d,\d\d\d')with open(file1, 'r', encoding='utf-8') as f1:with open(file2, 'w', encoding='utf-8') as f2:for line in f1:s = rec.search(line)if s:line = change_time(line, ct)f2.write(line)if __name__ == '__main__':ct = 4  # 输入修改字幕轨道秒数 正数表示   字幕推迟秒数file1 = '1.srt'  # 原字幕文件file2 = '2.srt'  # 修改字幕轨道的字幕文件change_file_tm(ct, file1, file2)

ass字幕时间轴时间修改

​
import redef change_time_str(test, ct):rec = re.compile('\d,\d:(?P.*?):(?P.*?).\d\d,\d:(?P.*?):(?P.*?).\d\d')num = rec.search(test)if num:org_tm = num.group()d1 = num.group('d1')d2 = num.group('d2')d3 = num.group('d3')d4 = num.group('d4')tar_s1 = int(d2) + cttar_s2 = int(d4) + cttar_m1 = int(d1)tar_m2 = int(d3)if ct > 0:if tar_s1 >= 60:tar_m1 += 1tar_s1 = tar_s1 - 60if tar_s2 >= 60:tar_m2 += 1tar_s2 = tar_s2 - 60if ct < 0:if tar_s1 < 0:tar_m1 -= 1tar_s1 = tar_s1 + 60if tar_s2 < 0:tar_s2 = tar_s2 + 60oo = org_tm[0:3] + '::.' + org_tm[10:14]+'::.'+org_tm[-2:]new_tm = ''listx1 = [tar_m1, tar_s1, tar_m2, tar_s2]listx = []for i in listx1:if i < 10:i = '0' + str(i)else:i = str(i)listx.append(i)bgq = -1for i in oo:new_tm = new_tm + iif i == ':':bgq += 1new_tm += listx[bgq]return test.replace(org_tm,new_tm)else:return testdef change_file_tm(ct, file1, file2):rec = re.compile('\d,\d:(?P.*?):(?P.*?).\d\d,\d:(?P.*?):(?P.*?).\d\d')with open(file1, 'r', encoding='utf-8') as f1:with open(file2, 'w', encoding='utf-8') as f2:for line in f1:s = rec.search(line)if s:line = change_time_str(line, ct)f2.write(line)if __name__ == '__main__':ct = 4  # 输入修改字幕轨道秒数 正数表示   字幕推迟秒数file1 = '1.ass'  # 原字幕文件file2 = '2.ass'  # 修改字幕轨道的字幕文件change_file_tm(ct, file1, file2)​

简繁转化

        如果字幕是繁体字需要转化,反正都打开字幕文件了,就可以复制了直接度娘搜简繁转化,在线转了粘贴回来就好了。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部