批量vtt转lrc

最近在听dlsite的音声,但是.vtt格式的字幕文件在常规手机播放器上无法正常使用。因此想实现最简单的批量vtt转lrc,在网上查找无果后决定自己搞一个。代码如下:

@echo off
chcp 65001

setlocal EnableDelayedExpansion

:: 遍历当前目录下的所有 .vtt 文件
for %%f in (*.vtt) do (
    echo Converting: %%f

    :: 获取不含扩展名的文件基本名,并移除可能的后缀,这部分可自行进行增添
    set "base_name=%%~nf"
    set "base_name=!base_name:.mp3=!"
    set "base_name=!base_name:.vtt=!"
    set "base_name=!base_name:.wav=!"

    :: 创建对应的 .lrc 文件名
    set "lrc_file=!base_name!.lrc"
    echo. > "!lrc_file!"
    set "counter=0"

    :: 读取并转换每一行
    for /f "tokens=*" %%i in (%%f) do (
        set /a counter+=1
        if !counter! geq 3 (
            if !counter!==3 (
                set "ttt=%%i"
            )
            if !counter!==4 (
                echo [!ttt:~3,8!]%%i>>"!lrc_file!"
                set "counter=1"
            )
        )
    )
)

echo All .vtt files have been converted to .lrc format.
pause
endlocal

 这段代码基于fesdfe288大佬的代码进行修改,原文地址vtt转lrc批处理文件_vtt字幕文件转化为lrc-CSDN博客。将原来的转换指定文件更改为转换当前目录所有后缀为vtt的文件,并删除无关后缀残余,适用于单个目录内批量处理(就是同人音声)。经多组测试,测试的文件使用potplayer可以正常播放转换后歌词。

备注:原来存在的问题现在也依然存在,具体情况可参考原文。本修改仅针对特定用途进行。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java是一种广泛应用于软件开发的编程语言,可以用来实现各种功能。要将SRT格式的字幕文件换为VTT格式,可以使用Java编写一个简单的程序来完成这个任务。 首先,需要了解SRT和VTT格式的区别。SRT是一种常见的字幕格式,它使用数字来表示字幕的序号、起始时间、结束时间和字幕内容。而VTT是WebVTT格式的字幕,它使用类似HTML的标记语言来表示字幕的样式和显示位置。 在Java中,可以使用文件读取和写入的类来读取SRT文件和写入VTT文件。具体的步骤如下: 1. 使用Java的文件读取类来读取SRT文件,可以使用BufferedReader类。创建一个BufferedReader对象来读取SRT文件的每一行。 2. 解析SRT文件的每一行,提取字幕的序号、起始时间、结束时间和字幕内容。可以使用字符串的分割和截取方法来提取这些信息。 3. 将提取到的字幕信息按照VTT格式的要求进行处理。可以使用字符串的替换和拼接方法来生成符合VTT格式的字符串。 4. 使用Java的文件写入类来写入VTT文件,可以使用BufferedWriter类。创建一个BufferedWriter对象来写入VTT文件的每一行。 5. 将处理后的VTT格式的字幕信息逐行写入VTT文件。 6. 关闭SRT文件的读取和VTT文件的写入。 通过以上步骤,就可以将SRT格式的字幕文件换为VTT格式的字幕文件了。但需要注意的是,换过程可能会遇到一些格式不一致的情况,需要根据具体情况进行特殊处理。另外,为了保证程序的健壮性,还需要进行异常处理和错误检查。 总之,使用Java编写一个读取SRT文件并换为VTT格式的程序是可行的,只需按照上述步骤实现相应的代码即可。 ### 回答2: java是一种广泛使用的编程语言,拥有强大的处理文本的能力。将srt(SubRip Subtitle)格式换为vtt(WebVTT)格式是一项常见的需求,可以通过使用java编写程序来实现。 首先,我们需要了解srt和vtt格式的特点。srt是一种简单的文本格式,用于存储视频字幕,每个字幕块包含序号、起始时间、结束时间和字幕文本。vtt格式是WebVTT字幕格式的一种,也是文本格式,它使用类似于srt的结构,但还包含更多的元数据信息。 在java中,我们可以使用文件读写操作来解析srt文件和生成vtt文件。首先,我们需要读取srt文件的内容,并按照特定的格式解析每个字幕块,提取出起始时间、结束时间和字幕文本。 然后,我们可以使用java的字符串处理功能,将提取到的数据格式化为vtt的结构。在每个字幕块前添加"00:"作为小时字段(因为vtt格式的时间需要包含小时)、"."作为毫秒字段,并在每个字幕块之间添加换行符。 最后,我们将格式化后的vtt内容写入新的vtt文件中。使用java的文件写入操作,我们可以将vtt内容写入磁盘上的一个文件中,以便后续的使用和传输。 通过以上步骤,我们可以使用java来实现srt到vtt格式的换。使用java编写脚本,我们可以批量换多个srt文件,提高效率。这样,我们就可以快速、方便地将srt格式的字幕换为vtt格式,以适应各种网页和播放器的需求。 ### 回答3: SRT和VTT是两种常见的字幕格式,用于在视频中展示文本。SRT是一种简单的文本文件格式,而VTT是一种更复杂和功能更强大的WebVTT格式。 要将SRT格式换为VTT格式,可以按照以下步骤进行操作: 1. 首先,打开一个文本编辑器(如记事本)。 2. 将SRT文件的内容复制粘贴到文本编辑器中。 3. 将文件的扩展名从.srt更改为.vtt。 4. 在文本编辑器中,添加一行"WEBVTT",作为文件的第一行。 5. 接着,在每个字幕条目之前,添加一个空行。 6. 对于每个字幕条目,删除时间戳之间的'-->'符号,并在每个时间戳之后添加一个空格。例如,替换"00:00:01,000 --> 00:00:04,000"为"00:00:01.000 00:00:04.000"。 7. 可选地,您还可以添加其他样式和设置,如字幕的位置、颜色和字体。 8. 最后,保存并关闭文件。 经过上述步骤,您的SRT文件将换为VTT格式。VTT文件可以在支持WebVTT的视频播放器中使用。 需要注意的是,换过程中可能会丢失一些格式和样式。您可以根据需要自定义VTT文件的样式和设置,使字幕更符合您的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值