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

Jak tajny broker przekazuje agentowi AI dane uwierzytelniające bez ujawniania ich w promptach?
Śledź tożsamość obciążenia, zasady, wydawanie tokenów, wstrzykiwanie żądań, redakcję, wygasanie i unieważnianie w ramach bezsekretnej architektury domowego agenta AI.

Jak piaskownica narzędzi ogranicza skutki uboczne działania agenta AI?
Zobacz, jak izolacja, bramki uprawnień, ulotny stan, kontrola ruchu wychodzącego, limity i dzienniki audytowe ograniczają skutki uboczne agentów AI bez dowodzenia, że działania są...

Jak dekodowanie z ograniczeniami generuje JSON zgodny ze schematem?
Zrozum kompilację schematu, maskowanie tokenów, stan parsera, obsługiwane podzbiory, opóźnienia, obcinanie oraz to, dlaczego poprawność strukturalna nie gwarantuje prawidłowych wartości.

