New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Color shift after interpolation #123
Comments
This is probably a duplicate of #52 |
Don't know what exactly causes this but both Flowframes and VEAI suffer from this same issue. AFAIK the only real solution here is to transcode your inputs to YUV444/RGB output colorspace beforehand. (I personally use ProRes 4444 via StaxRip.) Unsure if this can be automated @n00mkrad (a seamless real-time conversion of sorts), but it's worth looking into IMO. Comparisons - click on "Comparison 1/3" for more examples. |
-.- |
Trust me, I've tried everything under the sun including the flags from that link, but the issue still persisted for me unfortunately. ...It finally dawned on me that these AI engines may have some sort of distaste for chroma subsampling when recalling that the rife vapoursynth plugin requires you to adjust the colorspace to RGB: I gave a whirl, and to my complete disbelief - It actually worked! Example 1: Original video (YUV420, BT.709) converted to ProRes 4444 prior to feeding it to RIFE, with no added arguments. Example 2: Original video + the following flags: "-vf scale=out_color_matrix=bt709 -colorspace bt709 -color_primaries bt709 -color_trc bt709". Example 3: Same as 2 but adding your: "-bsf:v h264_metadata=matrix_coefficients=6" flag instead. |
"AI engines" work internally with RGB for simplicity reasons (and VS makes no effort to hide that), and that's ironically the deal here. They don't do anything with chroma themselves, it's not them to be wrong (and RGB is just a pixel format, not a colorspace). And just about everything on this planet uses ffmpeg.. so it stands to reason that you may see similar glitches (even though developers may eventually workarounds the limitations, or be more or less lucky).
I'm pretty damn sure RIFE itself doesn't support post-production codecs (or video codecs, in general tbh).
The original video is untagged BT.709 then, if this fixes it (otherwise converting tagged BT.709 to BT.709 again would make no difference). This will then properly inform the usual video -> png -> video pipeline into its implicit conversion to BT.601 (colorspace information that is then lost).
No shit it's bad if you are forcing BT.601 to what you just converted to bt709? Drop that part, or use `1' at least. |
Ah of course - VEAI also rely on FFmpeg (backend filters + encoding), so I guess all similar apps suffer from this issue..
It's redundant I know - The examples I provided are just a way of proving that these aren't colormatrix/metadata fuck-ups by Flowframes, |
https://trac.ffmpeg.org/ticket/9167
I just explained to you how all of this works.
Jesus christ, flowframes color handling only triggers when the source has all the information provided. So now I understand what you meant in example 2-3: you didn't reprocess the source video with ffmpeg before using it as an input, those are simply the options inside flowframes... And specifying the matrix_coefficients didn't help... |
after I interpolate my video
the reds, magentas, and blues get shifted to a darker value while the yellows, greens, and cyans gets shifted to a whiter value.
Greens, cyans, magentas, also get shifted ~ -3 degrees
The text was updated successfully, but these errors were encountered: