Skip to content
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

sRGB/sYCC YUV444 recording with NVIDIA NVENC H.264/AVC and H.265/HEVC results in wrongly tagged footage #331

Closed
Xaymar opened this issue Sep 16, 2020 · 2 comments · Fixed by #353
Labels
bug Bugs such as crashing, freezing, broken functionality, etc.

Comments

@Xaymar
Copy link
Owner

Xaymar commented Sep 16, 2020

Description

Recording footage with I444 sRGB with the NVENC H.265/HEVC (via FFmpeg) or the NVENC H.264/AVC (via FFmpeg) encoder results in footage that is incorrectly tagged as RGB in the H.265 object itself. Refer to the following matrix for what ends up broken:

NV12 I420 I444 RGB
601 OK OK OK OK
709 OK OK OK OK
sRGB OK OK BAD OK

System Information

  • Software Version: 26.0-rc2 + master
  • Operating System: Windows
  • Kernel Version: 2004
  • CPU: AMD Zen2
  • GPU: NVIDIA RTX 2080 Ti
  • RAM: 64GB
@Xaymar
Copy link
Owner Author

Xaymar commented Sep 16, 2020

Temporary workarounds:

  • Change "sRGB" to "709" until this is fixed.
  • Change "YUV444" to "RGB", which should perform identically (if not better).

@Xaymar Xaymar added issue:confirmed bug Bugs such as crashing, freezing, broken functionality, etc. labels Sep 16, 2020
@Xaymar Xaymar changed the title Recording I444 sRGB with NVENC HEVC results in footage tagged as RGB Recording I444 sRGB with NVENC H.264/AVC & H.265/HEVC results in footage tagged as RGB Sep 16, 2020
@Xaymar Xaymar changed the title Recording I444 sRGB with NVENC H.264/AVC & H.265/HEVC results in footage tagged as RGB sRGB/sYCC YUV444 recording with NVIDIA NVENC H.264/AVC and H.265/HEVC results in wrongly tagged footage Sep 16, 2020
@Xaymar
Copy link
Owner Author

Xaymar commented Oct 6, 2020

Tracked it down to differences in how 4.2 and master FFmpeg behave. I should probably not use the master FFmpeg branch when developing for FFmpeg 4.2.2

Xaymar added a commit that referenced this issue Oct 6, 2020
Improves the previous logic and makes it compatible with the new additions in 26.x, such as sRGB. This was previously broken as the focus was on existing features which could be tested without requiring a compiler to be installed.

Incorrect understanding of how sRGB works with RGB and YCC/YUV formats also caused sRGB to be treated as RGB when I444 was selected. This should also now be fixed, hopefully permanently.

Fixes #331
@Xaymar Xaymar linked a pull request Oct 6, 2020 that will close this issue
Xaymar added a commit that referenced this issue Oct 8, 2020
Improves the previous logic and makes it compatible with the new additions in 26.x, such as sRGB. This was previously broken as the focus was on existing features which could be tested without requiring a compiler to be installed.

Incorrect understanding of how sRGB works with RGB and YCC/YUV formats also caused sRGB to be treated as RGB when I444 was selected. This should also now be fixed, hopefully permanently.

Fixes #331
Xaymar added a commit that referenced this issue Oct 8, 2020
Improves the previous logic and makes it compatible with the new additions in 26.x, such as sRGB. This was previously broken as the focus was on existing features which could be tested without requiring a compiler to be installed.

Incorrect understanding of how sRGB works with RGB and YCC/YUV formats also caused sRGB to be treated as RGB when I444 was selected. This should also now be fixed, hopefully permanently.

Fixes #331
Repository owner locked as resolved and limited conversation to collaborators Apr 26, 2021
Xaymar added a commit that referenced this issue Mar 27, 2023
Improves the previous logic and makes it compatible with the new additions in 26.x, such as sRGB. This was previously broken as the focus was on existing features which could be tested without requiring a compiler to be installed.

Incorrect understanding of how sRGB works with RGB and YCC/YUV formats also caused sRGB to be treated as RGB when I444 was selected. This should also now be fixed, hopefully permanently.

Fixes #331
Xaymar added a commit that referenced this issue Mar 28, 2023
Improves the previous logic and makes it compatible with the new additions in 26.x, such as sRGB. This was previously broken as the focus was on existing features which could be tested without requiring a compiler to be installed.

Incorrect understanding of how sRGB works with RGB and YCC/YUV formats also caused sRGB to be treated as RGB when I444 was selected. This should also now be fixed, hopefully permanently.

Fixes #331
Xaymar added a commit that referenced this issue Mar 28, 2023
Improves the previous logic and makes it compatible with the new additions in 26.x, such as sRGB. This was previously broken as the focus was on existing features which could be tested without requiring a compiler to be installed.

Incorrect understanding of how sRGB works with RGB and YCC/YUV formats also caused sRGB to be treated as RGB when I444 was selected. This should also now be fixed, hopefully permanently.

Fixes #331
@Xaymar Xaymar added this to the FFmpeg Encoders (Component) milestone Dec 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Bugs such as crashing, freezing, broken functionality, etc.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant