返回顶部
首页 > 资讯 > 精选 >如何实现ass/ssa批量转换srt的脚本
  • 499
分享到

如何实现ass/ssa批量转换srt的脚本

2023-06-08 09:06:08 499人浏览 薄情痞子
摘要

这篇文章主要介绍“如何实现ass/ssa批量转换srt的脚本”,在日常操作中,相信很多人在如何实现ass/ssa批量转换srt的脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现ass/ssa批量转换

这篇文章主要介绍“如何实现ass/ssa批量转换srt的脚本”,在日常操作中,相信很多人在如何实现ass/ssa批量转换srt的脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现ass/ssa批量转换srt的脚本”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

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]?[0-9]*:[0-9]*:[0-9]*.[0-9]*),([1-9]?[0-9]*:[0-9]*:[0-9]*.[0-9]*),[^,.]*,[^,.]*,[0-9]*,[0-9]*,[0-9]*,[^,.]*,(.*)/gi;    rv = ss.match(re);    t1 = RegExp.$1;    t2 = RegExp.$2;    t3 = RegExp.$3;    rg = /\{[^}.]*(\\pos\([0-9]*,[0-9]*\))[^}.]*}/gi;    t3 = t3.replace(rg,"$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 ExplicitConst Encoding = "unicode" 'assume unicode'Author: Demon'WEBsite: Http://demon.tw'Date: 2012/6/16Dim shell, folder, fso, ext, i, argsSet shell = CreateObject("Shell.Application")Set fso = CreateObject("scripting.filesystemobject")Set args = WScript.ArgumentsIf 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  NextElse  For i = 0 To args.Count - 1    ASS2SRT args(i), Encoding  NextEnd IfMsgBox CInt(i) & " file(s) Converted!", vbInfORMationFunction 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, adSaveCreateOverWriteEnd Function

把上面代码保存为ass2srt.vbs,然后将需要转换的ass/ssa字幕拖动到ass2srt.vbs脚本上即可。如果需要批量转换的ass/ssa字幕比较多,可以先把它们放到同一个文件夹里,然后直接双击运行ass2srt.vbs,选择字幕所在的文件夹即可。

到此,关于“如何实现ass/ssa批量转换srt的脚本”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何实现ass/ssa批量转换srt的脚本

本文链接: https://lsjlt.com/news/253183.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何实现ass/ssa批量转换srt的脚本
    这篇文章主要介绍“如何实现ass/ssa批量转换srt的脚本”,在日常操作中,相信很多人在如何实现ass/ssa批量转换srt的脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现ass/ssa批量转换...
    99+
    2023-06-08
  • 如何实现批量转换目录下文件编码的shell脚本
    这篇文章将为大家详细讲解有关如何实现批量转换目录下文件编码的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一例批量转换目录下文件编码的shell脚本代码。需求描述:由于从window转lin...
    99+
    2023-06-09
  • vbs脚本怎么实现批量转换文件编码
    这篇文章主要介绍“vbs脚本怎么实现批量转换文件编码”,在日常操作中,相信很多人在vbs脚本怎么实现批量转换文件编码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vbs脚本怎么实现批量转换文件编码”的疑惑有所...
    99+
    2023-06-08
  • Shell脚本实现批量替换文件内容
    今天同事发现内部服务器的硬盘空间不够了,上面有很多备份,我又不能删除,重新找了个320g的硬盘挂载了上,想以后shell脚本下的备份都转移到新硬盘上,给老硬盘腾出空间来,原备份路径是/data/online...
    99+
    2022-06-04
    批量 脚本 文件
  • 如何实现IIS ASP.NET版本转换批处理
    这篇文章将为大家详细讲解有关如何实现IIS ASP.NET版本转换批处理,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。标识符的查看方法:iisaspnet.bat代码代码如下:@echo off echo...
    99+
    2023-06-08
  • 如何实现python图片格式转换脚本
    这篇文章给大家分享的是有关如何实现python图片格式转换脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.cv2pip install opencv-python之后就可以import cv21.1 导包i...
    99+
    2023-06-22
  • Shell脚本之进制转换器如何实现
    本篇内容介绍了“Shell脚本之进制转换器如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、需求说明计算IP地址我们经常需要将十进制...
    99+
    2023-07-05
  • dedecms如何实现批量替换
    这篇文章主要讲解了“dedecms如何实现批量替换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“dedecms如何实现批量替换”吧! ...
    99+
    2023-02-24
    dedecms
  • 怎么用Shell脚本实现批量替换文件内容
    这篇文章主要讲解了“怎么用Shell脚本实现批量替换文件内容”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Shell脚本实现批量替换文件内容”吧!系统:centos 5.x1.先确认有...
    99+
    2023-06-09
  • 批量转换目录下文件编码的shell脚本代码
    一例批量转换目录下文件编码的shell脚本代码。 需求描述:由于从window转linux过来,很多原来win下的gbk文件需要转换成utf8。 以下脚本仅判断非utf8文件转换成utf8文件,并且默认非u...
    99+
    2022-06-04
    脚本 批量转换 代码
  • Python如何实现自动识别并批量转换文本文件编码
    这篇“Python如何实现自动识别并批量转换文本文件编码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现自...
    99+
    2023-07-05
  • 如何实现将Bat转换位VBS文件的VBS脚本
    这篇文章主要为大家展示了“如何实现将Bat转换位VBS文件的VBS脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何实现将Bat转换位VBS文件的VBS脚本”这篇文章吧。下面代码稍有修改,原...
    99+
    2023-06-08
  • Python 如何实现批量转换视频音频的采样率
    目录前言环境依赖代码验证一下前言 本文主要分享一个python代码,可以将多个视频中的音频转化为相同采样率的视频。对视频格式的校验没有做,也不是很关键。 环境依赖 ffmpeg环境安...
    99+
    2024-04-02
  • shell脚本批量执行指定路径下sql脚本的实现
    目录1. 场景描述2. 创建sql3. 创建脚本3.1 方式一3.2 方式二1. 场景描述 linux环境下通过shell脚本批量执行指定目录下所有sql语句,用来建表建库,初始化项目sql等。linux shell在线...
    99+
    2023-02-03
    shell批量执行sql脚本 shell批量执行脚本
  • Python实现批量修改xml文件的脚本
    今天分享一个我自己写的实用脚本,主要是将.xml文件进行批量的修改 首先,声明我并不是很了解.xml的相关知识,所以今天主要是以我遇到的问题来做个记录。 想要更多的了解xml,请看最...
    99+
    2024-04-02
  • Shell脚本之进制转换器的实现
    目录一、需求说明二、脚本内容三、使用示例一、需求说明 计算IP地址我们经常需要将十进制和二进制数值之间进行转换,实际上进制之间转换通过bc命令就可以完成。此进制转换器shell脚本就是利用bc进制转换功能来实现我们的需求...
    99+
    2023-03-23
    Shell 进制转换器 Shell 进制转换
  • 如何实现BAT批量去除文件首行以及批量合并文件脚本
    这篇文章主要讲解了“如何实现BAT批量去除文件首行以及批量合并文件脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现BAT批量去除文件首行以及批量合并文件脚本”吧!bat批量去除文件...
    99+
    2023-06-08
  • php如何实现批量转成utf-8
    这篇文章主要讲解了“php如何实现批量转成utf-8”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何实现批量转成utf-8”吧!php实现批量转成utf-8的方法:1、创建一个PHP...
    99+
    2023-06-28
  • shell脚本中使用iconv实现批量文件转码的代码分享
    在开发中,我们经常需要对N多文件编码进行更改,iconv只能对单文件的进行更改,怎么办呢?我们写一个shell脚本来解决这个问题。 例子一:使用shell脚本实现批量转码的操作。 #!/bin/sh ...
    99+
    2022-06-04
    批量 脚本 代码
  • C#实现批量Word转换Html的示例代码
    目录实践过程效果代码实践过程 效果 代码 public partial class Form1 : Form { public Form1() { ...
    99+
    2022-12-22
    C# Word转Html C# Word Html
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作