I am trying to stream an FPS shooter game from OBS 20.0.1 at the lowest bitrate possible whilst maintaining the best quality possible (i.e. less blocky pixels).
Você pode fazer isso, mas vai demorar 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, maximiza seus recursos de CPU. Assim, você deve brincar com a predefinição de velocidade da CPU - escolha a mais alta que você pode tolerar.
É impossível otimizar todos esses parâmetros (velocidade, qualidade, taxa de bits) ao mesmo tempo, e é por isso que o x264 (e outros codificadores) oferecem uma maneira de selecionar a velocidade predefinida (por exemplo, de ultrafast
a veryslow
em x264). Essas predefinições ativam / desativam determinadas opções que otimizam a qualidade de compactação ou minimizam o tempo de codificação, respectivamente.
I am concerned that more reference-frames will increase my bitrate
Isso geralmente é verdade, pois são muito maiores.
So since this is high-motion streaming, should I use -tune animation to boost deblocking? Or would PSNR or SSIM be more promising candidates?
Veja este outro post, onde os modos de ajuste são explicados .
Para o seu caso particular de transmissão ao vivo em baixa latência, com um passe de codificação, não faz sentido usar film
. Isto é para preservar detalhes (granulados).
Sua preocupação com o bloqueio com baixa taxa de bits é compreensível, mas a animation
predefinida 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 número baixo) para permitir codificação rápida. Os quadros-B exigem que quadros antigos 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 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 somente 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?
Is there any better/other way to test which -tune-option is best than trying them with test-streams?
Você poderia, em teoria, codificar alguns fluxos originais, codificá-los com configurações diferentes e executá-los por meio de um analisador de qualidade de vídeo de referência completa, como VQMT ou VMAF . Estes lhe dará uma pontuação de qualidade para as codificações. Mas eu acho que inspecionar visualmente os resultados também é suficiente no seu caso.