Question / Help Hardware Encoder Options?

LeifESports

New Member
Good morning,

I am new to the world of streaming and am trying to work things out.

Computer setup: iMac Bootcamp Windows 10, quad-core i7-6700 4GHz, 16gb ram

Inputs: PS4 through Elgato HD60S (Hence the Bootcamp for Windows instead of using the mac version of OBS), Logitech C920 webcam, Focusrite Scarlette 2i2 2nd Gen audio interface with s Rode NT1A mic, stream overlays from StreamElements.

Background: I am an audio engineer who has done nearly nothing with video before.

What works: I can get my stream/recording to function smooth for around 15 minutes on either 1080p or 720p

What doesn't work: After about 15 minutes the CPU overloads and cannot keep up with the encoding. I thought I had a relatively powerful machine, but I guess I was thinking in terms of audio processing and not the strain video processing takes. CPU runs at about 85% and <20fps upon opening OBS.

Suggestions: I'd like to know what hardware encoder options are available to me that will work with OBS to take the strain off of my CPU, and I'd like options in different price-points, and keeping in mind I'm working with an iMac, so I have Thunderbolt/USB3 ports available.


TL;DR - I need hardware encoder options for an iMac with thunderbolt/USB3 connections running Bootcamp Windows 10 and OBS to offload encoding from the CPU.

Thank you so much for helping out a complete noob!

-Leif

08:05:26.899: CPU Name: Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
08:05:26.899: CPU Speed: 4008MHz
08:05:26.899: Physical Cores: 4, Logical Cores: 8
08:05:26.899: Physical Memory: 16283MB Total, 12291MB Free
08:05:26.899: Windows Version: 10.0 Build 17134 (revision: 254; 64-bit)
08:05:26.899: Running as administrator: false
08:05:26.900: Aero is Enabled (Aero is always on for windows 8 and above)
08:05:26.900: Windows 10 Gaming Features:
08:05:26.900: Game DVR: On
08:05:26.900: Sec. Software Status:
08:05:26.901: Windows Defender Antivirus: enabled (AV)
08:05:26.902: Windows Firewall: enabled (FW)
08:05:26.903: Windows Defender Antivirus: enabled (ASW)
08:05:26.903: Browser Hardware Acceleration: true
08:05:26.903: Portable mode: false
08:05:26.978: OBS 22.0.2 (64-bit, windows)
08:05:26.978: ---------------------------------
08:05:26.979: ---------------------------------
08:05:26.979: audio settings reset:
08:05:26.979: samples per sec: 44100
08:05:26.979: speakers: 2
08:05:26.980: ---------------------------------
08:05:26.980: Initializing D3D11...
08:05:26.980: Available Video Adapters:
08:05:26.982: Loading up D3D11 on adapter Microsoft Basic Render Driver (0)
08:05:26.983: D3D11 loaded successfully, feature level used: 45056
08:05:27.525: ---------------------------------
08:05:27.525: video settings reset:
08:05:27.525: base resolution: 1280x720
08:05:27.525: output resolution: 1280x720
08:05:27.525: downscale filter: Bilinear
08:05:27.525: fps: 30/1
08:05:27.525: format: NV12
08:05:27.525: YUV mode: 601/Partial
08:05:27.525: Audio monitoring device:
08:05:27.525: name: Default
08:05:27.525: id: default
08:05:27.525: ---------------------------------
08:05:27.526: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/chrome_elf.dll' not found, loading of module failed
08:05:27.527: [CoreAudio encoder]: CoreAudio AAC encoder not installed on the system or couldn't be loaded
08:05:27.616: [AMF] The AMF Runtime is very old and unsupported, consider updating your drivers.
08:05:27.616: [AMF] Version 2.4.2 loaded (Compiled: 1.4.7.0, Runtime: 1.4.2.0, Library: 1;4;2;0;17.10.3101.1006;201707201435;CL#1437078).
08:05:27.618: [AMF] [H264/AVC] Not supported by any GPU, disabling...
08:05:27.619: [AMF] [H265/HEVC] Not supported by any GPU, disabling...
08:05:27.639: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libcef.dll' not found, loading of module failed
08:05:27.639: LoadLibrary failed for '../../obs-plugins/64bit/libEGL.dll': The specified procedure could not be found.
08:05:27.639: (127)
08:05:27.639: Module '../../obs-plugins/64bit/libEGL.dll' not loaded
08:05:27.641: Required module function 'obs_module_load' in module '../../obs-plugins/64bit/libGLESv2.dll' not found, loading of module failed
08:05:27.643: [obs-browser]: Version 2.1.5
08:05:27.643: [obs-browser]: Blacklisted device detected, disabling browser source hardware acceleration.
08:05:27.647: LoadLibrary failed for 'nvEncodeAPI64.dll': The specified module could not be found.
08:05:27.647: (126)
08:05:27.675: Couldn't find VLC installation, VLC video source disabled
08:05:27.679: No blackmagic support
08:05:27.682: ---------------------------------
08:05:27.682: Loaded Modules:
08:05:27.682: win-wasapi.dll
08:05:27.682: win-mf.dll
08:05:27.682: win-dshow.dll
08:05:27.682: win-decklink.dll
08:05:27.682: win-capture.dll
08:05:27.682: vlc-video.dll
08:05:27.682: text-freetype2.dll
08:05:27.682: rtmp-services.dll
08:05:27.682: obs-x264.dll
08:05:27.682: obs-vst.dll
08:05:27.682: obs-transitions.dll
08:05:27.682: obs-text.dll
08:05:27.682: obs-qsv11.dll
08:05:27.682: obs-outputs.dll
08:05:27.682: obs-filters.dll
08:05:27.682: obs-ffmpeg.dll
08:05:27.682: obs-browser.dll
08:05:27.682: image-source.dll
08:05:27.682: frontend-tools.dll
08:05:27.682: enc-amf.dll
08:05:27.682: coreaudio-encoder.dll
08:05:27.682: ---------------------------------
08:05:27.682: ==== Startup complete ===============================================
08:05:27.686: All scene data cleared
08:05:27.686: ------------------------------------------------
08:05:27.769: WASAPI: Device 'Speakers (Cirrus Logic CS4206B (AB 130))' initialized
08:05:27.839: WASAPI: Device 'Microphone (HD Pro Webcam C920)' initialized
08:05:27.853: WASAPI: Device 'Microphone (HD Pro Webcam C920)' initialized
08:05:27.893: Switched to scene 'Gameplay'
08:05:27.893: ------------------------------------------------
08:05:27.894: Loaded scenes:
08:05:27.894: - scene 'Pre-Stream':
08:05:27.894: - source: 'Pre-Stream Overlay' (browser_source)
08:05:27.894: - scene 'Chat':
08:05:27.894: - source: 'Logitech Webcam' (dshow_input)
08:05:27.894: - source: 'Chat Overlay' (browser_source)
08:05:27.894: - source: 'Scarlett' (wasapi_input_capture)
08:05:27.894: - monitoring: monitor and output
08:05:27.894: - filter: 'Noise Gate' (noise_gate_filter)
08:05:27.894: - filter: 'Compressor' (compressor_filter)
08:05:27.894: - scene 'Gameplay':
08:05:27.895: - source: 'Elgato' (dshow_input)
08:05:27.895: - monitoring: monitor and output
08:05:27.895: - source: 'Logitech Webcam' (dshow_input)
08:05:27.895: - source: 'Gameplay Overlay' (browser_source)
08:05:27.896: - source: 'Scarlett' (wasapi_input_capture)
08:05:27.896: - monitoring: monitor and output
08:05:27.896: - filter: 'Noise Gate' (noise_gate_filter)
08:05:27.896: - filter: 'Compressor' (compressor_filter)
08:05:27.896: - scene 'Break':
08:05:27.896: - source: 'Break Overlay' (browser_source)
08:05:27.896: - scene 'Post-Stream':
08:05:27.896: - source: 'Post-Stream Overlay' (browser_source)
08:05:27.896: ------------------------------------------------
08:05:27.902: adding 46 milliseconds of audio buffering, total audio buffering is now 46 milliseconds
08:05:28.001: CalculateFileHash: Failed to open file 'C:\Users\Joseph Shaw\AppData\Roaming\obs-studio\updates\whatsnew.json':
08:05:28.565: ---------------------------------
08:05:28.565: [DShow Device: 'Elgato'] settings updated:
08:05:28.565: video device: Game Capture HD60 S (Video) (#01)
08:05:28.565: video path: \\?\usb#vid_0fd9&pid_005e#0413896c74#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{6f814be9-9af6-43cf-9249-c0340100021f}
08:05:28.565: resolution: 1920x1080
08:05:28.565: fps: 29.97 (interval: 333667)
08:05:28.565: format: YV12
08:05:28.565: ---------------------------------
08:05:28.566: [DShow Device: 'Logitech Webcam'] settings updated:
08:05:28.566: video device: Logitech HD Pro Webcam C920
08:05:28.566: video path: \\?\usb#vid_046d&pid_082d&mi_00#7&2a289065&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{bbefb6c7-2fc4-4139-bb8b-a58bba724083}
08:05:28.566: resolution: 1920x1080
08:05:28.566: fps: 30.00 (interval: 333333)
08:05:28.566: format: I420
08:05:28.569: using video device audio: no
08:05:28.569: separate audio filter
08:05:28.569: sample rate: 48000
08:05:28.569: channels: 2
08:05:28.569: audio type: Capture
08:06:21.361: adding 23 milliseconds of audio buffering, total audio buffering is now 69 milliseconds
 

koala

Active Member
08:05:26.980: Initializing D3D11...
08:05:26.980: Available Video Adapters:
08:05:26.982: Loading up D3D11 on adapter Microsoft Basic Render Driver (0)
08:05:26.983: D3D11 loaded successfully, feature level used: 45056
Were you connected through rdp to your machine while you created that logfile?
If yes: log on locally. Otherwise OBS will only see the emulated GPU from the rdp session.
If no: install the Intel iGPU video drivers. You seem to have no GPU drivers installed.
The basic renderer is a software emulation of a GPU and takes away much CPU performance if used in connection with OBS. OBS needs accelerated GPU access for video compositing, even if you are not recording some 3D app.
If you installed the iGPU drivers correctly, Quicksync (QSV) will appear as hardware encoder in addition to x264, and if you use Quicksync for recording, CPU usage of OBS will drop to about 5-8%.
 

LeifESports

New Member
Sounds like an thermal Issue. Can you monitor your CPU temperature while trying to record, please?
I'm not positive I have a way to test temp (other than simply saying yes, it runs hotter while OBS is running). It is audibly running harder as well.
 

LeifESports

New Member
Were you connected through rdp to your machine while you created that logfile?
If yes: log on locally. Otherwise OBS will only see the emulated GPU from the rdp session.
If no: install the Intel iGPU video drivers. You seem to have no GPU drivers installed.
The basic renderer is a software emulation of a GPU and takes away much CPU performance if used in connection with OBS. OBS needs accelerated GPU access for video compositing, even if you are not recording some 3D app.
If you installed the iGPU drivers correctly, Quicksync (QSV) will appear as hardware encoder in addition to x264, and if you use Quicksync for recording, CPU usage of OBS will drop to about 5-8%.

I do not know what rdp is, so I am assuming I was not connected via it? This is a recent (last week) install of Windows 10 via bootcamp. I have come across other drivers that were not installed in the process, so it is likely there are ones I have missed as well. I will attempt to install that and report back. Thank you!
 

LeifESports

New Member
Prior to making any other changes I decreased the resolution of some peripherals (specifically the webcam, and the capture card) rather than just scaling them and it reduced the CPU usage, but it is still running at about 40% at 720p 20fps. Here is the log for that

Posting this log before installing the intel drivers to keep a record of what changes resulted in what outcomes.
 

Attachments

  • 720p obs log.txt
    18 KB · Views: 44

LeifESports

New Member
Ok, I ran dxdiag to find out what gpu I have, it came back with the error "There is a problem with AMD RADEON R9 M395 device. For more information, search for 'graphics device driver error code 39' " as expected. So I found the AMD Radeon R9 M395 Drivers, downloaded, and went to install, the installer gave me the error "Error 173 - AMD Installer cannot continue since AMD graphics hardware was not found."

Dowloaded bootcamp drivers from Apple and it also errored out for the GPU. running a SFC/SCANNOW to see if it's of any help. any ideas?
 

LeifESports

New Member
Update: Mac does some weird stuff with their GPU when it comes to switching, and Boot Camp isn't able to give Windows access to it (from what I can find, there are some options for forcing the switch, but they're beyond my comfort level).

Back to my original question with a follow up, Are there hardware encoder options that I can use via thunderbolt/usb 3? and Will they make a difference considering the GPU issue?

Thanks again everyone!
 

koala

Active Member
The only hardware encoders OBS is able to use are the encoders the GPU provides, as long as the corresponding drivers are installed:
- Quicksync on the onboard GPU of most Intel CPUs (your i7-6700k is one of them)
- Nvenc on Nvidia GPUs starting with Kepler architecture (GTX 6xx)
- AMD VCE on AMD GPUs (don't know AMD hardware well, probably all that were manufactured in the past ~5 years)

External devices are not supported. At least not with the Windows version.

If you ask me, you chose the wrong hardware. Usually, it's all set up and configured automatically if you buy a reasonably current Windows desktop PC. Running Windows on mac hardware seems some kind of makeshift. There is a mac version of OBS; doesn't it support the hardware encoder on the AMD GPU or the Intel iGPU of your mac running under macos?
 
Last edited:

Narcogen

Active Member
Assuming you want to keep trying to make this work rather than change hardware, you might take a look at what is written here:

https://egpu.io/bootcamp-setup-guide-tb3-macbook-pro/

But as koala posted above, even if you did that, it seems OBS would not use it.

I've gotten the AMD encoder to work when running Windows 10 on Apple hardware, but only by not using Boot Camp and using an EFI installer to install the OS directly.
 

LeifESports

New Member
The only hardware encoders OBS is able to use are the encoders the GPU provides, as long as the corresponding drivers are installed:
- Quicksync on the onboard GPU of most Intel CPUs (your i7-6700k is one of them)
- Nvenc on Nvidia GPUs starting with Kepler architecture (GTX 6xx)
- AMD VCE on AMD GPUs (don't know AMD hardware well, probably all that were manufactured in the past ~5 years)

External devices are not supported. At least not with the Windows version.

If you ask me, you chose the wrong hardware. Usually, it's all set up and configured automatically if you buy a reasonably current Windows desktop PC. Running Windows on mac hardware seems some kind of makeshift. There is a mac version of OBS; doesn't it support the hardware encoder on the AMD GPU or the Intel iGPU of your mac running under macos?

Thanks for the info. My capture card is the Elgato HD 60S which isn't compatible with the Mac version of OBS. I had everything else available to me (Windows 10, Boot Camp, etc) So I figured I'd attempt OBS with it.

Cheapest fix seems just to be a different capture card that plays well with OBS Mac (I'll search the forum for options). The Elgato Game Capture software that comes with the HD 60 S is quite choppy and not nearly as feature-filled (option to use plugins) as OBS is, which is why I avoided using that as well.

Like I said, I'm just starting to try all this out. Thanks for the help!
 

Narcogen

Active Member
Magewell, BlackMagic, AJA. The Elgato Camlink supposedly does not have this same problem, but I have not verified personally and I have been avoiding Elgato since these issues became apparent regarding MacOS and OBS support.
 
Top