Я пытаюсь транслировать шутер 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. Это даст вам оценку качества для кодов. Но я думаю, что визуальной проверки результатов также достаточно в вашем случае.