Ich versuche, ein FPS-Shooter-Spiel von OBS 20.0.1 mit der niedrigsten möglichen Bitrate zu streamen, während die bestmögliche Qualität (dh weniger blockige Pixel) erhalten bleibt.
Sie können dies tun, aber es wird viel Zeit für die Codierung benötigen. Da Sie Live-Streaming verwenden, gehe ich davon aus, dass Sie einen einzelnen Codierungsdurchgang wünschen, und zwar vorzugsweise einen, der schnell ist, dh die CPU-Ressourcen maximal ausnutzt. Sie sollten also mit der CPU-Geschwindigkeitsvorgabe herumspielen - wählen Sie den höchsten Wert, den Sie tolerieren können.
Es ist unmöglich, alle diese Parameter (Geschwindigkeit, Qualität, Bitrate) gleichzeitig zu optimieren. Aus diesem Grund bieten x264 (und andere Encoder) eine Möglichkeit, die Geschwindigkeitsvoreinstellung (z. B. von ultrafast
bis veryslow
in x264) auszuwählen . Diese Voreinstellungen aktivieren / deaktivieren bestimmte Optionen, die die Komprimierungsqualität optimieren bzw. die Kodierungszeit minimieren.
Ich bin besorgt, dass mehr Referenzrahmen meine Bitrate erhöhen werden
Das ist im Allgemeinen richtig, da diese wesentlich größer sind.
Da es sich hierbei um High-Motion-Streaming handelt, sollte ich die -tune-Animation verwenden, um das Deblocking zu verstärken? Oder wären PSNR oder SSIM vielversprechende Kandidaten?
Schauen Sie sich diesen anderen Beitrag an, in dem die Melodiemodi erklärt werden .
Für Ihren speziellen Fall von Live-Streaming mit niedriger Latenz und einem Codierdurchgang ist die Verwendung nicht sinnvoll film
. Dies dient zum Erhalten von (körnigen) Details.
Ihre Besorgnis über Blockiness mit niedriger Bitrate ist verständlich, aber das animation
Preset ist für Live-Streaming nicht sinnvoll, da es auch die Anzahl der B-Frames erhöhen würde, die Sie sowieso auf 0 (oder eine niedrige Anzahl) setzen möchten, um schnell zuzulassen Codierung. Für B-Frames müssen frühere und zukünftige Frames codiert werden, was bedeutet, dass der Codierer / Decodierer einen größeren Puffer zum Speichern dieser Frames halten muss. Je mehr B-Frames, desto besser ist die Qualität auf Kosten der Codierungszeit.
Die Modi psnr
und ssim
sind ebenfalls nicht nützlich. Sie werden nur bei der Encoderentwicklung / -optimierung verwendet und können zu einer schlechteren subjektiven Qualität führen.
Vielleicht zerolatency
passt Ihr Anwendungsfall besser?
Gibt es eine bessere / andere Möglichkeit, die -tune-Option zu testen, als sie mit Test-Streams auszuprobieren?
Theoretisch könnten Sie einige Original-Streams codieren, diese dann mit anderen Einstellungen codieren und sie mit einem Full-Reference-Videoqualitätsanalysator wie VQMT oder VMAF durchlaufen . Diese geben Ihnen eine Qualitätsbewertung für die Kodierungen. Ich vermute aber, dass die visuelle Kontrolle der Ergebnisse auch in Ihrem Fall ausreichend ist.