wangqr / Aegisub

Win64 nightly builds available at GHA artifact, also at following link:
https://ftp.wangqr.tk/aegisub/
Other
799 stars 49 forks source link

直接转存为SRT的字幕重叠问题 #73

Open siyexa2951 opened 4 years ago

siyexa2951 commented 4 years ago

若直接在程式中排轴 直接转存为srt 不存为ass 排轴的字幕时间若为前後时间连续接续 有时会有出现几行有毫秒重叠的问题 如 12 00:00:01,316 --> 00:00:04,658 13 00:00:04,650 --> 00:00:07,200

但若先存为ass 再转为srt 则无此问题 推论是ass并没有记录至毫秒第三位 因为先存ass後输出的srt 第三位全部为0

另外想请问 是否有跳至指定行号的功能?

wangqr commented 4 years ago

疑似重复: #57

msg7086 commented 3 years ago

我这边报一个类似的Bug report。

毫秒位不一定是TPP导致的,也可能是直接用音频拉轴的时候产生的。

Step to reproduce

  1. 新建空文件,打开空音轨
  2. 新建两行空字幕行
  3. 横向放大音频区到最大,再用Ctrl+滚轮把音频区继续放大,直至能清晰看清毫秒位
  4. 选中第一行字幕,鼠标选中0.000-0.098,提交
  5. 选中第二行字幕,鼠标选中0.092-0.200,提交

Expected behavior

  1. 字幕区两句字幕时间分别为0.00-0.09和0.09-0.20
  2. 导出成srt后,srt中两句字幕时间分别为0,000-0,090和0,090-0,200

Actual behavior

  1. 字幕区两句字幕时间分别为0.00-0.09和0.09-0.20 ✔️
  2. 导出成srt后,srt中两句字幕时间分别为0,000-0,098和0,092-0,200 ❌
wangqr commented 3 years ago

可以复现,不过这个我看起来问题出在字幕提交后音频区显示的时间错误,被舍入至厘秒位了(Aegisub内部使用毫秒精度)

msg7086 commented 3 years ago

两种做法都可以吧。(aegisub内部用的应该是浮点数吧,不止毫秒?)

考虑到工程文件(ass)本身就不支持毫秒位,在打点的时候直接舍入厘秒也是一种做法吧。否则关掉项目重新打开的时候还是会回到厘秒单位的。考虑到一致性我还是偏向直接舍入。