Jump to content

NVENC Field Rate Deinterlace


Go to solution Solved by Carlo,

Recommended Posts

roberto188
Posted

Currently I have an i5 2500 that I'm using to serve up live TV. I'm also using the Bob and weave option to output very nice 60fps to watch sports. Problem is, with CPU encoding and CPU deinterlacing at field Rate, it maxes out my CPU. I was thinking of getting a cheap Nvidia GTX 750 to utilize the hardware encoding. My question is, will emby pass the information to the card to let the card do the field Rate deinterlacing? Or will the deinterlacing still be done by the CPU?

Posted

I'm assuming it's gpu but Im not sure.

  • Solution
Posted

Yes it does.  I've been testing various things with CPU, AMF and NVENC and posted a few high level things here in this thread: https://emby.media/community/index.php?/topic/56464-amd-hardware-acceleration/?hl=%2Bdays+%2Bthunder&do=findComment&comment=555168

 

This was done with a GTX 750-TI on a 1st gen i7 at 2.8GHz running Emby.

 

This was a half hour DVR recorded 1080i file.  I ran it through the sync mechanism to downsize it to android mobile, converting to H.264 while deinterlacing.

681,356,648 Open House S07E68 - CPU - Bob - 3.34x - 3,028 kbs.mkv (CRF 23)
881,173,901 Open House S07E68 - NVENC-Bob - 8.62x - 3,916 kbs.mkv
 
696,581,998 Open House S07E68 - CPU - B&W - 1.88x - 3,095 kbs.mkv (CRF 23)
866,983,873 Open House S07E68 - NVENC-B&W - 6.54x - 3 853 kbs.mkv

 

The first number is the file size of the created file.  CPU vs NVENC is obvious.  Bob vs Bob and Weeve, 

Number in front of the "x" is the rate it performed where 1.0x is real time.

last number is the average bitrate of the file.

The B&W produced 59.94 fps while the Bob produced 2.9.97 fps.

 

Hope that helps,

Carlo

  • Like 1
roberto188
Posted

Awesome Carlo thanks. I'm thinking of grabbing a quatro K2000 instead which should allow me at least 3 streams simultaneously. Based on these numbers it shouldn't break a sweat. Thanks!

Posted

With the 750-TI I'm limited to 2 streams.

I also have an AMD R9 280x I tested with as well but for now the 750-TI smoked it for Emby use.

 

The K2000 is going to be the same as the 750-TI except it can process more than 2 streams.  It's still an "older" card and isn't going to decode H.265 (nor encode) so keep that in mind.  NewEgg has refurbished ones available for $160. You can also pickup a Dell branded on refubished for $100 including shipping here: https://www.theitmart.com/0jhrj-dell-quadro-k2000-2gb-gddr5-128-bit-pci-e-x16-graphics-card?gclid=Cj0KCQjwy9LVBRDOARIsAGqoVnudH31VKzwWhjRO-tq6PeTmS0W8-Cq50J5l_xHHLHzox8-SW9qF8c0aAlEhEALw_wcB

 

I'd watch how much you plan to spend on a old GPU since it could be a better move to pickup a new mother/cpu that supports QuickSync which will handle H.265 as well since it's much newer.  

 

Carlo

roberto188
Posted

Thanks Carlo I appreciate the info. I don't forsee myself needing or wanting h265 anytime soon. I can get a k2000 for about 85. A new cpu and mobo will be min 200, plus a Windows reinstall. Old card I can just pop in and away I go. Thanks for all the help!

Posted

For his needs only converting to H.264 and not needing to decode H.265 the K2000 is the best option since it's not limited to 2 streams.

Good quality at an awesome price for $85.

 

That will breath new life into his system.

roberto188
Posted

So I dropped my K2000 in. I can successful handle 3 simultaneous TV channels double deinterlaced, up to 720p. Not bad considering I couldnt even do two with my i5 2500k.

 

Interestingly enough it chokes on just two 1080p double deinterlaced streams. This seemed odd to me because whbe doing CPU encoding the scaling down from 1080p to 720p took roughly the same CPU resources. I will continue to tweak but at the very least am very happy with 3 concurrent TV streams. Not bad for about 80 bucks.

Posted

What do you mean "double deinterlaced"?  Do you mean deinterlacing with send_field vs send_frame? to keep the temporal resolution?

 

How many streams can you do with send_frame going from 1080i to 720p?

roberto188
Posted

Yes, when I say double deinterlace, I mean send field. Here is what I got approximately. (With hardware decoding disabled (why spend the resources to decode when my cpu can do that just fine)

 

1080i to 720p @ 60fps - Max 3 streams (Video Engine at about 80-90%)

1080i to 1080p @ 30 fps - Max 3 streams (Video Engine at about 90-95%)

1080i to 720p @ 30 fps - Max 6 or 7 streams??? I don't have enough streams to test this but the Video Engine load with 1 stream is about 12% I'd guess thought that my CPU would cap out before the card would encoding this. Maybe if I enabled the gpu decoding I could get 5 or 6 streams? I'm just guessing here.

 

1 question I have is, if I overclock the GPU will that  boost the video engine too or no? Anyway to boost the video engine?

roberto188
Posted

Also I see that the latest Emby Server is starting to implement different presets for hardware transcoding. I bet if I don't use the default "medium" setting and use the "fast" or some other setting I could easily get 3 1080p 60fps streams from the K2000.

roberto188
Posted

Just a final post, with the new beta tweaks for "fast" NVENC hardware encoding profile I was able to get three simultaneous 1080i TV feeds transcoded to h264 1080p 60fps without issue. So, all in all, with an old i5 2500, 8 GB of Ram and an 85 dollar Quatro K2000 I can now stream at maximum resolution and framerate all three of the tuned stations my HDhomerun can put out. I am very happy! Big thanks to Cayars, Luke and  Snake98 for all the help in making it happen! 

 

5abd85b108043_Load.png

 

5abd85961a99d_Streams.png

Posted

Very nice!

 

Isn't it awesome how Emby and an $85 piece of hardware can put new life back into your system?

 

Curious, if you wouldn't mind trying something.  What happens when you try to open a 4th and 5th transcode?

Does it fall back to CPU at any point?

 

I'm wondering if we should have a setting to limit how many HW encodes the system will use.  I know with the 750-TI it will only do 2 streams in HW then will fail making Emby switch to CPU for any remaining.  I'd like to know what/how this functions on your system.

 

Carlo

roberto188
Posted

I already know the answer to that, no it doesn't fall back to CPU, the transcodes just can't maintain 60fps and they stutter and resume on playback. Since the K2000 has no limit on number of streams it will just keeping adding streams even if the video engine is at 100%. The transcodes will just slow down to less than realtime.

Posted

That's not good.  With nvenc on my system with a 750-TI it will do 2 streams in HW then fail over to CPU so I can keep on going and get a few more stream using the CPU.

 

I think we need to do what Plex did and allow the admin to set the max number of hardware encodes.  So in your case you could have it set at 3 then the 4th, 5th, etc  transcode would use the CPU.

 

Carlo

roberto188
Posted

For me it's not an issue, because I only have 3 TV signals to tune to. Once they are all tuned it with throw a "Tuner not available" error if I try to tune to a 4th. My Movies are already formatted for direct stream, as everyone's fixed media should be. I can't see myself really running into that issue, but others might. 

Posted

Same boat here.  I have all media in a format that will direct play locally but I only have 5Mb upload rate. I also convert all DVR to H.264 as well outside of Emby using customer scripts.  But if my other family members (ie kids in college) play something it's guaranteed to almost have to transcode.  Also watching TV on Roku and some other devices will cause a transcode. Then there is mobile syncing which will also usually need to use the transcoder.

 

So even with "perfect" media you can't always avoid it.  However this does minimize the need for transcoding quite a bit!

 

For other people who just use files such as AVI, H.265, divx, mpeg2, etc they will probably require trancoding much more.  In cases like this it would be quite easy to exceed 3 HW transcodes so it would be nice to be able to set the max number to force CPU fail over after that.

 

I think this option would be welcome for those coming over from Plex since they had it there as well.

Posted

The next release of Emby Server for Linux x64 will include NVENC support out of the box so all you need to do is enable it. 

 

Nvidia Cuda and OpenCL drivers will need to be installed first. These cannot be freely distributed by us so you will need to refer to your respective distro to learn how to install them.

 

Thanks !

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...