吧务
level 14
Mr-Z♂
楼主
本文仅适用于当前版本,如果以后FFmpeg修复了某些Bug请勿喷我![[滑稽]](/static/emoticons/u6ed1u7a3d.png)
是之前在搞Flip Flappers的OP的Waifu2x的时候,用FFmpeg把视频转成PNG序列的时候、以及平时偶尔瞎捣鼓的时候发现的(不要吐槽为什么不用VS滤镜……我用waifu2x-ncnn-vulkan,那时候还没有VS移植)
大概是以下几点:
1、YUV420-->RGB的时候,使用的Chroma Upscaling算法是Neighbor,导致颜色质量降低(见图一中间红色部分)
2、对于没有标注Matrix的视频,默认使用BT.601的Matrix进行YUV-->RGB,但如果视频实际为BT.709,会导致色差(见图一和图二三的色差)
3、10Bit的YUV,FFmpeg默认将其转换为RGB48BE,如果直接指定转为RGB24会出现色带(见图一和真领子)
避坑方法:
1、先进行一次YUV420-->YUV444的转换:format=yuv444p10le(之前我是先extractplanes再分别scale色度,后来发现这个偷懒办法)
2、使用Zscale滤镜进行Matrix的指定:zscale=min=709:m=709
3、先转换为RGB48BE,再转换为RGB24:format=rgb48be,format=rgb24
总的滤镜链的写法是:-vf zscale=min=709:m=709,format=yuv444p10le,format=rgb48be,format=rgb24
图一(默认)↓

图二(调教)↓

图三(madVR)↓

如果发现上面的图片不是PNG,请看以下地址:
图一:files.catbox.moe/zb5w3y.png
图二:files.catbox.moe/334g02.png
图三:files.catbox.moe/59fq4h.png
2020年04月04日 18点04分
1
是之前在搞Flip Flappers的OP的Waifu2x的时候,用FFmpeg把视频转成PNG序列的时候、以及平时偶尔瞎捣鼓的时候发现的(不要吐槽为什么不用VS滤镜……我用waifu2x-ncnn-vulkan,那时候还没有VS移植)
大概是以下几点:
1、YUV420-->RGB的时候,使用的Chroma Upscaling算法是Neighbor,导致颜色质量降低(见图一中间红色部分)
2、对于没有标注Matrix的视频,默认使用BT.601的Matrix进行YUV-->RGB,但如果视频实际为BT.709,会导致色差(见图一和图二三的色差)
3、10Bit的YUV,FFmpeg默认将其转换为RGB48BE,如果直接指定转为RGB24会出现色带(见图一和真领子)
避坑方法:
1、先进行一次YUV420-->YUV444的转换:format=yuv444p10le(之前我是先extractplanes再分别scale色度,后来发现这个偷懒办法)
2、使用Zscale滤镜进行Matrix的指定:zscale=min=709:m=709
3、先转换为RGB48BE,再转换为RGB24:format=rgb48be,format=rgb24
总的滤镜链的写法是:-vf zscale=min=709:m=709,format=yuv444p10le,format=rgb48be,format=rgb24
图一(默认)↓

图二(调教)↓
图三(madVR)↓
如果发现上面的图片不是PNG,请看以下地址:图一:files.catbox.moe/zb5w3y.png
图二:files.catbox.moe/334g02.png
图三:files.catbox.moe/59fq4h.png