Próbuję przesyłać strumieniowo strzelankę FPS z OBS 20.0.1 przy możliwie najniższej przepływności, przy jednoczesnym zachowaniu najlepszej możliwej jakości (tj. Mniej blokowych pikseli).
Możesz to zrobić, ale zajmie to dużo czasu kodowania. Ponieważ streamujesz na żywo, zakładam, że potrzebujesz pojedynczego przejścia do kodowania, a najlepiej takiego, które jest szybkie, tzn. Maksymalizuje zasoby procesora. Dlatego powinieneś bawić się z ustawioną wstępnie szybkością procesora - wybierz najwyższą, którą możesz tolerować.
Niemożliwe jest jednoczesne zoptymalizowanie wszystkich tych parametrów (prędkość, jakość, przepływność), dlatego x264 (i inne kodery) oferują sposób wyboru ustawienia prędkości (np. Od ultrafast
do veryslow
w x264). Te ustawienia wstępne włączają / wyłączają niektóre opcje, które odpowiednio optymalizują jakość kompresji lub minimalizują czas kodowania.
Obawiam się, że więcej ramek referencyjnych zwiększy moją przepływność
Zasadniczo jest to prawda, ponieważ są one znacznie większe.
Więc skoro jest to streaming w szybkim ruchu, czy powinienem używać animacji -tune, aby przyspieszyć odblokowywanie? A może PSNR lub SSIM będą bardziej obiecującymi kandydatami?
Spójrz na ten inny post, w którym wyjaśniono tryby strojenia .
W przypadku konkretnego przypadku przesyłania strumieniowego na żywo z niskim opóźnieniem, z jednym przejściem kodowania, nie ma sensu używać film
. Służy to do zachowania (ziarnistych) szczegółów.
Twoje obawy związane z blokadą przy niskiej przepływności są zrozumiałe, ale animation
ustawienie wstępne nie ma sensu w przypadku przesyłania strumieniowego na żywo, ponieważ zwiększyłoby to również liczbę ramek B, które i tak chcesz ustawić na 0 (lub niską liczbę), aby umożliwić szybkie kodowanie. Ramki B wymagają zakodowania przeszłych i przyszłych ramek, co oznacza, że koder / dekoder musi przechowywać większy bufor, aby przechowywać te ramki. Im więcej ramek B, tym lepsza jakość kosztem czasu kodowania.
Te psnr
i ssim
tryby nie są przydatne zarówno; są używane tylko podczas opracowywania / optymalizacji enkodera i mogą w rzeczywistości skutkować gorszą subiektywną jakością.
Być może zerolatency
lepiej pasuje do twojego przypadku użycia?
Czy istnieje lepszy / inny sposób sprawdzenia, która opcja -tune jest najlepsza, niż wypróbowanie ich za pomocą strumieni testowych?
Teoretycznie możesz zakodować kilka oryginalnych strumieni, a następnie zakodować je przy użyciu różnych ustawień i uruchomić je za pomocą pełnego analizatora jakości wideo, takiego jak VQMT lub VMAF . To da ci wynik jakości kodowania. Ale wydaje mi się, że wizualna kontrola wyników jest również wystarczająca w twoim przypadku.