Sprzętowe transkodowanie w Plex płynnie odtwarza niekompatybilne materiały, dekodując źródło, przekształcając elementy wymagające zmiany i kodując nowy strumień, który klient może zaakceptować.
Ten rezultat nie jest funkcją Direct Play: Direct Play przesyła zgodne strumienie źródłowe bez konwersji wideo. Sprzętowe transkodowanie staje się istotne dopiero wtedy, gdy Plex uzna, że żądany klient, jakość, napisy, dźwięk lub warunki sieciowe nie pozwalają na wykorzystanie oryginalnego zestawu. Proces najlepiej rozumieć jako potok prowadzący od niezgodności żądania do nowego strumienia wynikowego, z punktem awarii na każdym etapie.
Potok zaczyna się od niezgodności
Plex najpierw musi zdecydować, czy żądane multimedia można dostarczyć bez zmian, przepakować czy przekonwertować. Direct Play to najprostsza ścieżka; Direct Stream zmienia sposób pakowania, zachowując zgodne strumienie elementarne; transkodowanie zmienia obraz, dźwięk lub oba te elementy, aby spełnić wymagania klienta albo ograniczenia dostarczania.
To rozróżnienie ma znaczenie, ponieważ transkodowanie wideo jest zadaniem polegającym na dekodowaniu i kodowaniu, a nie szybszą formą Direct Play. Po rozpoczęciu konwersji serwer tworzy nową reprezentację źródła zamiast po prostu odczytywać i przekazywać oryginalne bajty.
Wyzwalaczem może być obsługa kodeka przez klienta, żądana rozdzielczość, przepływność, obsługa HDR, napisy lub kombinacja ustawień dźwięku zmieniająca całą ścieżkę odtwarzania. Wyjaśnienie mechanizmu należy więc rozpocząć od niezgodności, a nie od modelu GPU.
Dekodowanie sprzętowe zamienia skompresowane źródło w klatki robocze
Skompresowane źródło trafia do dekodera, który odtwarza klatki wideo i stan referencyjny z formatów takich jak H.264 lub HEVC. Akceleracja sprzętowa przenosi obsługiwane zadania dekodowania do silnika multimedialnego, zmniejszając ilość pracy wymaganej od procesora ogólnego przeznaczenia na tym etapie.
Dekodowanie i kodowanie sprzętowe to osobne etapy. Silnik multimedialny musi obsługiwać wejściowy kodek, aby mogło dojść do dekodowania sprzętowego; jeśli go nie obsługuje, Plex może dekodować programowo, nawet gdy późniejszy etap kodowania nadal korzysta z akceleratora.
To wyjaśnia, dlaczego panel należy odczytywać jako wskaźnik potoku, a nie pojedynczą etykietę włączone/wyłączone. Częściowa akceleracja może nadal pozostawić kosztowny etap na procesorze, a niskie użycie CPU nie dowodzi, że każda transformacja odbywa się sprzętowo.
Skalowanie, mapowanie tonów i napisy zmieniają klatki
Po dekodowaniu Plex może zmienić rozmiar obrazu, przetworzyć kolory, przekonwertować HDR do SDR lub nałożyć napisy przed zakodowaniem wyjścia. Są to środkowe etapy potoku i mogą zmienić ścieżkę sprzętową, nawet gdy dekodowanie i kodowanie są obsługiwane.
Przetwarzanie HDR i napisów może wpłynąć na to, czy środkowa część potoku pozostanie wydajna. Najważniejsza teza jest węższa niż dowolna pojedyncza recepta konfiguracyjna: transformacje między dekodowaniem a kodowaniem mogą stać się kosztownym etapem, gdy klient potrzebuje czegoś więcej niż prostej zmiany kodeka.
Jeśli odtwarzanie zwalnia tylko po włączeniu mapowania tonów HDR lub wypalania napisów, kodowanie nie jest automatycznie wąskim gardłem. Przed zmianą wydajności GPU lub ustawień przepływności porównaj to samo źródło po usunięciu tej transformacji.
Kodowanie sprzętowe tworzy nowe wyjście zgodne z klientem
Gdy klatki robocze są gotowe, koder kompresuje je do formatu wyjściowego i jakości wybranych dla danej sesji. W tym miejscu sprzętowe kodowanie wideo może znacznie zmniejszyć obciążenie procesora, pod warunkiem że akcelerator obsługuje żądane wyjście, a Plex ma do niego dostęp.
Po włączeniu kodowania sprzętowego rzeczywista konwersja wideo powinna objawiać się aktywnością sprzętową, a nie tylko wysokim użyciem procesora. Ta weryfikacja potwierdza, gdzie działa etap kodowania, bez zmiany jego funkcji.
Zakodowane wideo jest następnie łączone z wybranym dźwiękiem oraz pakowaniem kontenera lub strumienia. Klient otrzymuje nowy strumień odpowiadający jego żądaniu, a oryginalne źródło pozostaje niezmienione na nośniku.
Płynne odtwarzanie zależy od całej ścieżki wyjściowej
Szybkie kodowanie jest potrzebne tylko wtedy, gdy wymagana jest konwersja, i samo w sobie nie wystarcza. Tymczasowa pamięć transkodowania, dostarczanie przez sieć, bufor klienta oraz dekoder klienta również muszą nadążać. Wydajny GPU może więc przetwarzać klatki na czas, podczas gdy inny etap powoduje widoczne buforowanie.
Płynne odtwarzanie w 4K nadal zależy od wymagań Direct Play, gdy źródło jest już zgodne. Jeśli klient może zaakceptować oryginalny plik, uniknięcie konwersji jest zwykle prostsze niż budowanie szybszej ścieżki konwersji.
Wybierz zgodność klienta lub moc transkodowania jako kolejny obszar decyzji tylko wtedy, gdy rzeczywiście występuje niezgodność z klientem. Sprzętowe transkodowanie jest mostem zapewniającym zgodność; Direct Play pozostaje odrębną ścieżką, a nie końcowym etapem tego samego potoku.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Czym jest stan Plexa i które jego elementy muszą być zachowane?
Trwały stan Plex to informacje, które zachowują konfigurację serwera po ponownym uruchomieniu i odbudowie; multimedia oraz tymczasowe dane transkodowania pełnią odrębne funkcje.

Jak Plex obsługuje uwierzytelnianie w sesjach lokalnych i zdalnych?
Uwierzytelnianie w Plex rozpoczyna się od tożsamości serwera i konta, a następnie lokalne lub zdalne ścieżki sieciowe określają dostępność oraz sposób nawiązywania bezpiecznego połączenia.

Dlaczego wyszukiwanie w Plex może zwalniać wraz ze wzrostem ilości danych biblioteki?
Sam wzrost biblioteki nie jest diagnozą. Zanim obwinisz rozmiar bazy danych, przetestuj kształt zapytań, indeksy, stan pamięci podręcznej, opóźnienia pamięci masowej i aktywność zapisu.

