obsproject / obs-studio

OBS Studio - Free and open source software for live streaming and screen recording
https://obsproject.com
GNU General Public License v2.0
59.53k stars 7.89k forks source link

Intel ARC QuickSync records in NV12 regardless of colour format setting #8872

Open mikooomich opened 1 year ago

mikooomich commented 1 year ago

Operating System Info

Windows 10

Other OS

No response

OBS Studio Version

29.1.0

OBS Studio Version (Other)

No response

OBS Studio Log URL

https://obsproject.com/logs/0ewIi868JASvzsMa

OBS Studio Crash Log URL

No response

Expected Behavior

In "standard" type recording, with QSV HEVC, recording with I444 (or anything that is NOT NV12) will record in the respective colour format.

Current Behavior

In "standard" type recording, recording with QSV HEVC will ALWAYS record in NV12.

Steps to Reproduce

  1. Launch OBS
  2. Use advanced output mode in RECORDING, select QuickSync HEVC as video encoder, Set Colour format to I444 (or anything else that is supported and not NV12)
  3. Record or use save a replay buffer
  4. Use MediaInfo (or whatever metadata reader) to confirm colour format

Anything else we should know?

ARC A770 does indeed have support for recording HEVC 4:4:4. When using "Custom Output (FFMpeg)", the selector for colour format works as intended (after upgrading FFMpeg binaries (from master branch), as otherwise QSV will not appear in custom output).

Attached are my settings: image image2

RytoEX commented 1 year ago

Looking at the code, this appears to be intentional. The encoder sets NV12 for anything that isn't a 10-bit color format. If the color format is set to anything other than NV12 for H.264 or HEVC, it is set to NV12.

https://github.com/obsproject/obs-studio/blob/34e3d641582dca3e86e199343905756a1cbc0b64/plugins/obs-qsv11/QSV_Encoder_Internal.cpp#L226

https://github.com/obsproject/obs-studio/blob/34e3d641582dca3e86e199343905756a1cbc0b64/plugins/obs-qsv11/obs-qsv11.c#L1065-L1068

https://github.com/obsproject/obs-studio/blob/34e3d641582dca3e86e199343905756a1cbc0b64/plugins/obs-qsv11/obs-qsv11.c#L1105-L1112