Najpierw popraw kompatybilność klienta, zanim kupisz większą moc transkodowania, gdy buforowanie zaczyna się dlatego, że jedno lub kilka urządzeń odtwarzających nie może odtwarzać bezpośrednio filmów, dźwięku, kontenerów lub napisów z biblioteki. Najpierw zwiększ wydajność transkodowania serwera, gdy konwersja jest nieunikniona na wielu klientach, zdalne limity przepływności regularnie wymagają strumieni o niższej jakości albo istniejący silnik transkodowania nie nadąża w czasie rzeczywistym. Jeśli sieć nie jest w stanie utrzymać dostarczanej przepływności, żadna z tych modernizacji nie powinna być pierwsza.
To decyzja dotycząca kolejności modernizacji, a nie ogólny „konkurs klient kontra serwer”. Pierwszym zadaniem jest ustalenie rzeczywistej ścieżki odtwarzania i przyczyny jej zmiany. Kompatybilny klient może całkowicie usunąć obciążenie serwera; szybszy serwer jedynie przyspiesza pracę, która nadal musi zostać wykonana.
Najpierw ustal, dlaczego strumień nie jest odtwarzany bezpośrednio
Uruchom jeden problematyczny strumień i sprawdź informacje o odtwarzaniu w serwerze multimediów. Zaklasyfikuj go jako odtwarzanie bezpośrednie (Direct Play), Direct Stream lub remuks, transkodowanie tylko dźwięku albo transkodowanie obrazu. Następnie zapisz przyczynę: nieobsługiwany kodek, nieobsługiwany kontener, wypalanie napisów, ograniczenie przepływności, mapowanie tonów HDR lub inna funkcja nieobsługiwana przez klienta.
Plex opisuje odtwarzanie bezpośrednie (Direct Play) jako wysyłanie kompatybilnych multimediów bez konwersji, Direct Stream jako ponowne pakowanie kompatybilnych strumieni, a transkodowanie jako konwersję multimediów na potrzeby klienta. Jego przegląd ścieżek przesyłania strumieniowego wskazuje również, że napisy mogą zmienić ścieżkę odtwarzania, która w innym przypadku byłaby kompatybilna.
Nie kupuj niczego, dopóki ta klasyfikacja nie będzie stabilna. Jeśli strumień jest już odtwarzany bezpośrednio, a mimo to się buforuje, obsługa kodeków przez klienta nie jest pierwszym problemem, a dodatkowa moc transkodowania może nigdy nie zostać wykorzystana. Zamiast tego przetestuj przepustowość sieci, jakość Wi‑Fi, odczyt danych z dysku serwera oraz dostarczaną przepływność.
- Jeśli strumień jest odtwarzany bezpośrednio (Direct Play), przerwij porównywanie kompatybilności z transkodowaniem i zbadaj sposób dostarczania.
- Jeśli jeden klient wymusza konwersję z powodu obsługi formatów, przetestuj bardziej kompatybilnego klienta lub aplikację kliencką.
- Jeśli wiele klientów rzeczywiście wymaga konwersji, zmierz wydajność transkodowania serwera.
- Jeśli zdalna przepustowość wymusza niższe przepływności, traktuj konwersję po stronie serwera i przepustowość wysyłania jako osobne ograniczenia.
Lepszy klient wygrywa, gdy przyczyną problemu jest kompatybilność
Klient, który natywnie dekoduje zawartość biblioteki, może zmienić obciążające procesor lub GPU transkodowanie wideo w Direct Play. To zmiana jakościowa: serwer nie musi już dekodować i ponownie kodować obrazu tylko po to, aby spełnić wymagania tego punktu końcowego. W przypadku jednego problematycznego telewizora lub urządzenia do strumieniowania zmiana punktu końcowego może więc rozwiązać więcej problemów niż rozbudowa mocy obliczeniowej serwera.
Aktualne tabele obsługi kodeków przez klientów Jellyfin pokazują, że kompatybilność różni się między przeglądarkami, Android TV, iOS, Roku, Kodi, klientami desktopowymi, kontenerami, formatami audio, trybami HDR i napisami. Biblioteka może być ogólnie „standardowa”, a mimo to napotkać ograniczenia konkretnego punktu końcowego.
Warunkiem zmiany decyzji jest skala floty urządzeń. Wymiana lub zmiana jednego klienta jest atrakcyjna, gdy jeden punkt końcowy powoduje większość transkodowań. Jeśli pięciu użytkowników zdalnych, kilka starszych telewizorów i urządzenia mobilne wymagają różnych konwersji, rozwiązywanie problemu kompatybilności po kolei dla każdego punktu końcowego może być operacyjnie droższe niż zapewnienie serwerowi wystarczającej centralnej mocy konwersji.
Żadne z tych ulepszeń nie pomoże, gdy wąskim gardłem jest dostarczanie danych
Buforowanie może wystąpić nawet wtedy, gdy format odtwarzania jest w pełni kompatybilny, a serwer ma niewykorzystaną moc transkodowania. Plik o wysokiej przepływności przesyłany przez słabe Wi-Fi, ograniczona prędkość wysyłania przez WAN lub przeciążone połączenie klienta mogą zagłodzić odtwarzanie, podczas gdy wszystkie wykresy obciążenia obliczeniowego wyglądają prawidłowo.
Dokumentacja multimediów Androida wymienia dekodowanie przez platformę i obsługę kontenerów, ale obsługiwane formaty multimediów odpowiadają tylko na pytanie, czy urządzenie może obsłużyć dany format — nie zaś, czy sieć może dostarczyć strumień z wystarczającą prędkością. Kompatybilność i przepustowość transmisji to niezależne warunki.
To najważniejsza zasada zatrzymania w tym modelu. Jeśli podczas sesji Direct Play występuje buforowanie, gdy serwer wysyła dane z prędkością niższą od swoich możliwości, a pomiary sieci wykazują utratę pakietów lub niewystarczającą przepustowość, nie wymieniaj klienta z powodów związanych z kodekiem i nie kupuj wydajniejszego transkodera. Najpierw napraw ścieżkę dostarczania danych.
Moc transkodowania zyskuje na znaczeniu, gdy konwersja jest nieunikniona na dużą skalę
W niektórych gospodarstwach domowych nie da się ujednolicić każdego urządzenia końcowego ani wszystkich warunków sieciowych. Użytkownicy zdalni mogą potrzebować niższych przepływności, starsze telewizory mogą nie obsługiwać nowszych kodeków, a urządzenia członków rodziny mogą pozostawać poza kontrolą właściciela. Gdy takie konwersje są częste i uzasadnione, centralna wydajność transkodowania staje się skalowalnym rozwiązaniem.
FFmpeg rozróżnia kopiowanie strumienia od zadań dekodowania, filtrowania i kodowania. Jego dokumentacja transkodowania pokazuje, dlaczego moc serwera ma znaczenie dopiero po pojawieniu się konieczności konwersji: kopiowanie zgodnych strumieni pozwala uniknąć operacji na kodeku, natomiast konwersja wprowadza etapy dekodowania i kodowania oraz może dodawać filtry.
Zmodernizuj serwer, gdy zmierzone transkodowanie nie utrzymuje prędkości odtwarzania w czasie rzeczywistym, silnik wideo jest przeciążony lub liczba jednoczesnych, nieuniknionych konwersji przekracza możliwości obecnego systemu. Nie używaj szybszego GPU, aby kompensować jeden niedrogi klient, który mógłby odtworzyć te same pliki bezpośrednio.
Napisy i HDR mogą zmienić pozornie zgodny strumień
Urządzenie może obsługiwać dany kodek wideo, a mimo to uruchamiać intensywne przetwarzanie z powodu wybranych napisów lub wymagań HDR. Na niektórych klientach napisy oparte na obrazach mogą wymagać wypalenia w obrazie wideo, a mapowanie tonów z HDR do SDR może dodać kolejny etap przetwarzania, gdy wyświetlacz lub ścieżka klienta nie potrafi prawidłowo wyświetlić źródła.
Opublikowane przez Apple specyfikacje odtwarzania dla Apple TV zawierają informacje o obsługiwanych formatach wideo, profilach, liczbie klatek na sekundę, trybach HDR i możliwościach audio. Specyfikacje formatów urządzenia pokazują, dlaczego stwierdzenie „obsługuje HEVC” lub „obsługuje 4K” nie wystarcza do pełnego sprawdzenia zgodności; na rzeczywisty sposób odtwarzania nadal mogą wpływać profil, kontener, HDR, dźwięk i obsługa napisów.
Przetestuj dokładnie tę kombinację, która powoduje problem, zanim wymienisz sprzęt. Wyłącz napisy, wybierz napisy tekstowe, spróbuj wersji SDR albo zmień ścieżkę dźwiękową i sprawdź, czy transkodowanie wideo ustanie. Jeśli jedna funkcja przełącza sposób obsługi sesji, naprawienie tego problemu ze zgodnością może być tańsze niż rozbudowa całego serwera.
Porównaj koszt naprawy jednego punktu końcowego z kosztem naprawy każdego strumienia
Modernizacje klientów to lokalne rozwiązania. Są skuteczne, gdy problem powoduje jedno urządzenie w salonie, i mogą zmniejszyć zużycie energii serwera podczas każdej przyszłej sesji na tym punkcie końcowym. Ich wadą jest powtarzalność: każdy niezgodny klient może wymagać własnej aplikacji, konfiguracji lub zmiany sprzętu.
Modernizacje serwera są scentralizowane. Wydajniejszy transkoder może obsługiwać kilka słabszych klientów bez zmieniania każdego punktu końcowego, ale wtedy serwer przejmuje większą odpowiedzialność za zasilanie, chłodzenie, sterowniki i złożoność sprzętowej akceleracji. Sąsiadujące porównanie ZimaSpace dotyczące kompaktowego serwera multimediów x86 z urządzeniem Android TV przedstawia szerszy kontekst ról urządzeń; ten schemat zawęża wybór do przyczyny buforowania.
Decyzja zmienia się z podejścia „najpierw klient” na „najpierw serwer” wraz ze wzrostem liczby nieuniknionych przypadków konwersji. Jeden niezgodny punkt końcowy przemawia za jego naprawą. Mieszana flota, w której często dochodzi do konwersji zdalnej, przemawia za zwiększeniem centralnej wydajności transkodowania — pod warunkiem że sieć nie jest czynnikiem ograniczającym.
Skorzystaj z tego drzewa decyzyjnego dotyczącego kolejności modernizacji
Schemat powinien kończyć się wykonalną kolejnością działań, a nie ogólną rekomendacją. W miarę możliwości uruchom ten sam problematyczny tytuł na co najmniej dwóch klientach, sprawdź przyczynę odtwarzania wskazaną przez serwer i zmieniaj tylko jedną zmienną naraz, aby nie pomylić ograniczenia klienta z ograniczeniem serwera.
| Zaobserwowany warunek odtwarzania | Pierwsze działanie | Dlaczego |
|---|---|---|
| Buforowanie podczas odtwarzania bezpośredniego | Przetestuj dostarczanie danych przez sieć i pamięć masową | Nie działa ani zgodność, ani wydajność transkodowania |
| Jeden klient wymusza transkodowanie wideo | Najpierw popraw zgodność klienta | Można całkowicie usunąć konwersję |
| Wybór napisów uruchamia wypalanie ich w obraz | Najpierw zmień ścieżkę napisów lub klienta | Wąski problem ze zgodnością generuje duże obciążenie |
| Wiele klientów wymaga nieuniknionego transkodowania | Zwiększ wydajność transkodowania serwera | Jedna centralna modernizacja obsłuży całą mieszaną flotę |
| Należy zmniejszyć przepływność zdalnego odtwarzania | Sprawdź wysyłanie danych, a następnie wydajność transkodowania | Przepustowość konwersji i sieci WAN to odrębne ograniczenia |
| Prędkość transkodowania pozostaje poniżej czasu rzeczywistego | Zmodernizuj lub włącz odpowiednią akcelerację | Pojemność serwera jest teraz zmierzonym ograniczeniem |
Rezultat powinien dać się przetestować po każdym kroku. Zmiana po stronie klienta przynosi sukces, gdy sesja przechodzi w tryb Direct Play lub lżejszy tryb Direct Stream. Zmiana po stronie serwera przynosi sukces, gdy wymagane transkodowanie zapewnia płynne odtwarzanie z zapasem wydajności przy oczekiwanej liczbie jednoczesnych strumieni.
Jeśli żadna ze zmian nie wpłynie na wadliwy strumień, wróć do pierwszego etapu i sprawdź dostarczanie danych, pamięć masową lub przyczynę zgłoszoną przez aplikację. Drzewo decyzyjne jest użyteczne tylko wtedy, gdy potrafi powstrzymać przed nieistotnym ulepszeniem.
Najczęściej zadawane pytania
Czy szybszy transkoder poprawia działanie trybu Direct Play?
Nie. Tryb Direct Play eliminuje konwersję wideo, więc dodanie mocy procesora lub układu GPU do transkodowania nie przyspieszy dekodowania oryginalnego strumienia przez klienta. Jeśli tryb Direct Play buforuje, sprawdź dostarczanie danych przez sieć, sposób odtwarzania przez klienta oraz pamięć masową.
Czy same napisy mogą wymusić transkodowanie wideo?
Tak. Niektóre formaty napisów lub kombinacje klienta wymagają wypalenia napisów w obrazie wideo, co zmienia strumień, który w innym przypadku byłby kompatybilny, w zadanie przetwarzania wideo. Przetestuj ten sam plik bez napisów, zanim obwinisz kodek wideo.
Czy należy wymienić wszystkie stare klienty, aby uniknąć transkodowania?
Niekoniecznie. Wymiana jednego problematycznego urządzenia końcowego może być efektywna, ale wymiana całej zróżnicowanej floty urządzeń już nie musi. Pozostaw kompatybilne klienty w trybie Direct Play, a transkodowanie serwerowe zapewnij dla urządzeń lub warunków zdalnych, które rzeczywiście nie mogą uniknąć konwersji.
Usuń przyczynę, która pojawia się jako pierwsza na ścieżce odtwarzania
Wybierz najpierw kompatybilność klienta, gdy niewielka liczba urządzeń końcowych powoduje możliwe do uniknięcia transkodowanie. Najlepszym rezultatem nie jest szybsze transkodowanie, lecz wyeliminowanie zbędnej konwersji i umożliwienie serwerowi wysyłania oryginalnych multimediów.
Wybierz najpierw moc do transkodowania, gdy konwersja jest rzeczywiście wymagana na wielu urządzeniach lub w zdalnych sesjach, a obecny serwer nie jest w stanie utrzymać przetwarzania w czasie rzeczywistym. Potwierdź obsługę akceleracji sprzętowej i wydajność przy jednoczesnym obciążeniu, korzystając z dokładnych kodeków, napisów, trybów HDR i rozdzielczości wyjściowych używanych w Twoim domu.
Jeśli strumień już korzysta z trybu Direct Play albo sieć nie jest w stanie obsłużyć dostarczanej przepływności, przestań porównywać te dwa ulepszenia. Właściwym pierwszym rozwiązaniem jest usunięcie najwcześniejszego zmierzonego wąskiego gardła na ścieżce odtwarzania, a nie wybór komponentu z wyższym wynikiem benchmarku.
Porównania produktów
Więcej do przeczytania

Docker czy maszyna wirtualna dla Plexa: która opcja wdrożenia będzie odpowiednia?
Warunkowa ocena wdrożenia Plexa w Dockerze, na maszynach wirtualnych lub w Dockerze uruchomionym w maszynie wirtualnej, oparta na wspólnych wymaganiach operacyjnych.

8 GB vs 16 GB vs 32 GB RAM dla Plexa: Który poziom odpowiada Twojemu obciążeniu?
Wybierz 8 GB do oszczędnego serwera Plex, 16 GB do umiarkowanej liczby współdzielonych aplikacji lub 32 GB do maszyn wirtualnych i ograniczonych pod względem...

Czy dedykowane przyspieszenie sprzętowe daje Plexowi znaczącą przewagę?
Akceleracja sprzętowa sprawdza się w przypadku obsługiwanych, powtarzających się transkodowań; użycie wyłącznie procesora nadal jest odpowiednie do odtwarzania bezpośredniego, sporadycznych konwersji i nieobsługiwanych etapów.

