【发布时间】:2023-03-05 10:28:01
【问题描述】:
我正在制作一个程序来加速和减慢部分视频,我想支持修改字幕的时间以匹配。如何仅搜索文本文件中的时间码并进行修改?
这适用于 srt 字幕文件。时间码的格式为HH.MM.SS,mmm。这些文件包含其他数字(例如十六进制颜色),所以我只想搜索特定时间码格式的数字。
我已经有一个以秒为单位的输入时间并以秒为单位返回输出时间的函数。在“时间码”格式和时间(以秒为单位)之间进行转换也应该相当容易。
这是一个文本文件的例子:
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>
剩下的就是如何只接收时间码,然后用新的时间码替换它们? 不知道从这里去哪里。最好避免不必要地循环遍历文本文件,因为会有很多时间码需要更改。
【问题讨论】:
-
虽然如果被替换的字符与原始字符完全相同,您可以就地修改文件——但最好避免这种情况,因为它很脆弱。最好将文件读入内存进行更改并写出新文件。