YohoYang / VSGUI

一款全新VapourSynth视频压制软件。A video encode GUI like MeGUI for VapourSynth.
GNU General Public License v3.0
133 stars 7 forks source link

xy-vsfilter编码有点问题 #10

Closed OKtheMirror closed 8 months ago

OKtheMirror commented 8 months ago

我用这个编码压制滚动水印字幕效果确实有了,但压制时间不太正常,压制基本2分多钟完事不说,最后生肉500多MB,字幕压制完后成品就60MB出头了,导入BoilsoftVideoSplitterPortable中预览压根不显示,导入Potplayer播一会就卡死了,快进跳段就直接黑屏,请问这是个什么情况?有解决方法吗?

YohoYang commented 8 months ago

这个和xy-vsfilter压制应该没有关系,还是说你不勾选xy-vsfilter压出来体积更大,后面你说的其他东西也没问题? 我这边是自己测试过的,切换为xy-vsfilter的情况下不会导致问题。所以需要你自己进行更多测试,并且如果依然有问题的话,上传一个测试的有问题的视频,或者是压制有报错,提供报错日志等,不然没有办法调试

OKtheMirror commented 8 months ago

https://github.com/YohoYang/VSGUI/assets/142728560/66a511cb-fb0b-4677-a735-d767d1a00f8c

这是视频问题演示

OKtheMirror commented 8 months ago

run_2024-01-12.txt 这个是系统压制这个的日志

YohoYang commented 8 months ago

run_2024-01-12.txt 这个是系统压制这个的日志

看日志和视频的情况,视频只压制了一点就直接显示已完成了。首先是完成的判断有问题,这个我改一下。 其次是,如果不勾选xy-vsfilter压制是正常的吗,是的话感觉是这个插件可能处理到特定的ass内容的时候出现了问题,导致压制失败了。 如果不勾选xy-vsfilter压制是正常的,那么能不能提供一下ass给我测试,这样可以更快找到问题。发到github大家都会看到,可以邮件发到yohoyang@outlook.com

OKtheMirror commented 8 months ago

不勾选xy-vsfilter话水印字幕的滚动效果就出不来,压制还是能顺利压制完一整集的

YohoYang commented 8 months ago

不勾选xy-vsfilter话水印字幕的滚动效果就出不来,压制还是能顺利压制完一整集的

那就是xy-vsfilter.dll的问题,这玩意2019年之后就没有更新过了。 不知道你是怎么写的滚动,我这边还是推荐使用libass的规范来制作ass,xy-vsfilter已经过老了。 但是基于压制硬字幕的情况,还是可以接着尝试一下xy-vsfiltermod能不能用,这个似乎还有22年的更新,希望你能自己测试一下或者提供ass让我测试一下(需要改vpy脚本,使用高级压制测试)

如果转向libass,可以参考这个调整aegisub设置。(不过potplayer依然是vsfilter,VLC是libass) aegisub可以把assrender的dll放入CSRI目录后,从设置中修改使用的渲染器 图片

OKtheMirror commented 8 months ago

xy-vsfiltermod这个我查看了一下我的应用里装了,是最新版的

YohoYang commented 8 months ago

xy-vsfiltermod这个我查看了一下我的应用里装了,是最新版的

不是安装了就行的,得使用高级压制改vpy脚本才能调用。(简易压制只是自动帮忙写脚本罢了,而且目前也不会调用这个)

得使用如下格式的vpy代码加载字幕替换后来测试 video = core.vsfm.TextSubMod(video,r"字幕路径")

OKtheMirror commented 8 months ago

我把ASS文件直接发给您吧,我制作水印用了一个笨办法,请您多包含。

YohoYang commented 8 months ago

我把ASS文件直接发给您吧,我制作水印用了一个笨办法,请您多包含。

好的,我晚上来测试和处理。顺带也可以帮你稍微调整一个更好的写法。后续会通过邮件回复你

YohoYang commented 8 months ago

我把ASS文件直接发给您吧,我制作水印用了一个笨办法,请您多包含。

发送的时候不需要附带片源,只放ass字幕就行,理论上套什么片源都是一样的,我找其他片子测试就可以

YohoYang commented 8 months ago

经过测试,有如下结论

为什么默认的libass不能滚动? 答:libass对于写法要求更为规范,你的滚动效果的 scroll up;1077;0;15 写的不对,规范中,应为Scroll up, 其中S应为大写,修改为大写后表现正常。而vsfilter要求没那么严格,小写也视为正确,所以正常滚动了。

为什么xy-vsfilter无法正常压制? 答:经过测试,你的这种写法对于字幕渲染的压力非常大,xy-vsfilter的dll写的不好,在压制时发生了崩溃,导致直接结束。我本地替换vsfiltermod后,能够完成压制。后续更新时,简易压制中的xy-vsfilter将被替换为vsfiltermod,同时也会加强对于压制失败的检测,压制如果有问题将不会提示成功。

这种ass写法的问题?怎么写更好? 答:经过测试,不挂载这个字幕时,压制可以达到400fps,而挂载后,libass的压制速度降到了15fps。我帮您修改了一份,速度依然在400fps。修改的已经通过邮件私发。可以使用默认的libass(不勾选那个选项)来直接预览和压制。也强烈推荐你稍微了解一下vpy代码,对于你的压制帮助将非常大。

OKtheMirror commented 8 months ago

非常感谢

OKtheMirror commented 8 months ago

出了点新问题,详细的我发outlook邮件给您了

YohoYang commented 8 months ago

封装时如果目标文件已存在目前是覆盖逻辑,如果目标文件已打开(被占用)会导致封装失败,后续版本优化一下,遇到这种情况自动添加后缀使封装一定能成功