Selur's Little Message Board

Full Version: Color change on encoding
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3
Hi

First, I'm using the experimental version 2024-11-05. When I encode my FFV1 video, color matrix BT 709 (which seems to be detected by Hybrid), the resulting encodings have different colors, as if it was converted from BT 601 to BT 709.

Here is the video sample : Google drive

And when I close Hybrid I have this message :
Code:
<HybridData name="defaultContainer" value="mkv"/> and <HybridData name="defaultContainer" value="mp4"/> differ. <HybridData name="mkvColorMatrix" value="BT709"/> and <HybridData name="mkvColorMatrix" value="GBR"/> differ. <HybridData name="mkvColorRange" value="Broadcast Range"/> and <HybridData name="mkvColorRange" value="Unspecified"/> differ. <HybridData name="mkvColorTransferCharacteristics" value="Unspecified"/> and <HybridData name="mkvColorTransferCharacteristics" value="Reserved"/> differ. <HybridData name="mkvColourPrimaries" value="Unspecified"/> and <HybridData name="mkvColourPrimaries" value="Reserved"/> differ. <HybridData name="mkvMaxContentLight"/> and <HybridData name="mkvMaxContentLight" value="1000"/> differ. <HybridData name="mkvMaxLuminance" value="0"/> and <HybridData name="mkvMaxLuminance" value="1000"/> differ. <HybridData name="mkvMinLuminance" value="0"/> and <HybridData name="mkvMinLuminance" value="1e-04"/> differ.



Note that i have reinstalled Hybrid from scratch.
According to media info your source has no vui info:
Code:
Video Count : 393 Count of stream of this kind : 1 Kind of stream : Video Kind of stream : Video Stream identifier : 0 StreamOrder : 0 ID : 1 ID : 1 Unique ID : 1 Format : FFV1 Format : FFV1 Commercial name : FFV1 Format version : Version 3.4 Format settings, Slice count : 4 Format settings, Slice count : 4 slices per frame Codec ID : V_MS/VFW/FOURCC / FFV1 Codec ID/Url : http://ffdshow-tryout.sourceforge.net/ Duration : 658032.000000 Duration : 10 min 58 s Duration : 10 min 58 s 32 ms Duration : 10 min 58 s Duration : 00:10:58.032 Duration : 00:10:57:09 Duration : 00:10:58.032 (00:10:57:09) Bit rate mode : VBR Bit rate mode : Variable Bit rate : 129969013 Bit rate : 130 Mb/s Width : 1920 Width : 1 920 pixels Height : 1080 Height : 1 080 pixels Pixel aspect ratio : 1.000 Display aspect ratio : 1.778 Display aspect ratio : 16:9 Frame rate mode : CFR Frame rate mode : Constant Frame rate : 23.976 Frame rate : 23.976 (24000/1001) FPS FrameRate_Num : 24000 FrameRate_Den : 1001 Frame count : 15777 Color space : YUV Chroma subsampling : 4:2:0 Chroma subsampling : 4:2:0 Bit depth : 8 Bit depth : 8 bits Scan type : Progressive Scan type : Progressive Compression mode : Lossless Compression mode : Lossless Bits/(Pixel*Frame) : 2.614 Delay : 0 Delay : 00:00:00.000 Delay : 00:00:00:00 Delay : 00:00:00.000 (00:00:00:00) Delay, origin : Container Delay, origin : Container Stream size : 10690487944 Stream size : 9.96 GiB Stream size : 10 GiB Stream size : 10.0 GiB Stream size : 9.96 GiB Stream size : 9.956 GiB Writing library : FFV1 YUV 420 8-bit Writing library : FFV1 YUV 420 8-bit Default : Yes Default : Yes Forced : No Forced : No coder_type : Range Coder MaxSlicesCount : 4 ErrorDetectionType : Per slice
So Hybrid guesses the color matrix based on the resolution.
You can set the color matrix value of the mkv container under "Config->MKV tagging->VUI->Matroska advanced video signaling".

Quote: And when I close Hybrid I have this message :
This happens if you tell Hybrid to:
a. overwrite the defaults on closing
b. report changes to the config
So, to me, it looks like you asked for this.

Cu Selur

Ps.: Depending on what filtering you applied, color changes can also happen due to filtering.
Quote:So Hybrid guesses the color matrix based on the resolution.
You can set the color matrix value of the mkv container under "Config->MKV tagging->VUI->Matroska advanced video signaling".

Regarding color matrix info on media info, yes you're right, but that's just because I cut that sample with a software that removes them. I have the issue with the full video that have all matrix infos. 

Question : Since Hybrid guesses color matrix based on resolution, why did it changed colors since the video is 1920x1080 so BT.709 to BT.709 ?


Quote:And when I close Hybrid I have this message :
This happens if you tell Hybrid to:
a. overwrite the defaults on closing
b. report changes to the config
So, to me, it looks like you asked for this.

I checked all warnings, but I don't think I checked any option that overwrite settings. I always save them manually. 

Where is that option to save settings on close just to make sure it's disabled ?

Also, why does it say GBR while the source is BT.709 ? 


Here is the media info from the raw file :

Code:
General Unique ID                  : 283324640147748610621348756177095046601 (0xD526574192ECD5480C1D8D725BCD35C9) Complete name              : G:\Davinci Resolve\099.mkv Format                      : Matroska Format version              : Version 4 File size                  : 5.03 GiB Duration                    : 6 min 28 s Overall bit rate mode      : Variable Overall bit rate            : 111 Mb/s Frame rate                  : 23.976 FPS Encoded date                : 2024-11-09 16:31:33 UTC Writing application        : Blackmagic Design DaVinci Resolve Studio Writing library            : Lavf58.45.100 ErrorDetectionType          : Per level 1 Time code of first frame    : 00:00:00:00 Time code source            : Matroska tags Video ID                          : 1 Format                      : FFV1 Format version              : Version 3.4 Format settings, Slice coun : 4 slices per frame Codec ID                    : V_MS/VFW/FOURCC / FFV1 Duration                    : 6 min 28 s Bit rate mode              : Variable Bit rate                    : 109 Mb/s Width                      : 1 920 pixels Height                      : 1 080 pixels Display aspect ratio        : 16:9 Frame rate mode            : Constant Frame rate                  : 23.976 (24000/1001) FPS Color space                : YUV Chroma subsampling          : 4:2:0 Bit depth                  : 8 bits Scan type                  : Progressive Compression mode            : Lossless Bits/(Pixel*Frame)          : 2.194 Stream size                : 4.93 GiB (98%) Writing library            : FFV1 YUV 420 8-bit Default                    : Yes Forced                      : No Color range                : Limited Color primaries            : BT.709 Transfer characteristics    : BT.709 Matrix coefficients        : BT.709 coder_type                  : Range Coder ErrorDetectionType          : Per slice

Quote:Ps.: Depending on what filtering you applied, color changes can also happen due to filtering.


I though about that so I tried without any filtering and the issue remains.
Quote:Since Hybrid guesses color matrix based on resolution, why did it changed colors since the video is 1920x1080 so BT.709 to BT.709 ?
Since you chose to ignore the sticky and provie details on how to reproduce the problem I can only guess.
If no RGB<>YUV conversion takes place color matrix does not matter.
If you do apply filtering, check the generated scripts to see whether something there seems wrong.
On playback RGB<>YUV conversion does take place so maybe the player of your choice it at fault.

Quote:Where is that option to save settings on close just to make sure it's disabled ?
"Config->Profiles->Auto save defaults"

Quote:Also, why does it say GBR while the source is BT.709 ?
Quote:<HybridData name="mkvColorMatrix" value="BT709"/>
and
<HybridData name="mkvColorMatrix" value="GBR"/>
differ.
Sounds like the value under "Config->MKV tagging->VUI->Matroska advanced video signaling" changed which do not matter if you haven't enabled the 'Matroska advanced video signaling'. No clue why the value before was GBR.

Going to bed soon, if you share proper details, I can try to find some time to look at it tomorrow after work.

Cu Selur
Quote:Since you chose to ignore the sticky and provie details on how to reproduce the problem I can only guess.
If no RGB<>YUV conversion takes place color matrix does not matter.
If you do apply filtering, check the generated scripts to see whether something there seems wrong.
On playback RGB<>YUV conversion does take place so maybe the player of your choice it at fault.

No filtering applied. Not an RGB video. Just 4.2.0 to 4.2.0. Same result in all players and also virtualdub

Quote:"Config->Profiles->Auto save defaults"

Thank you, so yes it's disabled.

Quote:Sounds like the value under "Config->MKV tagging->VUI->Matroska advanced video signaling" changed which do not matter if you haven't enabled the 'Matroska advanced video signaling'. No clue why the value before was GBR.

I never enabled "Matroska advanced video signaling" so that's strange.


And btw, the "GBR" warning message on closing only appear when loading these sources encoded with Davinci Resolve.
Maybe I'll try to upload you the full 5Gb video so that you can try, if I don't find anything in the meantime.
Here is the full video. I still can't fathom why Hybrid changes the color space

MEGA.NZ
Without you sharing what you are actually doing with the source in Hybrid (debug output ?) I don't really know how to reproduce your problem.
Simply remuxing the file with Hybrid:
Code:
F:\Hybrid\64bit>MediaInfo.exe g:\color_change_099.mkv General Unique ID : 283324640147748610621348756177095046601 (0xD526574192ECD5480C1D8D725BCD35C9) Complete name : g:\color_change_099.mkv Format : Matroska Format version : Version 4 File size : 5.03 GiB Duration : 6 min 28 s Overall bit rate mode : Variable Overall bit rate : 111 Mb/s Frame rate : 23.976 FPS Encoded date : 2024-11-09 16:31:33 UTC Writing application : Blackmagic Design DaVinci Resolve Studio Writing library : Lavf58.45.100 ErrorDetectionType : Per level 1 Time code of first frame : 00:00:00:00 Time code source : Matroska tags Video ID : 1 Format : FFV1 Format version : Version 3.4 Format settings, Slice count : 4 slices per frame Codec ID : V_MS/VFW/FOURCC / FFV1 Duration : 6 min 28 s Bit rate mode : Variable Bit rate : 109 Mb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 23.976 (24000/1001) FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Compression mode : Lossless Bits/(Pixel*Frame) : 2.194 Stream size : 4.93 GiB (98%) Writing library : FFV1 YUV 420 8-bit Default : Yes Forced : No Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709 coder_type : Range Coder ErrorDetectionType : Per slice F:\Hybrid\64bit>MediaInfo.exe g:\color_change_099_remuxed.mkv General Unique ID : 32266779443871545638779280747641669775 (0x18465B0D73571B5615C86DC92C53888F) Complete name : g:\color_change_099_remuxed.mkv Format : Matroska Format version : Version 4 File size : 5.03 GiB Duration : 6 min 28 s Overall bit rate : 111 Mb/s Frame rate : 23.976 FPS Encoded date : 2024-11-11 04:21:23 UTC Writing application : mkvmerge v88.0 ('All I Know') 64-bit Writing library : libebml v1.4.5 + libmatroska v1.7.1 Encoding Gui : Hybrid 2024.11.10.1 Video ID : 1 Format : FFV1 Codec ID : V_MS/VFW/FOURCC / FFV1 Duration : 6 min 28 s Bit rate : 111 Mb/s Width : 1 920 pixels Height : 1 080 pixels Display aspect ratio : 16:9 Frame rate mode : Constant Frame rate : 23.976 (24000/1001) FPS Color space : YUV Compression mode : Lossless Bits/(Pixel*Frame) : 2.239 Stream size : 5.03 GiB (100%) Default : Yes Forced : Yes Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709
does not change the VUI meta data of the clip.

Cu Selur
(11.11.2024, 06:16)Selur Wrote: [ -> ]Without you sharing what you are actually doing with the source in Hybrid (debug output ?) I don't really know how to reproduce your problem.

I'm not on my PC right now, but that's really simple :

- I open the video
- I set FFV1 codec with default value
- MKV container
- AddStart queue
- The output video has different colors

I checked the encoding script in the vapoursynth tab and it seems that the source is detected as matrix 709 and then set as 709 for the output well. 

I could share you the debug file this evening if you don't found something in the meantime.
I will try to reproduce this after work.
Also try whether this problem is still present in the latest dev version (available in the 'experimental' folder of my GoogleDrive, linked on the download page).

Cu Selur
Pages: 1 2 3