Question / Help 750ti or 1050/1050ti for Dedicated OBS encoding with NVENC

Rendering is not a heavy duty task for the GPU, but if your game is using all of the GPU's power, then there will be nothing left for
OBS. Unfortunately there is currently no way to prioritize GPU tasks.
If you encode with NVENC, there is no real stress for encoding, but as many people pay their games without any FPS limit (at least the many threads in here are showing this), they let their GPU run into max load and therefore cripple OBS rendering performance.
And that's why a second card makes sense, because OBS is being rendered and encoding on a second card.

I'm not saying OBS is absolutely not using the CPU or even the gaming card in some cases, but A LOT of work was removed from the CPU and the main graphics card. All those Streamlabs, StreamElements Loots and whatnot are being processed by the CPU as far as I can tell, but when I'm live stresming, my regular usage spike to 16, 20% when I'm encoding with the CPU, so OBS tells me. And it's normally 2, 3% while OBS is just being rendered doing nothing.

And I tested capturing with the second card while I was live streaming. The PC handled all that very well.
 

BK-Morpheus

Active Member
Still makes no sense, as OBS needs to access the frame buffer of your Gaming GPU and then transfer it to the second GPU for rendering/encoding.
Please try it and use a mainboard, that cuts PCIe Lanes in half, as soon as a second GPU is added to the system :-)
 
Still makes no sense, as OBS needs to access the frame buffer of your Gaming GPU and then transfer it to the second GPU for rendering/encoding.
Please try it and use a mainboard, that cuts PCIe Lanes in half, as soon as a second GPU is added to the system :-)

Here are two GPU-Z screenshots. I can't talk about some random mainboard, because I use mine :)

GTX 1080 at 16x
c4e.png


RX 460 at 4x
3sb.png


UPDATE

My board manual:
PCIE1 (PCIe 3.0 x16 slot) is used for PCI Express x16 lane width graphics cards.
PCIE2 (PCIe 2.0 x1 slot) is used for PCI Express x1 lane width cards.
PCIE3 (PCIe 3.0 x16 slot) is used for PCI Express x8 lane width graphics cards.
PCIE4 (PCIe 2.0 x1 slot) is used for PCI Express x1 lane width cards.
PCIE5 (PCIe 2.0 x16 slot) is used for PCI Express x4 lane width graphics cards.
I'm using PCIE1 for the 1080 and PCIE5 for the RX 460.
 
Last edited:

RYAM77

Member
Is there a possible way to make the first PCI-E lane run at x16 speeds while the second runs at x4 like Marcio Matielo had it? I'm on an ASUS Z170 motherboard and I'm wondering how I can do that, because I was on a dual setup with a GTX 1060 3GB and a GTX 950 before I gave up and removed the GTX 950 since both were running at x8 speeds.
 
Is there a possible way to make the first PCI-E lane run at x16 speeds while the second runs at x4 like Marcio Matielo had it? I'm on an ASUS Z170 motherboard and I'm wondering how I can do that, because I was on a dual setup with a GTX 1060 3GB and a GTX 950 before I gave up and removed the GTX 950 since both were running at x8 speeds.
My motherboard have that PCIE5 connected to the chipset lanes, not the CPU lanes, AFAIK.

Did you measure the performance of your games running with just one and both cards? Afterburner is good for that.
 

houshuheng

New Member
It is doable, but it depends the game you play and stream.
If the game can max out your CPU and GPU such as PUBG, like 90% or more usage,then second GPU can free your main GPU.
If the game only use small part of your GPU such as LOL which is a "CPU" game, my GTX1060 only use 10% and the fan is not even on, then second GPU does not change anything.

You could refer to these two pcis, ignored Chinese, just focused on the frames and CPU/GPU usage. The game was Battlefield 1
1st pic He only used GTX1070 played and streamed
2nd pic He used GTX1070 played and GT730 streamed
You could see the CPU almost max out (CPU is too weak) in either situation, so using CPU encoding was not optional unless he switched the CPU/Motherboard/RAM/PSU, that would cost a lot. Then a second GPU would be a cheaper way to enhance streaming and playing the game.
QQ截图20180920081019.png
QQ截图20180920081030.png
 

Kescarte_DeJudica

New Member
If you encode with NVENC, there is no real stress for encoding, but as many people pay their games without any FPS limit (at least the many threads in here are showing this), they let their GPU run into max load and therefore cripple OBS rendering performance.
That's not always the solution either though. Some games are taxing enough for the GPU at high settings to the point that limiting the frame rate to 60 vs. leaving it uncapped and seeing it soar to double that won't make much of a difference to the rendering. That's been my experience.
 

Kescarte_DeJudica

New Member
It is doable, but it depends the game you play and stream.
If the game can max out your CPU and GPU such as PUBG, like 90% or more usage,then second GPU can free your main GPU.
If the game only use small part of your GPU such as LOL which is a "CPU" game, my GTX1060 only use 10% and the fan is not even on, then second GPU does not change anything.

You could refer to these two pcis, ignored Chinese, just focused on the frames and CPU/GPU usage. The game was Battlefield 1
1st pic He only used GTX1070 played and streamed
2nd pic He used GTX1070 played and GT730 streamed
You could see the CPU almost max out (CPU is too weak) in either situation, so using CPU encoding was not optional unless he switched the CPU/Motherboard/RAM/PSU, that would cost a lot. Then a second GPU would be a cheaper way to enhance streaming and playing the game.
View attachment 39511View attachment 39512
I can certainly vouch for that! You're right on the money. Obviously, the most practical way to make this work is using a separate video card in a separate computer, and connecting them via a capture card. That's where the largest benefit will be realized.
 
That's not always the solution either though. Some games are taxing enough for the GPU at high settings to the point that limiting the frame rate to 60 vs. leaving it uncapped and seeing it soar to double that won't make much of a difference to the rendering. That's been my experience.
Yeah, I get that, in some games you can max out settings and still achieve more then enough FPS, like Overwatch, you can easily get to 120FPS at maximum with a GTX 1080 and still have room to encode with NVENC, I guess. But people with a RX 460 or GTX 1050 probably wont have that margin. So there are a lot of scenarios to consider. And the investment in a second card is not that high, considering a I don't know how many years old GTX 750 Ti can get the job done, you can buy used old models and still be able to capture with great quality.

I mean, I know I have a solid computer, but I really want to compromise as low resources as possible in order to capture and/or stream. With the 2700X + GTX 1080 I have enough room for gaming and streaming and the RX 460 can capture at absurd bitrates, so I have as low impact as possible.

But it's true indeed, not all games will actually need additional hardware, depending on the hardware you have, that's for sure. You'll still be able to capture and especially stream some games with NVENC/AMF from your gaming card.
 

Kescarte_DeJudica

New Member
That alone explain why it's worth using a second card. It's been a while since I wrote in this thread...

I tried QuickSync for some time and for whatever reason, it didn't work for me, it should, I think... I mean, I know it should, but it didn't, so I gave up.

Using NVENC from my GTX 1080 while gaming (YES, don't be a prude, a GTX 1080 is not like some overpowered God), being that game taxing on the card to render all those gorgeous 18X heavy-dutty-AA on textures and shadows, could impact performance. It actually did, it happened. Some games can use 100% of your card, so what's left for encoding? Think about that for a moment... Something gotta give...

So I had a GTX 750ti to test and, oh boy, it lifted the heavy encoding task from the GTX 1080 like a boss. And old card, probably inexpensive in some countries...

But I couldn't dedicate the GTX 750Ti for that, so I bought a a RX 460 4GB OC from Gigabyte, probably another inexpensive card in some countries. And oh boy, I don't know why but AMF + OBS is actually great. Like if you know what you're doing, even the low end model, the RX 460 has A LOT of options to fine tune inside OBS.

Now, keep in mind, I was using that for capturing the game at this point, not Twitch or some other live service. So it was good, I captured at absurd 50.000 bitrate, fooled around with QPS at 22 and it was great. But then I decided to stream.

So let me tell you my 50 cent about streaming with a encoding API on you graphics card: it's not great. I'm not technical, but putting it simply, not using technical jargon, it's like the quality per bitrate is better when you use the CPU, even when you use that veryfast profile. And now that I started streaming, I went live, I noticed that QuickSync can actually do something, it can encode for stream, since I was streaming at miserable 4.200 bit rate.

So I got a Ryzen 2700X now and I use that for streaming, 720p@60, 4.200 bitrate and the AMD card is used for capture.

Other thing I'm doing is keep OBS open on a display connected to the RX 460 (before the Ryzen 2700X upgrade I used the intel GPU for that, so the RX was also not bothered with that), so not even the OBS Preview is rendered on my GTX 1080 and yes, that's actually a thing, I monitored the cards and you can actually see how OBS Preview use a good percentage your card.

UPDATE, forgot to mention something.

Another thing that I tried was OBS to OBS from one computer to another, AMF with the RX 460 on the gaming PC to a second PC using x264 on a i7 4770K over wired gigabit LAN. Technically it should work. The results were not good. I tried that using that nginx+RTMP trick someone wrote on the forum. Something I think Linus from LinusTechTips is doing with their live video, but they probably took it to a whole new level.

Again, I'm not technical, I'm practical :)

So this is just an update to the thread, resuming my experience living through this debacle myself :)
Glad to see you are still around! I thought more should definitely be added to this thread.

In my experience, QuickSync is drop-dead awful. The picture quality is absolutely terrible, even at high bitrates. I wouldn't want to use that under any circumstances.

Streaming is definitely a tough thing to do with NVENC and get good quality. It requires a really good frame rate. 4,200 kbps definitely will not cut it.

I'm able to make it work very well, but that is because I stream on YouTube, not Twitch, which has no bitrate cap, and I stream at 14,600 kbps. The quality is much more sharp, and get better results than trying to encode with an i-7 6700 4.0 Ghz. ( I know, AMD processors with more cores are much better for encoding).

I've also tried various things to send capture from one computer to another. I've tried NGINX, NDI, etc. None of them are at the level yet where they can adequately transfer that much date at a fast rate. In my opinion, the only way to go is with a capture card.
 
I can certainly vouch for that! You're right on the money. Obviously, the most practical way to make this work is using a separate video card in a separate computer, and connecting them via a capture card. That's where the largest benefit will be realized.

Capture cards and a second computer would cost even more. And you don't need a second card to connect your computer to a capture card, just a HDMI splitter would do, some capture cards have zero latency passthrough so not even a splitter would be needed. And if you have a second card, you can use that card to encode on the same computer.

Sorry, if I lost your point, enlighten me :)
 

Kescarte_DeJudica

New Member
Yeah, I get that, in some games you can max out settings and still achieve more then enough FPS, like Overwatch, you can easily get to 120FPS at maximum with a GTX 1080 and still have room to encode with NVENC, I guess. But people with a RX 460 or GTX 1050 probably wont have that margin. So there are a lot of scenarios to consider. And the investment in a second card is not that high, considering a I don't know how many years old GTX 750 Ti can get the job done, you can buy used old models and still be able to capture with great quality.

I mean, I know I have a solid computer, but I really want to compromise as low resources as possible in order to capture and/or stream. With the 2700X + GTX 1080 I have enough room for gaming and streaming and the RX 460 can capture at absurd bitrates, so I have as low impact as possible.

But it's true indeed, not all games will actually need additional hardware, depending on the hardware you have, that's for sure. You'll still be able to capture and especially stream some games with NVENC/AMF from your gaming card.
Funny enough, I actually have a GTX 750 ti. Sadly though, I cannot encode with it. It has an odd bug, where it won't work with any of the newer drivers, it will only work with the version released about six updates back. And so, since it isn't the newest driver, OBS refuses to accept it.

For encoding, I prefer to use a card from a newer line such as the GTX 1050 ti, because NVENC is much better quality in newer lines. But even then, the investment is small.

And you're right about that. I can stream Team Fortress 2 on the same computer I play it on. With a GTX 1060, I can run it at max settings, 200+ FPS, no effect. But if I try to run Fortnite on anything higher than Medium/60, the stream looks choppy as the ocean, even the game looks great on my end.
 
I've also tried various things to send capture from one computer to another. I've tried NGINX, NDI, etc. None of them are at the level yet where they can adequately transfer that much date at a fast rate. In my opinion, the only way to go is with a capture card.
I think it's more a Ethernet bandwidth problem than those services. Test your network, transfer some files and see how fast it is. Most routers have 100mbit LAN ports. Depending on the bitrate you send to the second computer, you'll get some frame drops.
 
For encoding, I prefer to use a card from a newer line such as the GTX 1050 ti, because NVENC is much better quality in newer lines. But even then, the investment is small.
I ended up using the RX 460 with AMF instead of the 750 Ti, I believe AMF is easier to use, and, well, as you said, it's a newer card, so theres also that. But OBS seems to support AMF better. It has lots of options, like really, a lot.
 

Kescarte_DeJudica

New Member
Capture cards and a second computer would cost even more. And you don't need a second card to connect your computer to a capture card, just a HDMI splitter would do, some capture cards have zero latency passthrough so not even a splitter would be needed. And if you have a second card, you can use that card to encode on the same computer.

Sorry, if I lost your point, enlighten me :)
So, what I was trying to say was, if you are planning on using a dedicated, separate computer to encode with, so as to take away absolutely no resources away from your first computer (which adding a second card would do), than the best way to capture the gameplay from the first computer and sending it the second is by utilizing a capture card.

You are right about a second computer and a capture card costing money. However, in my case, both were things I needed to have anyway ( and already had). I needed the second computer to run old Windows XP games that refuse to work on newer systems (because my computer is too new for XP support). And I needed the capture card to capture game play from the handful of console exclusives I plan on doing series on (such as Uncharted).
 

Kescarte_DeJudica

New Member
I think it's more a Ethernet bandwidth problem than those services. Test your network, transfer some files and see how fast it is. Most routers have 100mbit LAN ports. Depending on the bitrate you send to the second computer, you'll get some frame drops.
I didn't even use my router for NDI, I used a crossover cable between the two computers, so there was no bandwidth restrictions imposed by the router.

Also, the Ethernet ports on my router support much higher speeds than that, because I get 400 mbps download
I ended up using the RX 460 with AMF instead of the 750 Ti, I believe AMF is easier to use, and, well, as you said, it's a newer card, so theres also that. But OBS seems to support AMF better. It has lots of options, like really, a lot.

That's really cool! I've personally never tried many AMD products.
 

RYAM77

Member
My motherboard have that PCIE5 connected to the chipset lanes, not the CPU lanes, AFAIK.

Did you measure the performance of your games running with just one and both cards? Afterburner is good for that.

I’d say little bit of an FPS drop when running my GTX 1060 3GB and my GTX 950 since both were running at x8 speeds. I tried recording with OBS using that dual setup one time, but the recording came out very choppy. However, I have just found out of a bug from a YouTube video that explained when the GeForce Experience overlay is turned on, then it somehow messes with the recording (not sure how that works), but when I turned it off, the videos encoded turned out great, even with a single card. (I was recording PUBG, a very taxing game on both the CPU and GPU.)
 
It's not a precise benchmark, I think, just a single run for each scenario, nothing fancy, but it can give an ideia. This game is a GPU whore, usage is high, as you can see on the benchmark without OBS running. Remember, this is the 16x 4x. I still believe that 8x 8x could even get better results, since it all would be done one the CPU lanes, not divided between CPU and Chipset lanes, like it is now.

Video and HTML download
The same HTML files are zipped and attached here. The vireos are unedited, they're the result of OBS capturing untouched, just renamed them.
Download: https://drive.google.com/drive/folders/1ZJeGE3kOdnZd7NVk1Bz8Lt4ONlpFQNiC?usp=sharing


OBS_OFF.html
OBS wasn't even running.

OBS_NVENC_OUT-1080.html
OBS was running on a display connected to the GTX 1080, that was also used for the encoding.

OBS_NVENC_OUT-460.html
OBS was running on a display connected to the RX 460, the GTX 1080 was used for the encoding.

OBS_AMF_OUT-460.html
OBS was running on a display connected to the RX 460, that was also used for the encoding.
 

Attachments

  • Wildlands_Test.zip
    21.7 KB · Views: 47
Last edited:

gruetze96

New Member
Somebody still alive? ^^

So to discuss this even more.
I have a 2PC Setup. The problem is that the stream is a bit blocky.

The Encoding PC has a 660ti, an i7 7700k and an Elgato 4k60.

I stream on Twitch in 1080p60 and i encode with the cpu on "faster". The Bitrate is 8k.

If i understand right, i should get a new cpu. Because on Twitch you get more "Performance per Bitrate" with cpu encoding.

Which GPU would outperform the i7 7700k?
If i would get a new cpu, i must change my Motherboard with it. IT would cost me more.
I have a 1050ti laying around here. And If i Upgrade my gaming pc gpu in a couple of weeks/months, i could take this 1060 6gb.

Or otherwise, which cpu is the better Option than the i7. A new Intel or an older AMD Ryzen?

-gruetze
 

gruetze96

New Member
Edit:
So, i read a bit more^^

I completly forgot about to Power the settings.

So, i will try the next days to Power the framerate to 30fps or lower the Resolution. If i get to the Point of 720p, i will crank the fps Back to 60.

I will Play with the encoder settings a bit. If that dont Work. Yeah, i dont know.

Another try ist to Stream on YouTube and step Up the Bitrate. And watch how the cpu is performing.
 
Top