x264: qual ajuste para melhor qualidade de transmissão ao vivo sem aumento da taxa de bits?

x264: qual ajuste para melhor qualidade de transmissão ao vivo sem aumento da taxa de bits?

Estou tentando transmitir um jogo de tiro FPS do OBS 20.0.1 com a taxa de bits mais baixa possível, mantendo a melhor qualidade possível (ou seja, menos pixels em blocos).

Estou preocupado que mais quadros de referência aumentem minha taxa de bits. Então, como se trata de streaming de alto movimento, devo usar -tune animationpara aumentar o desbloqueio? Ou seriam PSNRou SSIMseriam candidatos mais promissores?

Existe alguma maneira melhor/outra de testar qual -tuneopção é melhor do que experimentá-las com fluxos de teste?

Além disso, existem outras opções x264 das quais meu stream se beneficiaria, mas que não estão incluídas no OBS?

Minha configuração de OBS: Configuração do OBS

Meu hardware:

  • CPU:Intel i7-4770k
  • GPU:Nvidia GTX780Ti
  • BATER:12 GB, 1600 MHz

Responder1

Estou tentando transmitir um jogo de tiro FPS do OBS 20.0.1 com a taxa de bits mais baixa possível, mantendo a melhor qualidade possível (ou seja, menos pixels em blocos).

Você pode fazer isso, mas levará muito tempo de codificação. Como você está transmitindo ao vivo, presumo que você queira uma única passagem de codificação e, de preferência, uma que seja rápida, ou seja, que maximize os recursos da CPU. Portanto, você deve brincar com a predefinição de velocidade da CPU – escolha a mais alta que puder tolerar.

É impossível otimizar todos esses parâmetros (velocidade, qualidade, taxa de bits) ao mesmo tempo, e é por isso que x264 (e outros codificadores) oferecem uma maneira de selecionar a velocidade predefinida (por exemplo, de ultrafastpara veryslowem x264). Essas predefinições ativam/desativam certas opções que otimizam a qualidade da compactação ou minimizam o tempo de codificação, respectivamente.

Estou preocupado que mais quadros de referência aumentem minha taxa de bits

Isso geralmente é verdade, pois são muito maiores.

Então, como se trata de streaming de alto movimento, devo usar a animação -tune para aumentar o desbloqueio? Ou seriam o PSNR ou o SSIM candidatos mais promissores?

Dê uma olhada neste outro post, onde omodos de sintonia são explicados.

Para o seu caso específico de transmissão ao vivo com baixa latência, com uma passagem de codificação, não faz sentido usar film. Isto é para preservar detalhes (granulados).

Suas preocupações com bloqueios com taxa de bits baixa são compreensíveis, mas a animationpredefinição não faz sentido para transmissão ao vivo, pois também aumentaria o número de quadros B, que você deseja definir como 0 (ou um número baixo) para permitir rápido codificação.Quadros Bexigem que os quadros passados ​​e futuros sejam codificados, o que significa que o codificador/decodificador precisa manter um buffer maior para armazenar esses quadros. Quanto mais quadros B, melhor será a qualidade, em detrimento do tempo de codificação.

Os modos psnre ssimtambém não são úteis; eles são usados ​​apenas durante o desenvolvimento/otimização do codificador e podem, na verdade, resultar em pior qualidade subjetiva.

Talvez zerolatencyse adapte melhor ao seu caso de uso?

Existe alguma maneira melhor/outra de testar qual opção -tune é melhor do que experimentá-la com fluxos de teste?

Você poderia, em teoria, codificar alguns fluxos originais, depois codificá-los com configurações diferentes e executá-los por meio de um analisador de qualidade de vídeo de referência completa, comoVQMTouVMAF. Isso lhe dará uma pontuação de qualidade para as codificações. Mas acho que inspecionar visualmente os resultados também é suficiente no seu caso.

Responder2

As configurações de sintonia não se destinam a alta/baixa qualidade, mas sim a otimizar a aparência de um determinado tipo de fonte.

A animação Tune é para animação baseada em cel (plana). Não é adequado para streaming de jogos.

Tune film é para vídeo ou filme de ação ao vivo, mas CGI com realismo suficiente (por exemplo, texturas finas) também pode se beneficiar dele. Não há problemas em tentar.

Nenhuma outra configuração de melodia provavelmente será adequada. O mais importante é usar a predefinição “mais rápida” (ou melhor), pois todas as predefinições de qualidade inferior degradam significativamente a qualidade. Também é importante fornecer taxa de bits suficiente. Observe que o x264 usará uma boa quantidade de CPU, então esteja preparado para isso. Um codificador de hardware como o NVENC pode ajudar até certo ponto, mas com qualidade de vídeo um pouco inferior.

Não faz sentido ajustar para baixa latência, a menos que sua plataforma o force, pois isso não é necessário para transmitir seu jogo (ou seja, os espectadores não serão afetados se houver uma fração de segundo de latência além dos vários segundos que já existem) .

Responder3

O tuneparâmetro não tem muito efeito na qualidade do stream, correlacionando-se com a falta de discussão e/ou menção às suas opções nos guias. animationpode ser usado com fluxos de baixa taxa de bits para aumentar o desbloqueio e filmpode ser usado com fluxos de alta taxa de bits para manter o fluxo o mais fiel possível à fonte. Embora não tenha certeza da eficácia do desbloqueio ou da falta dele.

PSNRe SSIMsão para fins de teste e comparação entre controles de taxa (CBR,ABR,VBR,CRF).

informação relacionada