Jellyfin buduje ścieżkę odtwarzania na podstawie różnicy między tym, co zawiera materiał, a tym, co może zaakceptować klient wysyłający żądanie.
Ta różnica może być na tyle mała, że wystarczy remuksowanie kontenera, ograniczać się do konwersji dźwięku albo być na tyle duża, że konieczne staną się dekodowanie wideo, filtrowanie, mapowanie tonów, nakładanie napisów i ponowne kodowanie. Zrozumienie tej ścieżki wyjaśnia, dlaczego „ten sam plik” nie oznacza jednego stałego obciążenia serwera. Rejestruj decyzję dotyczącą odtwarzania dla każdego klienta, aby planowanie wydajności uwzględniało etapy faktycznie uruchamiane przez Jellyfin, a nie ogólną etykietę transkodowania.
Direct Play to punkt odniesienia bez konwersji
Gdy klient akceptuje kontener źródłowy oraz ścieżki wideo, dźwięku i napisów, serwer głównie odczytuje i dostarcza plik. Ten punkt odniesienia pozwala oddzielić dostarczanie multimediów od wydajności konwersji.
Obsługa dźwięku po stronie klienta może zmienić sposób odtwarzania bez zmiany pliku multimedialnego; bezpośrednie wyjście E-AC3 w Android TV nie zadziałało w przypadku, w którym lokalne dekodowanie PCM zachowało tryb Direct Play.
Ustal jednego klienta i jeden plik, dla których Direct Play działa niezawodnie. Wykorzystaj ten przebieg jako próbę kontrolną przed porównywaniem wykresów użycia procesora, GPU lub sieci z dowolnym przypadkiem transkodowania.
Niewielka różnica kompatybilności może wymagać tylko remuksowania lub obróbki dźwięku
Niewspierany kontener lub format dźwięku nie oznacza automatycznie konieczności konwersji wideo. Zachowanie strumienia wideo bez zmian może utrzymać obciążenie serwera znacznie poniżej poziomu pełnego transkodowania.
Wideo może pozostać nietknięte, podczas gdy zmieni się obsługa dźwięku lub kontenera w ramach ścieżki zgodności z klientem.
Przed uznaniem każdej sesji innej niż Direct Play za równoważną sprawdź w panelu powód konwersji oraz polecenie FFmpeg. W pomiarach rozróżniaj kopiowanie strumienia, konwersję dźwięku i kodowanie wideo.
Niezgodność wideo rozszerza potok przetwarzania
Gdy samo wideo musi zostać zmienione, Jellyfin może potrzebować dekodowania, filtrowania, skalowania, mapowania tonów, wypalania napisów i kodowania. W zależności od platformy i materiału niektóre etapy mogą działać sprzętowo, a inne pozostać na procesorze.
Wydajność w czasie rzeczywistym zmienia się zależnie od obciążenia kodeka i filtrów, dlatego sam model procesora nie wystarczy do przewidzenia wydajności transkodowania w Jellyfin.
Rejestruj aktywność GPU dla poszczególnych silników oraz użycie CPU dla dokładnie tego samego pliku. Ścieżkę strumieniowania z akceleracją sprzętową należy weryfikować etap po etapie, a nie wywnioskowywać jej na podstawie pojedynczego wskaźnika „GPU aktywne”.
Decyzja dotycząca odtwarzania jest również decyzją dotyczącą wydajności
Ustawienie klienta, wybór napisów lub limit przepustowości może skierować strumień na bardziej wymagającą ścieżkę, nawet gdy sprzęt serwera się nie zmienia. Oznacza to, że planowanie wydajności musi uwzględniać klientów i zasady, które wywołują konwersję.
Metoda USE pozwala powiązać diagnozę z zasobem, który osiąga nasycenie, zamiast zakładać, że transkoder zawsze jest ograniczony przez CPU.
Utwórz niewielką macierz reprezentatywnych klientów, materiałów, napisów i limitów dostępu zdalnego. Rejestruj wynikowy tryb odtwarzania, aby przyszłe regresje można było powiązać ze zmianą decyzji, zamiast zgadywać na podstawie objawów.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego architektura domowego serwera Jellyfin zmienia się wraz z dodawaniem usług
Serwer Jellyfin staje się stosem usług w miarę dodawania kolejnych aplikacji, dlatego należy jasno określić odpowiedzialność za procesor, pamięć masową, sieć, dane uwierzytelniające, kopie...

Jak mierzyć wydajność Jellyfin, nie myląc pamięci podręcznej z wydajnością sprzętu
Wiarygodny test wydajności Jellyfin oznacza oddzielnie stan zimny i ciepły, aby buforowane metadane lub strony systemu plików nie zostały pomylone z trwałą wydajnością sprzętu.

Ile zapasu iGPU potrzebuje Jellyfin dla wielu użytkowników?
Zapas iGPU w Jellyfin zależy od rodzaju obciążenia: zachowaj margines powyżej najtrudniejszej powtarzalnej mieszanki jednoczesnych transkodowań, a nie arbitralnego procentu wykorzystania.

