iPad中的OPlayer只支持srt格式的字幕,而动画一般使用的是ass/ssa格式的字幕,所以需要将ass/ssa批量转换srt。
Google了一下,在《ass2srt[ass/ssa批量转换srt]》中找到一个ass2srt.wsf脚本,内容如下:
<job id="ass2srt"> <script language="JScript"> cInput="unicode"; // You can find them from: cOutput="utf-8"; // HKEY_CLASSES_ROOT\MIME\Database\Charset function rrr(){ re = /Dialogue: [^,.]*[0-9]*,([1-9]"$1" + "}"); rg =/\{[^}.]*}/gi; t3 = t3.replace(rg,""); rg =/(\\pos\([0-9]*,[0-9]*\)})/gi; t3 = t3.replace(rg,"{" + "$1"); } </Script> <script language="VBScript"> set ad=CreateObject("adodb.stream") set af=CreateObject("adodb.stream") set ass=CreateObject("adodb.stream") ad.open af.open ass.open ad.Charset=cInput af.Charset=cOutput ass.Charset=cOutput Set objArgs = WScript.Arguments For I = 0 to objArgs.Count - 1 ad.LoadFromFile(objArgs(I)) z=0 gg=left(objArgs(I),len(objArgs(I))-3)&"srt" Do While ad.eos <> True ss =ad.ReadText(-2) if left(ss,8)="Dialogue" then ss=replace(ss,",,",",d,") rrr t3=replace(t3,"\n",vbcrlf) t3=replace(t3,"\N",vbcrlf) z=z+1 af.writetext z,1 af.writetext t1 & " --> " & t2,1 af.writetext t3 & vbcrlf & vbcrlf else ass.writetext ss,1 end if Loop af.savetofile gg,2 ass.savetofile gg&".style",2 Next if i=0 then msgbox "Please drag files to me!",,"Error!" else msgbox "Converted "&i&" file(s).",,"All Over!" end if </Script> </job>
Windows 脚本 (.wsf) 文件是一个包含可扩展标记语言(XML)代码的文本文档,它结合了若干功能,提高了脚本编程的灵活性。由于 Windows 脚本文件并不局限于特定的引擎,它们能够包含所有遵循 ActiveX(R)规范的脚本引擎的脚本。
上面的脚本文件同时包含了JScript和VBScript的代码。问题在于,有这个必要么?单纯用JScript或者VBScript都可以实现,为什么要混用不同的语言呢?JScript在代码中的作用仅仅是正则表达式而已,一个合理的推断是作者不会VBScript的正则表达式,或者嫌VBScript的正则表达式太麻烦。就算撇开语言混杂不说,上面代码的风格实在是不敢恭维。
下面是我写的ass2srt.vbs,也许比上面的代码好一点点罢。
Option Explicit Const Encoding = "unicode" 'assume unicode 'Author: Demon 'Website: http://demon.tw 'Date: 2012/6/16 Dim shell, folder, fso, ext, i, args Set shell = CreateObject("Shell.Application") Set fso = CreateObject("scripting.filesystemobject") Set args = WScript.Arguments If args.Count = 0 Then Set folder = shell.BrowseForFolder(0, "请选择ASS字幕所在的文件夹", 1) If folder Is Nothing Then WScript.Quit For Each i In fso.GetFolder(folder.Self.Path).Files ext = LCase(fso.GetExtensionName(i.Path)) If ext = "ass" Or ext = "ssa" Then ASS2SRT i.Path, Encoding End If Next Else For i = 0 To args.Count - 1 ASS2SRT args(i), Encoding Next End If MsgBox CInt(i) & " file(s) Converted!", vbInformation Function ASS2SRT(path, charset) Const adTypeText = 2 Const adReadLine = -2 Const adSaveCreateOverWrite = 2 Dim ass, srt, re, str, arr, s, e, t, i Set ass = CreateObject("ADODB.Stream") Set srt = CreateObject("ADODB.Stream") Set re = New RegExp re.Global = True re.IgnoreCase = True re.Pattern = "\{.*" ass.Type = adTypeText ass.Charset = charset ass.Open ass.LoadFromFile path srt.Type = adTypeText srt.Charset = "utf-8" srt.Open i = 0 Do Until ass.EOS str = ass.ReadText(adReadLine) If Left(str, 8) = "Dialogue" Then i = i + 1 arr = Split(str, ",", 10) s = "0" & arr(1) & "0" 'Start time e = "0" & arr(2) & "0" 'End time t = arr(9) 'Text s = Replace(s, ".", ",") e = Replace(e, ".", ",") t = re.Replace(t, "") t = Replace(t, "\n", vbCrLf) t = Replace(t, "\N", vbCrLf) srt.WriteText i & vbCrLf srt.WriteText s & " --> " & e & vbCrLf srt.WriteText t & vbCrLf & vbCrLf End If Loop path = Left(path, Len(path) - 3) & "srt" srt.SaveToFile path, adSaveCreateOverWrite End Function
把上面代码保存为ass2srt.vbs,然后将需要转换的ass/ssa字幕拖动到ass2srt.vbs脚本上即可。如果需要批量转换的ass/ssa字幕比较多,可以先把它们放到同一个文件夹里,然后直接双击运行ass2srt.vbs,选择字幕所在的文件夹即可。
原文:http://demon.tw/my-work/ass2srt.html
ass,ssa,批量转换,srt
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]