引用
最初由 kiral 发布
这个应该是你解码器的问题啦,同编码的关系不大。其实就是YUV<->RGB的颜色转换问题,16-235转到0-255的灰度。表现就是黑的不够黑,白的也不够白,就像画面有一层白蒙蒙的东西。
你试试DirectShow load CoreAVC解码,事先在CoreAVC设置输出是Output: PC(0-255),不要选自动,看看压出来的画面颜色是否正确,有没有改善。
当然也可能是你压的没有问题,是播放器有YUV->RGB的问题,不过这个可能性小一些,呵呵。
第一和第三张图也是avs输出的图,都看不出什么问题,那么就应该不是avs源的问题,而是他压完后的视频在解码/渲染中的问题,不过别人压的成品(图2)又没问题,这就有稍微有点奇怪了
既然牵涉到yc伸张的问题,那么片源必然是yuv的了
假设lz四张图截图的时候播放器/显卡的设置都是相同的
1、3张图,片源是yuv,那么avs输出的自然也是yuv,这个时候渲染器做了正确的yc伸张,说明渲染器没问题
图4,既然是用3做源压的,那么自然压出来的也该是yuv的h264视频,那么只能是在解码或者渲染的时候做了错误的yc伸张,由于渲染器应该是正常的,那只能是解码器的问题
图2,假如那个“别人压的”也是yuv的h264,那么必然也会遇到和图4相同的错误,但是却没有出现,那么要么就是别人压的是个rgb的h264(不用再做yc伸张了),要么别人用的不是h264编码(解码器不同所以可以正确处理)
所以,lz自己压的片显的发灰,应该是你的h264解码器问题,自动做了次yuv->rgb转换(选了强制rgb输出之类的东西?),并且没做yc伸张