Xibeilius 发表于 2024-4-8 23:02:36

【经验分享】一种勉强解决去除视频黑边后字幕错位的方法

本帖最后由 Xibeilius 于 2024-4-9 00:10 编辑

事情的起因是某天拿VCB-Studio压制的灰色三部曲给以前下载过的资源洗板,结果VCB的版本将原本视频上下两条黑边去除了,这样会导致为没有去除黑边的视频制作的字幕放在去除了黑边的视频上会发生严重的错位。


(这个“生不如死”,错位错到姥姥家了)



为了解决这个问题,只能更改字幕脚本的分辨率,重新缩放样式。但是这样做会使得一些样式位置坐标变为负数,很多字幕渲染器无法将字幕渲染到视频外部,所以就会看不到这些样式。目前经过测试,mpv、VLC的字幕渲染器以及xySubFilter无法看到这些样式,PotPlayer以及MPC自带的字幕渲染器可以正常看到。以下两个画面是PotPlayer用自带字幕渲染器输出的结果。


(字幕大小、位置正确)


(字幕大小位置正确,可以输出在视频外且看得到)



具体修改的方法如下图所示,在Aegisub里关联视频,然后提示分辨率不匹配,选择“重设脚本分辨率(等比缩放铺满视频)”,点击确认后保存即可。



之前一直想解决这个问题,拿着计算器(用来算根据比例算样式大小和坐标)和记事本一个样式一个样式的改,麻烦死。最近才琢磨出来怎么用Aegisub直接修改,分享给大家,有必要的话,我可以把直接改好的灰色三部曲的字幕再开个贴分享出来。


Xibeilius 发表于 2024-4-8 23:11:12

啊?为啥我看不到我写的东西了?

joker2000 发表于 2024-4-9 00:52:50

{:4_675:}播放器可以把字幕输出到黑边上的

Xibeilius 发表于 2024-4-9 02:05:39

joker2000 发表于 2024-4-9 00:52
播放器可以把字幕输出到黑边上的

那么,具体操作方法,请。

不说清楚点,我也无法确认你说的是否真实可靠。

joker2000 发表于 2024-4-9 09:17:42

本帖最后由 joker2000 于 2024-4-9 09:19 编辑

现在伸手都这么理直气壮了吗,但凡论坛里搜一下“黑边”都能看到很多解法了(

madvr开启 processing -> zoom control -> move subtitles

如果用XySubFilter再开启


mpv使用
sub-ass-force-margins=yes

btw,不推荐常驻开启,遇到去黑边片源手动切下设置(

Xibeilius 发表于 2024-4-9 09:30:52

joker2000 发表于 2024-4-9 09:17
现在伸手都这么理直气壮了吗,但凡论坛里搜一下“黑边”都能看到很多解法了(

madvr开启 processing -> zo ...

好的,确认你这样不能解决我碰到的问题了。

Lambholl 发表于 2024-4-9 12:06:52

joker2000 发表于 2024-4-9 09:17
现在伸手都这么理直气壮了吗,但凡论坛里搜一下“黑边”都能看到很多解法了(

madvr开启 processing -> zo ...

不覆盖到原字…但是屏幕字挺多这种啊

https://p.sda1.dev/16/6fcdbb1c86344428708ca898a25756f0/image.png
https://p.sda1.dev/16/bec96e2bb4ba3e856f6b5a4eee5e8271/image.png

Xibeilius 发表于 2024-4-9 12:41:45

唉嘿嘿嘿{:4_88:}

Xibeilius 发表于 2024-4-9 16:18:14

哎,憋不住了,吐槽一句,为了自己的安全我很难表现出攻击性。

Lambholl 发表于 2024-4-9 18:17:13

本帖最后由 Lambholl 于 2024-4-9 18:20 编辑

可以用vapoursynth脚本来解决:

import vapoursynth as vs
from vapoursynth import core
import math

clip = video_in
last = clip
deltaX = last.width*9/16 - last.height
if deltaX%2==0:
    top, bottom = deltaX/2, deltaX/2
else:
    top, bottom = math.floor(deltaX/2), math.ceil(deltaX/2)
last = core.std.AddBorders(last, top=top, bottom=bottom)

last.set_output()实测:
https://p.sda1.dev/16/3b26cdb5e5dd84033542050395319bdf/image.png
页: [1] 2
查看完整版本: 【经验分享】一种勉强解决去除视频黑边后字幕错位的方法