Я пытаюсь транслировать шутер FPS из OBS 20.0.1 с минимально возможной скоростью передачи данных, сохраняя при этом наилучшее возможное качество (то есть меньшее количество пикселей).
Вы можете сделать это, но это займет много времени на кодирование. Поскольку вы работаете в режиме реального времени, я предполагаю, что вам нужен один проход кодирования, и желательно, чтобы он был быстрым, то есть максимизировал ресурсы вашего ЦП. Таким образом, вы должны поиграть с предустановкой скорости процессора - выбрать максимальную, которую вы можете терпеть.
Невозможно оптимизировать все эти параметры (скорость, качество, битрейт) одновременно, поэтому x264 (и другие кодировщики) предлагают способ выбора предустановки скорости (например, от ultrafast
до до veryslow
x264). Эти предварительные настройки включают / отключают определенные параметры, которые оптимизируют качество сжатия или минимизируют время кодирования, соответственно.
Я обеспокоен тем, что больше опорных кадров увеличит мой битрейт
Это в целом верно, так как они намного больше.
Так как это потоковое видео с высокой скоростью, я должен использовать анимацию -tune для усиления деблокирования? Или PSNR или SSIM были бы более перспективными кандидатами?
Посмотрите на этот другой пост, где объясняются режимы настройки .
Для вашего конкретного случая прямой трансляции с низкой задержкой, с одним проходом кодирования, не имеет смысла использовать film
. Это для сохранения (зернистой) детали.
Ваши опасения по поводу блочности с низким битрейтом понятны, но animation
предустановка не имеет смысла для потоковой передачи в реальном времени, так как это также увеличило бы количество B-кадров, которые вы в любом случае хотели бы установить на 0 (или низкое число), чтобы позволить быстрый кодирование. B-кадры требуют кодирования прошлого и будущего кадров, что означает, что кодер / декодер должен сохранять больший буфер для хранения этих кадров. Чем больше B-кадров, тем лучше качество за счет времени кодирования.
Эти psnr
и ssim
режимы не являются полезными либо; они используются только при разработке / оптимизации кодировщика и могут привести к ухудшению субъективного качества.
Возможно, zerolatency
лучше подходит для вашего случая использования?
Есть ли лучший / другой способ проверить, какой вариант -tune-option лучше, чем пробовать их с помощью test-streams?
Теоретически вы можете кодировать несколько оригинальных потоков, затем кодировать их с различными настройками и запускать их через анализатор качества видео с полным эталоном, такой как VQMT или VMAF . Это даст вам оценку качества для кодов. Но я думаю, что визуальной проверки результатов также достаточно в вашем случае.