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 animation
para aumentar o desbloqueio? Ou seriam PSNR
ou SSIM
seriam candidatos mais promissores?
Existe alguma maneira melhor/outra de testar qual -tune
opçã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?
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 ultrafast
para veryslow
em 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 animation
predefiniçã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 psnr
e ssim
també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 zerolatency
se 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 tune
parâ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. animation
pode ser usado com fluxos de baixa taxa de bits para aumentar o desbloqueio e film
pode 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.
PSNR
e SSIM
são para fins de teste e comparação entre controles de taxa (CBR,ABR,VBR,CRF).