Créditos: Foto: Adrenaline

Fazendo live com Nvidia GeForce? Fique de olho no NVENC!

Veja como habilitar e o impacto em performance
Por Diego Kerber 22/03/2020 14:05 | atualizado 22/03/2020 14:36 Comentários Reportar erro

Desde a série GTX 600 a Nvidia implementa um componente indispensável para quem quer se aventurar em lives: o NVENC. Essa tecnologia é um conjunto de software e hardware dedicados a acelerar codificação e decodificação de vídeo, tirando essa carga de trabalho do processador e de outros componentes do computador.

Site oficial livestream Geforce
Lista completa de placas com suporte a NVENC

Quando você faz uma transmissão para um serviço como o YouTube ou a Twitch, não dá para simplesmente mandar a imagem que seu PC está gerando, porque ela tem um peso muito alto. Para ser viável, é preciso compactar a imagem, alguém que normalmente é feito com o codec H.264.

O problema é que compactar vários quadros a cada segundo trazem uma carga gigantesca para os componentes, especialmente para o processador. Para contornar essa dificuldade as placas GeForce incluem uma parte dedicada a fazer esse processo, minimizando em muito o impacto para o hardware de realizar essa compactação.

Para verificar o impacto de usar essa tecnologia comparado a renderizar com X264, colocamos em ação o StreamLabs com os seguintes hardwares:

- AMD Ryzen 5 3600
- 16GB de RAM DDR4 @3000MHz
- Galax GeForce GTX 1660 Super

Para os testes usamos os jogos em FullHD no Ultra, testando dois cenários diferentes: um game com o CPU mais carregado, caso do Assassin's Creed Odyssey, e um com um uso menos elevado de CPU, porém ainda dependente do desempenho do processador, o Counter Strike Global Offensive.

Temos uma diferença gigantesca no uso do processador em ambas as situações, porém nem sempre uma mudança na taxa de quadros. No caso do Assassin's Creed Odyssey, o uso de CPU (representando pelas linhas) saltou dos mais ou menos 50% no teste com NVENC para bater "na tampa" dos 100% em uma parte considerável do teste. Isso, porém, não impactou em performance de forma tão notável, como dá para notar pelas taxas de quadros próximas tanto em NVENC quanto X264.

Em Counter Strike, um jogo que depende muito do CPU para entregar desempenho, dá para notar tanto um salto no uso de CPU quanto uma queda mais acentuada na performance, algo mais ou menos estável em 50fps exceto no trecho muito limitados pelas placas de vídeo, onde houve quedas semelhantes em performance.

Mas há um detalhe relevante: o vídeo final capturado. Enquanto no Counter Strike o nosso robusto Ryzen 5 com 12 threads deu conta de compactar todos os vídeo, em ACO a coisa muda de figura: foram perdidos 64% dos quadros, transformando o vídeo final em praticamente uma sequência do Power Point. O motivo é que ao bater os 95% de uso do processador, o Windows é obrigado a gerenciar os recursos, e desde que recebeu updates focados em desempenho para jogos, em casos como esse ele irá direcionar os recursos limitados para o jogo em detrimento do restante. O resultado: o StreamLabs não consegue gerar o vídeo com quadros suficientes. Há a possibilidade de tentar contornar isso abrindo como administrador o aplicativo de streaming, mas fica evidente que já estamos "esticando o cobertor curto" e que, ou a performance ou o vídeo final, vai ser comprometido.

Se compararmos com o desempenho do sistema sem o software de streaming rodando, vemos uma diferença bastante perceptível na performance média do sistema:

Mesmo perdendo um pouco da performance, é bem vísivel a diferença entre usar o CPU ou acelerar via NVENC. Os resultados ficam perto dos apenas 4% de perda de desempenho prometidos pela Nvidia, não chegando a 10%, nos nossos testes. Uma variação baixa como essa é praticamente imperceptível para quem está jogando.

Agora falando da qualidade da transmissão, vemos uma diferença perceptível entre o NVENC em qualidade média e o x264 na mesma configuração, como podem ver nos screenshots abaixo:

O NVENC tem uma tendência bastante clara de suavizar mais as bordas, criando um efeito mais desfocado em folhagens, por exemplo, enquanto o x264 tem uma nitidez mais pronunciada. Porém essa aparente vantagem acontece em comparativos de imagens estáticas, pois quando temos movimento, há um efeito bastante negativo para essa maior nitidez do x264: os artefatos de compressão ficam muito mais pronunciados.

Os artefatos na imagem são algo bastante comum em vídeos comprimidos, e você já deve ter visto eles mais pronunciados em momentos que sua internet "não estava dando conta" de carregar um vídeo. Normalmente são compostos por um quadriculado estranho em alguns objetos, além da permanência de pixels por tempo excessivo na tela, distorcendo especialmente os movimentos.

Ao suavizar e desfocar objetos muito complexos, o efeito da compressão do NVENC é mais eficiente, criando menos dessas aberrações na imagem. Considerando a natureza movimentada de um gameplay, o resultado final da tecnologia da Nvidia acaba sendo mais interessante que o feito pelo x264 por não "poluir" tanto a imagem com essas distorções, mesmo que em contrapartida traga menos nitidez em alguns detalhes.

Bom lembrar que usamos o x264 em qualidade média, que impactou em muito o desempenho da máquina. Trocando para o modo Fast, que reduz a carga no hardware porém reduz a qualidade final da compressão, o comparativo fica bem mais favorável a tecnologia da Nvidia:

Além do streaming, o NVENC pode ser usado em outros cenários de codificação de vídeos, o que inclui recursos do GeForce Experience como o ShadowPlay. Exemplos de software que incluem suporte a tecnologia da Nvidia compreende alguns nomes relevantes como:

- FFMpeg - app de gravação, codificação e transmissão de vídeo
- OBS - software popular para streaming
- StreamLABS - software baseado no OBS 
- VMix - aplicação profissional de gravação e de transmissão online
- Handbreak - software de codificação e decodificação de vídeos

Tags
  • Redator: Diego Kerber

    Diego Kerber

    Formado em Jornalismo pela Universidade Federal de Santa Catarina (UFSC), Diego Kerber é aficionado por tecnologia desde os oito anos, quando ganhou seu primeiro computador, um 486 DX2. Fã de jogos, especialmente os de estratégia, Diego atua no Adrenaline desde 2010 desenvolvendo artigos e vídeo para o site e canal do YouTube