I have a server with two separate Nvidia GTX 750 Ti cards as well as onboard Intel graphics. Originally MCEBuddy was using the onboard CPU and graphics to do everything. I set the checkbox to use Hardware Encoding and chose NVidia from the dropdown. After some looking in the forums, I found how to use the NVidia GPU, by changing the order of the encoding choices to have “ffmpeg” be first. So now it’s doing the Encoding with the NVidia GPU, but only for two conversions. I set MCEBuddy to do 4 simultaneous conversions, thinking it would start using the both NVidia GPU’s as necessary. But what it seems to be doing is doing two conversions on the one card, and then the other two conversions are running off of the onboard hardware.
Is MCEBuddy capable of using multiple NVidia cards, and if so what do I need to do or where do I look? I have looked in the logfiles, and it sees both cards and says they both have the same capabilities. Is there something more that I need to do for it to use both of them?
With the latest 2.5.1 or newer build you don’t need to make any modifications to any profiles as both handbrake and ffmpeg support nvidia, Intel and AMD hardware encoders. MCEBuddy will take care of automatically selecting the hardware and tool. You just select your option in the GUI and MCEBuddy should do the rest.
If you attach your logs we can see what’s going on.
Thanks for the reply and it’s good to hear the newest version makes it even easier. Sorry I should have attached logs when I posted. Here’s two log files,
the first one: “NASA’s Unexplained Files (2014) - 2019-09-23 07 00 00 - Episode 18.ts-Convert to MP4-2019-12-10T07-06-25.0474815-06-00” was using the NVidia GPU and was successful.
The second one: “NASA’s Unexplained Files (2014) - 2019-12-10 06 00 00 - Secrets of the Alien Signals.ts-Convert to MP4-2019-12-10T06-00-00.1406690-06-00” was using the Intel processor.
Since there were four conversions running (2-using the NVidia GPU and 2-using the Intel) I stopped the processing when the NVidia jobs were complete, so the Intel ones didn’t finish. I ran a compare in Notepad++ between the two files, and I see these messages multiple times in the Intel one:
ERROR> 2019-12-10T06:13:08 --> StartAppWithAdminPrivilegesFromNonUISession WTSQueryUserToken failed (No logged on users) with error 1008. An attempt was made to reference a token that does not exist.
WARNING> 2019-12-10T06:13:08 MCEBuddy.AppWrapper.FFmpeg --> Unable to create UI Session process with Admin Privileges from NonUI Session. Is any user logged on?
WARNING> 2019-12-10T06:13:08 MCEBuddy.AppWrapper.FFmpeg --> Retrying process creation as a NonUI Session process with Admin privileges
WARNING> 2019-12-10T06:13:08 MCEBuddy.AppWrapper.FFmpeg --> Some functions like hardware encoding may not work in this mode
Not sure what that’s about. Thanks for your help! If you can figure out why it’s not using both NVidia cards or even why not more than two conversions on the one it is using, I will be very grateful.
Your Nvidia graphics driver is failing. MCEBuddy first tries ffmpeg and it your driver fails:
2019-12-10T06:16:03 MCEBuddy.AppWrapper.FFmpeg --> [h264_nvenc @ 000002241ac32000] OpenEncodeSessionEx failed: out of memory (10)
2019-12-10T06:16:03 MCEBuddy.AppWrapper.FFmpeg --> Last message repeated 1 times
2019-12-10T06:16:03 MCEBuddy.AppWrapper.FFmpeg --> [h264_nvenc @ 000002241ac32000] No NVENC capable devices found
Then it tries handbrake and the Nvidia graphics driver fails again:
MCEBuddy.AppWrapper.Handbrake --> [h264_nvenc @ 0000000005d708c0] OpenEncodeSessionEx failed: out of memory (10)
2019-12-10T06:16:15 MCEBuddy.AppWrapper.Handbrake --> [h264_nvenc @ 0000000005d708c0] OpenEncodeSessionEx failed: out of memory (10)
2019-12-10T06:16:15 MCEBuddy.AppWrapper.Handbrake --> [h264_nvenc @ 0000000005d708c0] No NVENC capable devices found
2019-12-10T06:16:15 MCEBuddy.AppWrapper.Handbrake --> [06:16:15] encavcodecInit: avcodec_open failed
It doesn’t use your intel hardware because you selected only Nvidia in your conversion task settings (if you had selected Any it would have fallen back to Intel QuickSync), instead it’s falls back to software encoding.
99.999% of hardware encoder issues are because of problematic graphics drivers.
I see what you’re saying, but it works flawlessly on the Nvidia GPU with 2 conversion jobs at a time, it only fails when there are more than two conversions and I set concurrent conversions to 4. If I leave it at 2, it runs those two on the one NVidia GPU fine. I’m using the most current NVidia driver. So I guess I’m wondering what I need to do? .
You can try a different graphics driver version. Maybe it’s running out of memory or has a limitation on the number of simultaneous conversions the hardware can handle. I know some hardware limit conversions to to 2 or 4 streams at a time.
You could also set the option to Any and it will try to use your intel hardware if your Nvidia fails.
You could just limit it to 2 simultaneous conversions.
NVidia limits their graphics drivers to only 2 concurrent transcoding streams at a time for most non quadro graphic cards, it’s an artificial limit put by NVidia in their drivers which is why you 3rd simultaneous conversion fails when the driver tries to start it. The solution is to contact Nvidia or don’t limit your conversions to only Nvidia (set it to Any).
Some Quadro cards have unlimited concurrent transcodes (unrestricted). Here’s the table matrix showing the limits for different cards:
Here’s a discussion thread about it:
Here are two other links which discuss how to patch the limits:
Wow! Thanks for all the research on that, some of which I should have done myself. But that brings me back to the intent of my original question. From an MCEBuddy standpoint, is there a way to use the second NVidia card, I have two identical ones in the system that MCEBuddy sees and says are both capable.