level 12
字幕组压视频经常需要某些地方添加图片,目前的做法是先ConvertToRGB32,然后Layer加图片,然后再ConvertToYV12转回来。
感觉这两次色彩转换是有损的,有没有办法无损转换,或者源滤镜直接输出rgb,这样也能少转一次
2017年03月17日 14点03分
1
level 14
提供一种思路(我也不知道可不可行)
前提:图片不涉及alpha通道
1、图片转为YUV2
2、Y平面不动,对UV平面resize,组成YUV2,layer加图片,得到A
3、UV平面不动,对Y平面resize,组成YUV2,layer加图片(要相应进行resize),得到B
4、取A的Y平面与B的UV平面,组成YV12
----------------------------------------------------------------------------------
如果图片涉及alpha通道就不能那样做了,就只能通过提高运算精度来减少损失了,建议全部在16bit下处理
2017年03月17日 15点03分
2
level 14
另外,除非你的视频是RGB的,不然,即使源滤镜输出rgb也是源滤镜帮你做了转换而已
2017年03月17日 15点03分
3
多谢解答,可惜图片是带透明度的png。另外有种常用方法是挂mod版的vsfliter,然后图片写进ass字幕里,请问这样对画质损失会少一些吗
2017年03月17日 17点03分
@vg勇夺ti🍺 带透明通道的话,理论上可以利用透明通道得到一个mask,通过masktool的merge来做
2017年03月18日 00点03分
@787633258 好的,多谢了,我试一下,因为用vsfiltermod很容易崩
2017年03月18日 09点03分
level 1
tie(度)ba.b(熊)aidu.c(吞)om/p(连)/2732(接)517788?pid=42432274403
2017年03月18日 12点03分
6
level 1
为什么你要考虑把整个片子搞进RGB(32位浮点例外),而不是把图片搞进YUV再overlay呢?
2017年03月18日 12点03分
7
主要不知道可以这样,我待会儿试一下
2017年03月19日 03点03分
level 11
提高精度就行了
8bitRGB转换为10bityuv再转换为8bitRGB是无损的
2017年03月18日 17点03分
8
level 5
问题是你为何不选择把图片转成YUV而是选择将视频转成RGB……
2017年03月20日 18点03分
9