verdurewind 发表于 2021-11-5 02:10:30

关于ass字幕中的PlayResX、PlayResY参数的问题

PlayResX、PlayResX这两个值感觉是控制字体分辨率的,为什么这两个值越高,字体越小;我把这两个值设成和我手机屏幕分辨率(2K分辨率的)一致,在手机上播放1080p的视频,感觉字幕有点小,然后多次测试,结果发现这两个值要是越高,字体就越小;要是把PlayResX、PlayResY分别设成1280和720,感觉字幕大小正好,为什么会这样?

孤雨独火 发表于 2021-11-5 05:26:02

本帖最后由 孤雨独火 于 2021-11-5 05:31 编辑

这两参数在字幕设计时就固定死了,不应该在每次播放时手动改。
只改这两可能产生大量奇奇怪怪的问题,比如坐标相关的全部偏离了设计初衷

面向不同分辨率的设备缩放匹配应该完全是播放器(字幕渲染器)的任务{:4_686:}


chrislong 发表于 2021-11-5 09:45:35

这个代码和/fs字体大小有什么区别吗?

verdurewind 发表于 2021-11-5 13:27:56

孤雨独火 发表于 2021-11-5 05:26
这两参数在字幕设计时就固定死了,不应该在每次播放时手动改。
只改这两可能产生大量奇奇怪怪的问题,比如 ...

嗯,受教了,我对字幕设计不是很懂。我是把B站的弹幕下载到本地做成ass字幕播放,手机播放器是mxplayer,结果全屏幕都是弹幕,没法看视频,试过在mxplayer里修改字号和比例,然而对这弹幕不生效,还是原来的大小。后来发现改这两参数有用,所以疑惑来了,不懂这两个值为什么越高字体就越小,感觉有点反常识 囧

verdurewind 发表于 2021-11-5 13:30:35

chrislong 发表于 2021-11-5 09:45
这个代码和/fs字体大小有什么区别吗?

我不懂这个字幕设计的,看看有没有大佬回答吧{:4_686:}

StarRingChild 发表于 2021-11-5 14:41:39

这个类似显示器的渲染分辨率。你要改字幕字体大小需要改 ass 里 Style 里的 Fontsize
https://i.loli.net/2021/11/05/b7MU3cNlDq2tv6y.png

verdurewind 发表于 2021-11-5 16:26:41

StarRingChild 发表于 2021-11-5 14:41
这个类似显示器的渲染分辨率。你要改字幕字体大小需要改 ass 里 Style 里的 Fontsize
...

感谢回复,我试试修改下fontsize

苏辰汐 发表于 2021-11-5 17:05:11

因为PlayResX、PlayResY参数是定义ass制作时匹配的参考分辨率,该ass中style指定的fontsize和pos、\fs和\fsc等标签都是相对该参考分辨率来的。

vsfilter和libass渲染ass字幕时会自动根据PlayResX、PlayResY参数缩放至目标视频分辨率(或屏幕分辨率)以使对应ass标签效果显示正确。
其中当ass的PlayResX、PlayResY参考比例和实际观看视频比例不一致时libass无法正确缩放渲染。
PlayResX、PlayResY参数缺失时也会导致渲染错误(libass)

这也是为什么你改了PlayResX、PlayResY参数后渲染的字体大小变了,因为你改了ass的参考分辨率却没有修改对应的fontsize和pos等参数

ass字幕的制作规范通常应该将PlayResX、PlayResY设为目标分辨率及比例,Aegisub中可以调整ass字幕分辨率并正确处理fontsize和pos、\fs和\fsc等标签缩放,但MarginL, MarginR, MarginV等style无法正确处理(无需调整)。

verdurewind 发表于 2021-11-5 17:31:05

苏辰汐 发表于 2021-11-5 17:05
因为PlayResX、PlayResY参数是定义ass制作时匹配的参考分辨率,该ass中style指定的fontsize和pos、\fs和\fs ...

这回答太牛了,原来背后的机制这么复杂,我大概懂了,谢谢回复
页: [1]
查看完整版本: 关于ass字幕中的PlayResX、PlayResY参数的问题