dwing吧 关注:5,688贴子:89,338

求教HandBrake视频压缩色域的问题

只看楼主收藏回复

一直习惯自己用Aegisub设置字幕样式,然后用MKV Toolnix封装后收藏电影。播放器是PotPlayer+madVR。
偶尔有些蓝光原盘或者1080P体积比较大的资源就自己动手压制,多数是用MeGUI,每次都要写AVS觉得有点麻烦,而且MAC上就HandBrake方便一些开始尝试HandBrake。
今天发现HandBrake压出的画面颜色太深,很多细节都丢失了。
TAB查看信息发现HandBrake压缩的视频多了 范围:TV 色域:bt709 传输:bt709 色彩空间:bt709
对比测试下小丸工具箱压的视频也有这几个信息。MeGUI压缩的则没有,且色彩正常。
尝试调整PotPlayer设置,PotPlayer设置:视频-色隙/属性-输出色彩空间:RGB32这样设置的话色彩明显加深,丢失细节。因之前个人觉得RGB32色彩深度会好一些,所以选了这个32位深度的色彩空间。(比较玄学,看不出什么差异,但心理上觉得这个好些)
设置为自动的话,播放时输出为:NV12色彩正常。
虽然问题已经可以解决了。视频-色隙/属性-输出色彩空间:自动选择 就能正常播放,问题应该是色彩空间不同播放时不能正常转换导致的。
但还是想请教,为什么会产生这样的问题,都是调用的x264编码器,是不同软件默认内置参数不同导致的吗?有没有解决的方法?用MAC压缩的话视频色域都成bt709了。MAC上用IINA看电影,可调节参数比PotPlayer少很多,那用HandBrake和小丸压的片子担心颜色都不对,MAC也没MeGUI可用。
上图色彩明显太深,细节丢失


请大神不吝赐教!谢谢。


IP属地:云南1楼2017-06-23 03:34回复
    我估计是转成RGB时用了bt601,这类转换去让madvr做就行了,输出保持和源相同,一般为yuv420(NV12是yuv420的一种存储方式)。ps:不用理楼上那人


    IP属地:江苏来自Android客户端7楼2017-06-24 13:01
    收起回复
      2025-08-26 20:45:43
      广告
      不感兴趣
      开通SVIP免广告
      楼上那人完全就是牛头不搭马嘴,在同一个屏幕上对比前后差别,你跟我说要校色?别搞笑了


      IP属地:广东来自Android客户端8楼2017-06-24 15:04
      回复
        这个我不知道,不过百度网盘上看视频感觉色域真的问题很多,比如同一个视频不同组的RIP相差还是很明显的。


        IP属地:湖南9楼2017-06-24 15:29
        收起回复
          感觉是pc range与tv range的问题。
          蓝光节目的话,colorprim、transfer、colormatrix三个旗标都设为bt709肯定是没有问题的。
          猜测potplayer设置输出RGB32的时候会多做一次YC伸张。(PS:所以说为什么不乖乖保持默认设置)
          检查一下这些软件对x264中--range、--input-range两个参数的设定,再用mediainfo看看成品里有没有关于range的旗标,应该就能找到问题了。


          IP属地:陕西10楼2017-06-24 19:46
          收起回复
            我现在就是用AUTO不敢用RGB32了。PC上也可以变相解决问题。但是MAC好像就HandBrake方便些。而且MAC平台的播放器没有PotPlayer强大,很多东西不能设置,一看播放的颜色都是PC上PotPlayer用RGB32渲染的效果。色彩明显变深,细节丢失。


            IP属地:云南11楼2017-06-24 22:00
            收起回复
              这个一般是色域转换问题,要看母带是什么标准,然后要对应,片子一般都709的,都是420居多,如果选了422 444就有可能会这样。也不能直接转2020


              IP属地:广东来自Android客户端12楼2017-06-25 02:46
              回复
                不同软件的x264默认参数不同。megui和mc的参数差很多,我亲自看过。
                但这个是否是你遇到的问题的原因,我不知道。


                IP属地:辽宁来自iPhone客户端18楼2017-06-25 21:22
                收起回复
                  2025-08-26 20:39:43
                  广告
                  不感兴趣
                  开通SVIP免广告
                  大家在楼主帖子里面讨论就讨论,楼主只是想找到问题的解决方法,大家有想法就自己各自阐述下吧。说的不好或者有所误解什么的,权当是抛砖引玉就好了。这个问题,我想很多RIP组都是遇到过的,希望有在贴吧RIP组的大神来这里指导下。


                  IP属地:湖南22楼2017-06-26 00:19
                  回复
                    既然是1080p应该都是tv level即limited 16-235,和bt.709。handbrake加了这些正确的旗标应该也没问题(除非影响播放器读取旗标以设定输出的某些规则)
                    问题在于播放器的yuv to rgb规则设置,因为你比较画面深浅都是以你看到的播放器渲染的为准,如果对比时改了设置则自然不同
                    在显示器上看的话自然是pc level,0-255。过程是先yuv[16,235] to r'g'b'[16,235],再r'g'b'[16,235] to rgb[0,255],有明确的转换和处理公式去保证颜色一致
                    你说【发现handbrake压出的画面太深】,既然是太深也就是说跟其他非handbrake压出的来比较了,那么比较时所用的播放环境(显卡等)和播放器输出设置是否完全相同?然而你又说pot默认的自动选择就能正常,所以不会是【非pot自动选择所看的handbrake压的】比【pot自动选择所看的非handbrake压的】要深?总之要确认比较时的输出设置是一致
                    可以avspmod里比较


                    来自Android客户端23楼2017-06-26 00:37
                    收起回复
                      还有就是建议截取源画面对比,而不是实画面。
                      实画面是madvr渲染之后的画面,和原始画面可能有不同。
                      x264编码的视频解码后是nv12没毛病。喂给madvr渲染也没毛病。


                      IP属地:辽宁来自iPhone客户端24楼2017-06-26 00:45
                      回复
                        一、前言
                        因用小丸工具箱压缩《这个杀手不太冷》,发现色彩变深,细节丢失开始研究不同视频压缩软件的设置。
                        找了《桃花旗袍》MV做测试。
                        二、软件情况
                        1、MeGUI 色彩正常无多余旗标
                        2、MediaCoder 色彩正常无多余旗标
                        3、FFmpegYAG 色彩正常无多余旗标
                        4、小丸工具箱 色彩不正常 多出范围TV 色彩空间 bt709 两个旗标
                        5、HandBrake 色彩不正常 多出范围TV 色域、传输、色彩空间 bt709 四个旗标
                        MeGUI旗标:
                        解码:1920X1080p,格式:yuv420p,位置left
                        仅有三个信息,与原视频一致

                        HandBrake旗标:
                        解码:1920X1080p,格式:yuv420p,范围:tv,色域:bt709,传输:bt709,色彩空间:bt709,位置left
                        多出了四个信息

                        多出的四个信息与播放器的应该就是引起色彩偏差的根源。虽然在Win平台下通过播放器设置就可以解决问题,但是MAC平台的播放器设置功能弱,先天色彩信息就有问题的视频在MAC下播放就无解了。想找到能彻底解决问题的方法,而不仅仅是设置播放器,于是开始各种折腾。
                        三、解决思路
                        观察MeGUI设置界面,Misc选项卡中有关于range、colorprim、transfer、colormatrix的设置。调整此处设置会在下方代码预览处出现的相应参数。

                        不同软件此处参数定义不同,导致压缩出的视频色彩不一致。考虑在不同软件中加入如下参数解决问题
                        --range auto --colorprim undef --transferundef --colormatrix undef
                        四、测试结果
                        (一)、小丸工具箱
                        1、--range auto
                        无效,多了范围TV 色彩空间bt709 两个旗标
                        2、--range auto--colorprim undef --transfer undef --colormatrix undef
                        有效,无多余旗标,与原视频一致,无论播放器设置的色彩输出空间如何,色彩均不会发生偏差
                        3、--range pc
                        有效,多了范围PC 色彩空间bt709 两个旗标
                        (二)、HandBrake
                        1、--range auto
                        2、--range pc
                        3、--range auto--colorprim undef --transfer undef --colormatrix undef
                        均无效!!!
                        这是得有多顽固,而且HandBrake的命令写法和一般的x264GUI不一样,默认命令的格式都是:range=auto这样的写法,上述命令按照这样的写法也完全无效!
                        五、结论
                        HandBrake无论怎么添加参数(也可能是我命令写的不对,有知道该怎么写的朋友请赐教),压出的视频范围都是TV,而且通过小丸工具箱的测试可以看出,色域、传输、色彩空间为bt709都是正确的,没有问题。蓝光原盘也是按照这个标准制作的。
                        关键引起色彩偏差的是范围的锅!TV的色彩范围小于PC,导致色彩变深。
                        Win平台下不想用MeGUI写AVS,偷懒用小丸工具箱也挺方便的。参数设置完后,加入--range auto --colorprim undef --transfer undef --colormatrix undef即可。
                        这样压出的片子,与绝大多数片源一致,不会有多余的旗标信息,而且不论播放器如何设置不会有色彩变化。
                        色彩对比:
                        正常:(原片、MC、MeGUI、FFmpegYAG、小丸加入完整参数)

                        不正常:(范围为TV)

                        大图可以看到头发完全没细节。


                        IP属地:云南25楼2017-06-26 01:31
                        回复
                          Win平台下如果使用PotPlayer,通过设置就可以避免这样的问题,各种播放器功能都比较全面。保持自动设置就可以避免。之前用MAC看有些视频觉得过于浓艳,还以为是本身MacBook屏幕特性,应该是那一部分片子压制时色彩范围是TV。Mac的播放器可设定项少得可怜,遇到这类视频就无解了。
                          多谢各位的耐心解答和回复,提供了解决思路,谢谢各位!


                          IP属地:云南26楼2017-06-26 01:50
                          收起回复
                            直接在MISC里加--colorprim bt709 --transfer bt709 --colormatrix bt709就行了,但您说的不强制709就会出现什么细节丢失。。。。。这个就YY了。细节还是跟你的编码参数设置有关系。


                            28楼2017-07-03 21:42
                            收起回复
                              2025-08-26 20:33:43
                              广告
                              不感兴趣
                              开通SVIP免广告
                              还有个问题,你的源本身色彩就是不正确的。。。。。。源是601 你强制709改变不了什么。你说下的很多片源都没有BT709标识是因为压片人决得没有必要,比如4K源大多都是BT2020规范那你转换时肯定得强制规范为BT2020以避免损失。你要拿1080得原盘RE成4K大小再设成BT2020就是无用功。大多720P 1080P得RIP源根本就是五花八门,很多都还是DVD得源,那当然没709强制了。最后关于色彩你拿100个显示器只要不是效过色的,那就可能是100个色彩呈现。。。。。。


                              29楼2017-07-03 21:52
                              收起回复