dyphire / mpv-winbuild

Use Github Action to build mpv-win with latest commit.
36 stars 1 forks source link

其实这个修改版libass还是有bug的。 #2

Closed eko5624 closed 3 years ago

eko5624 commented 3 years ago

比如下面这个ass字幕文件,您可以测试一下。没有完全修复这个问题。 https://github.com/dyphire/libass/commit/3c136296d0969dbc906c0155ca0062a5aa200ddc 这个二维码不能正常显示:

图片

Game.of.Thrones.S07E01.Dragonstone.REPACK.1080p.AMZN.WEB-DL.DD+5.1.H.264-GoT.简体&英文.ass.zip

dyphire commented 3 years ago

因为这不是一个类型的问题,修改版只是修复了当ass字幕脚本指定的视频比例和实际观看的视频比例不一致时libass无法像VSFilter系那样正确处理的问题。这本质是ass字幕制作者制作不规范导致的,考虑到内封情况才做了修改版提高兼容性。

而你这个ass字幕就更不规范了,脚本里甚至没有指定PlayResX和PlayResY。这种由于制作不规范导致的问题libass是难以修复了,本身也不是libass的问题,建议自行修改ass字幕?

不过这修改方案确实不完善,有很多ass标签的比例缩放问题待解决(主要是\fsc xy轴旋转标签),看有没有其他大佬可以进一步完善吧

eko5624 commented 3 years ago

谢谢回复。字幕文件编写不规范确实是个问题。不过好多字幕组制作的字幕确实也没写PlayResX和PlayResY值。potplayer和mpc-be内建字幕处理器却能妥善处理这个问题。只能坐等大佬修复了。这个bug在libass仓库好像提了好几年了,看来是不好修复。。

dyphire commented 3 years ago

VSFilter系字幕渲染器在这方面的兼容性上做的是很不错,存在这么多的不规范ass字幕也和它有关。ass字幕制作者使用最多的ass制作工具Aegisub,其字幕渲染器组件默认用的VSFilter,也就导致了VSFilter下看似正常实际不被libass兼容的错误标签行为。

典型例子还有ScaledBorderAndShadow这个ass标签缺失时libass和VSFilter对此完全相反的默认缩放行为

dyphire commented 2 years ago

@eko5624 https://github.com/dyphire/libass/commit/c75d37f5dd402cf332baaa70e1c2e3a713585a28 修改版使用新方式实现了这一功能,此问题已被修复 代码源自libass开发者 https://github.com/astiob/libass/commit/a550fc5115bd36cb9d0510976d7357b609410645 暂未合并至主分支

eko5624 commented 2 years ago

赞!赞!赞!终于等到这一天了。。

dyphire commented 2 years ago

友情提醒:自libass此提交https://github.com/libass/libass/commit/f08f8ea522d20dd9985544c636e45e4984a0d743 之后已修复这一长达7年之久的bug。最新版已回归libass官方源编译,移除相应修改分支

eko5624 commented 2 years ago

刚才测试了下,这个bug似乎还没有完全修复。 MPV-00_00_43 502-N0001

dyphire commented 2 years ago

无法复现,我这边测试正常 image

eko5624 commented 2 years ago

找到原因了。打开ass文件,看到需要用到方正黑体_GBK。安装字体之后正常了。 MPV-00_00_49 925-N0001