waecy 发表于 3 天前

关于老番一些字幕播放器显示错位的问题?该如何修复

本帖最后由 waecy 于 2025-8-14 09:34 编辑


Title:
Original Script:
Synch Point:0
ScriptType:v4.00
Collisions:Normal
PlayResX:640
PlayResY:480
Timer:100.0000


Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,楷体,30,&H00FFFFFF,&H00000000,&H00000000,&H00000000,-1,0,0,0,100,100,1,0,1,2,0,2,10,10,20,1


Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:00.53,0:00:06.59,*Default,NTP,0000,0000,0000,,寻找吧收集梦想的碎片
Dialogue: Marked=0,0:00:07.54,0:00:17.81,*Default,NTP,0000,0000,0000,,即使无奈也能感受到此刻
Dialogue: Marked=0,0:00:19.55,0:00:22.52,*Default,NTP,0000,0000,0000,,比外表看起来更单纯

首先这类字幕保存编码是「UTF-16 LE」
但更改UTF-8有BOM也不行
测试去掉时轴中「Marked=」无效
*Default改Default无效


拖进Aegisub报错



不知道问题出自哪



StarRingChild 发表于 3 天前

本帖最后由 StarRingChild 于 2025-8-14 11:17 编辑

Dialogue 里没有 pos 的,直接转成 SRT 再转回 ASS ,再根据视频分辨率,适当调整 PlayResX PlayResY 即可

waecy 发表于 3 天前

本帖最后由 waecy 于 2025-8-14 23:20 编辑

StarRingChild 发表于 2025-8-14 10:43
Dialogue 里没有 pos 的,直接转成 SRT 再转回 ASS ,再根据视频分辨率,适当调整 PlayResX PlayResY 即可 ...
谢了, 测试楼上字幕播放器可以正常显示

op200 发表于 3 天前

这是 SSA 格式,需要用同时支持 SSA 和 ASS 的工具打开,然后保存为ASS

Marked 对应的是 ASS 的 Comment,以及存在其他一些跟 ASS 不同的地方,楼上说的强转 SRT,再从 SRT 转为 ASS,很大可能会导致信息丢失

waecy 发表于 3 天前

op200 发表于 2025-8-14 20:27
这是 SSA 格式,需要用同时支持 SSA 和 ASS 的工具打开,然后保存为ASS

Marked 对应的是 ASS 的 Comment, ...

看来这种只能用Subtitle Edit来转换

刚测试了下能打开,但保留源格式另存ass也好,转换也罢,还是会丢失部分声明

PlayResX和PlayResY之类的, 此外样式声明也得改下, 不然字体size显示太大

本质和楼上没区别,就是少了转换srt的步骤

不过通过这,我倒想到一个解决的方法
Subtitle Edit转换有自定义格式,只要将自定义完整头部样式声明都加进去, 相当于整体替换, 再进行转换, 播放器打开显示字幕就是预设的常用样式, 也就间接解决了, 当然原来的样式就全部丢失了

像我上面示范的字幕,没有行内样式的可以这么做,但是有个问题, 如果遇到有pos,move的行内标签,错位几率MAX,尤其是底部字幕头部的英文字幕注释,或者屏幕字



op200 发表于 前天 04:34

waecy 发表于 2025-8-14 23:19
看来这种只能用Subtitle Edit来转换

刚测试了下能打开,但保留源格式另存ass也好,转换也罢,还是会丢失部 ...

pos的坐标是相对于 PlayRes 和 LayoutRes 的,改一下应该就行了

页: [1]
查看完整版本: 关于老番一些字幕播放器显示错位的问题?该如何修复