NVCUVID NVENC Issues

I just moved the Wowza server to a PC with a better Video card that supports NVCUVID and NVENC to cut down on CPU usage and allow more streams by moving the encoding/decoding load to the video card. The card is Geforce 970. After enabling NVCUVID for decoding and NVENC for encoding, the streams go black or I get a loading circle. Doing some messing around I took off NVENC encoding, but left NVCUVID for decoding. Everything works this way, but I am still killing the CPU because all the encoding is done on the CPU. I have updated to 4.3. Why will NVENC encoding not work?

More info on this.

The logs show this:

2015-10-12 08:51:17 CDT comment server INFO 200 - JNI:TranscoderSession.isCUDAAvailable[defaultVHost:livell/definst/skihill.stream]:NVidia hardware acceleration is available: NVENC2, NVCUVID, CUDA[decode]

for all streams, then

2015-10-12 10:11:29 CDT comment server INFO 200 - JNI:TranscoderSession.videoEncoderAdd[defaultVHost:live/definst/LCF.stream:720p]: Create video encoder: H.264: NVENC2 - - - 4.2 - - - - - - - - - - - - - - - - - - - - - - - - -

2015-10-12 10:11:29 CDT comment server INFO 200 - LiveStreamPacketizerPacketHandler.handlePacket[livell/definst/skihill.stream]: Video codec:H264 isCompatible:true - - - 4.254 - - - - - - - - - - - - - - - - - - - - - - - - -

2015-10-12 10:11:29 CDT comment server INFO 200 - LiveStreamPacketizerPacketHandler.handlePacket[livell/definst/WM.stream]: Video codec:H264 isCompatible:true - - - 4.262 - - - - - - - - - - - - - - - - - - - - - - - - -

2015-10-12 10:11:29 CDT comment server INFO 200 - JNI:TranscoderSession.videoEncoderAdd[defaultVHost:livell/definst/skihill.stream:160p]: Create video encoder: H.264: NVENC2 - - - 4.304 - - - - - - - - - - - - - - - - - - - - - - - - -

2015-10-12 10:11:29 CDT comment server INFO 200 - JNI:TranscoderSession.videoEncoderAdd[defaultVHost:livell/definst/WM.stream:160p]: Create video encoder: H.264: NVENC2 - - - 4.305 - - - - - - - - - - - - - - - - - - - - - - - - -

2015-10-12 10:11:29 CDT comment server WARN 200 - JNI:VideoEncoderH26XNVENC.initialize[defaultVHost:live/definst/LCF.stream:720p]: Initialize failed: gpuid:0 result:10 - - - 4.342

It just keeps trying to initialize over and over, but keeps failing over and over. The software can tell its capable of using NVENC, but it just won’t work.

The error I get when I try to play the stream is: Video Packet List is Full

Hi,

The GE Force 970 is a consumer based card that will only manage two transcoded streams. It’s possible you may be hitting that threshold.

The Quadro based cards, and above, allow for many more streams, but are also expensive.

Daren

Hello,

As you mentioned, encoding on 4.1.1 with CUDA works but unfortunately, I’m not aware of a way to do both encoding and decoding with CUDA on Wowza Streaming Engine.

Best regards,

Andrew

Yes, I have confirmed this with Wowza Support after entering a ticket and doing extensive research. How nice of NVidia to completely screw over all of their customers that don’t have $3000 to dish out for a Tesla. Pretty much made the card worthless by replacing CUDA encoding with NVENC and putting a limit of 2 streams. Why even make decent GeForce cards if they are going to limit the hardware at 25%, greedy bastards. This means my only option is to downgrade to Wowza 4.1.1 and use a modified NVidia driver to get CUDA encoding back. This brings me to my next obstacle of trying to find a Wowza 4.1.1 installer, since I first installed at 4.1.2 and cannot uninstall updates enough to get to the version I need. I updated my ticket with a request for a link and sent a request to sales@wowza.com this morning. Haven’t gotten a link yet and need to get this working with the GPU ASAP, my CPU never leaves 100%, so if you could hook me up with a link that would be awesome. I also am wondering how I can backup my config and restore it after uninstalling 4.3.0 and installing 4.1.1 so I don’t have to completely start from scratch. I have searched for instructions on this with no luck unless you are using AWS, which uses a 3rd party backup tool.

Thanks to Andrew Ramberg at Wowza support, I have the link and instructions for backup and restore now so I am on my way to actually being able to use my NVidia card again. To anyone that’s looking for backup and restore, search for migrating from server to server instead.

Edit:

Ended up having to install from scratch, but holy crap is there a difference. The CPU is not at 100% with all 4 decodes and all 12 encodes. The encodes work using CUDA after downgrading to 4.1.1, and using a modified driver to support it with a newer driver version. The streams are cleaner than ever, the higher resolutions ones used to be a bit choppy due to overloading the CPU. One question though, there is no option to use CUDA to decode. The only options I have are QuickSync and default, which is still hitting my CPU pretty hard at 70-75% consistently. Is there no option to decode using CUDA in 4.1.1? If not, is there some work around that will make me able to use CUDA for encoding and decoding?