我正在制作一个程序,以加快和减缓部分视频,我想支持修改时间的字幕匹配。如何在文本文件中只搜索时间码并修改它们?
这是srt字幕文件。Timecodes采用HH.MM.SS,mmm格式。这些文件包含其他数字(如十六进制颜色),所以我只想搜索特定时间码格式的数字。
我已经有了一个函数,它以秒为单位获取输入时间,并以秒为单位返回输出时间。在“timecode”格式和时间(以秒为单位)之间转换也应该相当容易。
这是文本文件的一个示例:
1
00:00:00,000 --> 00:00:09,138
<font color="#CCCCCC">alexxa</font><font color="#E5E5E5"> who's your favorite president</font>
2
00:00:04,759 --> 00:00:12,889
<font color="#E5E5E5">George Washington</font><font color="#CCCCCC"> has my vote Alexa</font>剩下的唯一的事情是,如何只接收timecodes,然后用新的timecodes替换它们?不知道从这里到哪里。避免过多地遍历文本文件也很好,因为会有很多时间代码需要更改。
发布于 2019-04-26 00:06:02
考虑到它是文本格式,匹配(并替换)文件中时间戳格式的最有效方法是使用正则表达式:https://en.cppreference.com/w/cpp/regex
您希望这样做:您从源文件中逐行读取,对于RE匹配的每一行,您将其替换为新的时间戳(即创建一个新行),并输出到一个新文件(或一个缓冲区,稍后可以在完成处理后提交到源文件中)。在读取时,其他行( RE不匹配)将完整地输出。
https://stackoverflow.com/questions/55858810
复制相似问题