How do I use the "New" Quicksync Encoder on OBS Studio, and is it the source of my performance issues?

were491

Member
I'm currently attempting to record my screen on a slow laptop with Intel Quicksync. Since my laptop fan is loud, I'd like recording to use as little resources as possible to keep the noise down.

I've tested and compared the screen recorder built into Intel Graphics Command Center and the screen recorder built into OBS Studio, and I've found the screen recorder in Intel Graphics Command Center uses less resources (and different parts of the GPU) than the one in OBS Studio. I'll show my comparison and anything I've noted, but my main question is this: How can I get OBS Studio to consume less resources like Intel Graphics Command Center, and is this the result of using the "Old" Quicksync encoder (I suspect it is)?

Intel Graphics Command Center

I've attached my settings in a picture file, and this is the output I get:

OBS Studio
The settings should be shown in the log file (I've tried to match them to the settings Intel Graphics Command Center uses using a fresh profile/scene collection and using the settings from Intel's interface as well as the MediaInfo information), and this is the output:

I've noticed some things about the outputs.
Firstly, in the OBS log file, it states that "22:53:41.858: >>> nv12 tex not active, fall back to old qsv encoder". How would I enable nv12 textures in OBS? I haven't found any options for it and the color format in the Advanced settings is NV12 (though I doubt this is to do with the textures internally since it's the output color format).

Secondly, the Intel Graphics Command Center screen recording uses the "Video Processing" part of the GPU while OBS Studio does not, which I suspect allows it to achieve drastically lower GPU usage as compared to the OBS Studio recording.

Thirdly, OBS v26 introduced the "New" Quicksync encoder, and I suspect this allows OBS should be able to use the Video Processing part of the GPU as well. However, the new quicksync encoder isn't being turned on for some reason which is why I believe it's why it is making my recording slower in OBS compared to Intel's own tool.

So, to reiterate my question from the title and earlier in the post: Is the "New" Encoder the source of the performance difference between OBS Studio and Intel Graphics Command Center recording, and if so, how do I get OBS to use the new encoder? If not, what could the difference possibly be?

Extra Notes:
Someone else addressed a similar issue in the OBS Github here https://github.com/obsproject/obs-studio/issues/4177, which was closed for being a tech support question. So, I am making a post here to get help.

Also, right before posting this, I decided to try out the screen recording from Microsoft Xbox Game DVR, and it has similar properties to Intel Graphics Command Center, which means consuming significantly less resources and using the Video Processing part of the GPU, whatever that is.
 

Attachments

  • Intel_Settings.png
    Intel_Settings.png
    155 KB · Views: 414
  • OBS_Log_2021-07-20 22-53-28.txt
    13.1 KB · Views: 146
Last edited:

were491

Member
I realized I forgot to run OBS in Administrator Mode, but the result is the same whether it is on or off in this case (The new QSV encoder is not used and the resource usage is the same).
 

HeitorMR

New Member
If you don't have NV12 texture support, OBS will use the old QSV.

I'm mad cuz old QSV uses 50% gpu(47% idle) and new QSV uses 10% gpu (8% idle).

obs-qsv11.dll
1656193752140.png


If you can, try to recompile the OBS Studio project removing the lines with "if".
 

HeitorMR

New Member
i have a temporary solution.

Use Custom FFMPEG Output and put the settings:
Video Encoder: h264_qsv (libx264)
Video Encoder Settings: level=51 profile=[main,high,baseline] preset=[veryfast,faster,fast,medium,etc] low_power=on rdo=1

low_power=on will reduce gpu usage and power utilization.

Other settings if you want to make a better version of my settings: https://ffmpeg.org/ffmpeg-codecs.html#QSV-Encoders
 

HeitorMR

New Member
i have a temporary solution.

Use Custom FFMPEG Output and put the settings:
Video Encoder: h264_qsv (libx264)
Video Encoder Settings: level=51 profile=[main,high,baseline] preset=[veryfast,faster,fast,medium,etc] low_power=on rdo=1

low_power=on will reduce gpu usage and power utilization.

Other settings if you want to make a better version of my settings: https://ffmpeg.org/ffmpeg-codecs.html#QSV-Encoders
You need to upgrade obs studio ffmpeg too, just search on youtube or google and you will find it.

Here: https://github.com/Xaymar/obs-StreamFX/wiki/Guide-OBS-Studio-FFmpeg-Upgrade
 

HeitorMR

New Member
I'm currently attempting to record my screen on a slow laptop with Intel Quicksync. Since my laptop fan is loud, I'd like recording to use as little resources as possible to keep the noise down.

I've tested and compared the screen recorder built into Intel Graphics Command Center and the screen recorder built into OBS Studio, and I've found the screen recorder in Intel Graphics Command Center uses less resources (and different parts of the GPU) than the one in OBS Studio. I'll show my comparison and anything I've noted, but my main question is this: How can I get OBS Studio to consume less resources like Intel Graphics Command Center, and is this the result of using the "Old" Quicksync encoder (I suspect it is)?

Intel Graphics Command Center

I've attached my settings in a picture file, and this is the output I get:

OBS Studio
The settings should be shown in the log file (I've tried to match them to the settings Intel Graphics Command Center uses using a fresh profile/scene collection and using the settings from Intel's interface as well as the MediaInfo information), and this is the output:

I've noticed some things about the outputs.
Firstly, in the OBS log file, it states that "22:53:41.858: >>> nv12 tex not active, fall back to old qsv encoder". How would I enable nv12 textures in OBS? I haven't found any options for it and the color format in the Advanced settings is NV12 (though I doubt this is to do with the textures internally since it's the output color format).

Secondly, the Intel Graphics Command Center screen recording uses the "Video Processing" part of the GPU while OBS Studio does not, which I suspect allows it to achieve drastically lower GPU usage as compared to the OBS Studio recording.

Thirdly, OBS v26 introduced the "New" Quicksync encoder, and I suspect this allows OBS should be able to use the Video Processing part of the GPU as well. However, the new quicksync encoder isn't being turned on for some reason which is why I believe it's why it is making my recording slower in OBS compared to Intel's own tool.

So, to reiterate my question from the title and earlier in the post: Is the "New" Encoder the source of the performance difference between OBS Studio and Intel Graphics Command Center recording, and if so, how do I get OBS to use the new encoder? If not, what could the difference possibly be?

Extra Notes:
Someone else addressed a similar issue in the OBS Github here https://github.com/obsproject/obs-studio/issues/4177, which was closed for being a tech support question. So, I am making a post here to get help.

Also, right before posting this, I decided to try out the screen recording from Microsoft Xbox Game DVR, and it has similar properties to Intel Graphics Command Center, which means consuming significantly less resources and using the Video Processing part of the GPU, whatever that is.
I think that is not possible to use Video Processing without NV12 Texture Support in OBS.
 

ReLocateing

New Member
AFAIK , OBS already uses the latest FFMPEG , the problem is you need to set the IGPU to render OBS , go to Windows Search -> Graphics Settings and add OBS64.exe there , then click on it and go to Options and select Intel Graphics , it will force the IGPU to render OBS and the new Quicksync will be used , altho if the CPU its a Haswell like mine then you should just stick with the old quicksync since you won't have enough power to render OBS and Encode so it will be slower then the old quicksync

Maybe if you force igpu only on the encoders in OBS you get better results but i don't have the time right now to test it so this is the quick fix i can provide :)

Cheers !
 
Last edited:

HeitorMR

New Member
need to set the IGPU to render OBS
AFAIK , OBS already uses the latest FFMPEG , the problem is you need to set the IGPU to render OBS , go to Windows Search -> Graphics Settings and add OBS64.exe there , then click on it and go to Options and select Intel Graphics , it will force the IGPU to render OBS and the new Quicksync will be used , altho if the CPU its a Haswell like mine then you should just stick with the old quicksync since you won't have enough power to render OBS and Encode so it will be slower then the old quicksync

Maybe if you force igpu only on the encoders in OBS you get better results but i don't have the time right now to test it so this is the quick fix i can provide :)

Cheers !
Actually, my cpu is Kaby-Lake
 

HeitorMR

New Member
AFAIK , OBS already uses the latest FFMPEG , the problem is you need to set the IGPU to render OBS , go to Windows Search -> Graphics Settings and add OBS64.exe there , then click on it and go to Options and select Intel Graphics , it will force the IGPU to render OBS and the new Quicksync will be used , altho if the CPU its a Haswell like mine then you should just stick with the old quicksync since you won't have enough power to render OBS and Encode so it will be slower then the old quicksync

Maybe if you force igpu only on the encoders in OBS you get better results but i don't have the time right now to test it so this is the quick fix i can provide :)

Cheers !
It still doesn't work.
 

EBK21

New Member
In current version,there will be no h264_qsv encoder selectable in encoder droplist if you don't force run obs under iGPU.
 
Top