Dlaczego napisy uruchamiają transkodowanie, gdy wideo jest odtwarzane bezpośrednio?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Napisy uruchamiają transkodowanie, gdy wybrany klient nie może renderować danego strumienia napisów przy zachowaniu oryginalnego sposobu odtwarzania wideo.

Film może być odtwarzany bezpośrednio bez żadnych problemów do momentu włączenia napisów, ponieważ wideo, dźwięk i napisy są negocjowane jako jedna sesja zależna od klienta. Serwer może potrzebować wyodrębnić ścieżkę tekstową, zachować złożone formatowanie ASS, nałożyć grafiki PGS lub VobSub oparte na obrazach albo utrzymać synchronizację napisów podczas konwersji dźwięku. Najpierw odtwórz zmianę na jednym pliku i jednym kliencie, a następnie dokładnie ustal, który strumień i która reguła zgodności uległy zmianie.

Potwierdź, że napisy są jedyną zmienioną zmienną

Odtwórz ten sam tytuł na tym samym urządzeniu, z tą samą jakością i wyłączonymi napisami, a następnie włącz jedną ścieżkę napisów bez zmieniania dźwięku, jakości zdalnego odtwarzania ani aplikacji do odtwarzania. Zapisz stan panelu serwera przed i po zmianie.

Decyzja dotycząca odtwarzania powinna wskazywać, czy wideo zmieniło tryb z Direct Play lub Direct Stream na pełne transkodowanie, oraz podawać powód związany z napisami, jeśli serwer go ujawnia. W przypadku dotyczącym rozwiązywania problemów z Plex zaleca się sprawdzenie aktywnego strumienia, ponieważ tryb odtwarzania zmienia się tylko przy określonej kombinacji napisów i klienta.

Jeśli odtwarzanie już wcześniej odbywało się z transkodowaniem, nie przypisuj całej konwersji napisom. Zachowaj pierwotny powód — na przykład zdalną przepływność, nieobsługiwany dźwięk lub niezgodność wideo — i odnotuj, czy napisy powodują wypalanie w obraz, czy tylko pozostają wybrane.

Ustal, czy napisy są tekstowe, stylizowane czy oparte na obrazach

Sprawdź wybraną ścieżkę zamiast polegać wyłącznie na etykiecie języka. SRT i WebVTT to proste formaty tekstowe; ASS lub SSA mogą zawierać czcionki, pozycjonowanie, animacje i formatowanie; PGS i VobSub to strumienie napisów oparte na obrazach.

Nieobsługiwane formaty często wymagają od serwera renderowania każdego napisu na klatkach wideo. Zgłoszenie dotyczące Jellyfin opisuje, jak nieobsługiwane formaty napisów uruchamiają wypalanie w obraz i mogą opóźniać lub zatrzymywać proces transkodowania.

Porównaj inną ścieżkę z tego samego tytułu, najlepiej zwykłą ścieżkę SRT w tym samym języku. Jeśli SRT zachowuje odtwarzanie bezpośrednie, a ASS lub PGS wymusza transkodowanie wideo, kodek wideo nie jest głównym problemem — klient nie może bezpośrednio renderować wybranej reprezentacji napisów.

Typ napisów Typowe zadanie klienta Prawdopodobny tryb awaryjny serwera
SRT lub WebVTT Renderowanie zwykłego tekstu zsynchronizowanego w czasie Wyodrębnienie, konwersja lub bezpośrednie renderowanie
ASS lub SSA Renderowanie czcionek, pozycjonowania i efektów Usunięcie formatowania lub wypalenie w obraz
PGS lub VobSub Nakładanie zsynchronizowanych obrazów napisów Nakładanie przez klienta lub wypalenie w obraz

Traktuj tabelę jako mapę diagnostyczną, a nie uniwersalną listę zgodności. Ten sam format może być odtwarzany bezpośrednio w jednej aplikacji, a w innej wymuszać wypalanie w obraz, ponieważ obsługa napisów zależy od implementacji odtwarzacza.

Porównaj aplikację klienta, a nie tylko telewizor lub urządzenie do strumieniowania

Przetestuj to samo konto, plik, ścieżkę dźwiękową i napisy w innym kliencie, na przykład w odtwarzaczu komputerowym, aplikacji mobilnej, przeglądarce lub innej aplikacji telewizyjnej. Wyświetlacz, który dekoduje kodek wideo, może nadal polegać na aplikacji w zakresie renderowania napisów.

Możliwości klienta mogą stanowić pełną granicę zgodności. Jedno zgłoszenie dotyczące funkcji Android TV opisuje złożone napisy, które urządzeniu trudno było renderować lokalnie, i wyraźnie wskazuje, że wypalanie po stronie serwera wymaga transkodowania.

Jeśli inny klient odtwarza bezpośrednio tę samą kombinację, pozostaw serwer i plik multimedialny bez zmian, a następnie sprawdź w niedziałającej aplikacji preferencję wypalania napisów, wybór natywnego odtwarzacza i wersję aplikacji. Wymiana sprzętu serwera nie doda obsługi napisów ograniczonemu klientowi.

Sprawdź, czy konwersja dźwięku zmienia sposób obsługi napisów

Powtórz test z kompatybilną ścieżką dźwiękową, taką jak stereo AAC lub AC-3, jeśli jest dostępna, pozostawiając bez zmian wideo i ścieżkę napisów. Niektóre klienty telewizorów mogą nakładać napisy tylko podczas pełnego odtwarzania bezpośredniego i żądać wypalania w obraz, gdy serwer musi wykonać remuksowanie lub transkodowanie dźwięku.

Analiza klienta Plex dokumentuje tę zależność: w przypadku niektórych klientów telewizorów Smart TV transkodowanie dźwięku wraz z napisami może wymusić przejście wideo do trybu wypalania w obraz, nawet jeśli sam kodek wideo jest obsługiwany.

Jeśli zmiana wyłącznie ścieżki dźwiękowej przywróci odtwarzanie bezpośrednie z napisami, prawdziwym wyzwalaczem jest połączony profil klienta, a nie sam plik napisów. Zachowaj obsługiwaną ścieżkę dźwiękową, użyj bardziej zaawansowanego klienta lub utwórz zgodną dodatkową ścieżkę dźwiękową zamiast ponownie kodować oryginalne wideo.

Wybierz najmniej inwazyjny sposób na uniknięcie wypalania napisów

Zacznij od ścieżki napisów, którą klient może renderować natywnie. Jeśli stylizacja nie jest istotna, wybierz prawidłowo zsynchronizowane napisy tekstowe albo użyj klienta obsługującego oryginalną ścieżkę ASS, PGS lub VobSub.

Nie wykonuj automatycznie OCR ani konwersji całej biblioteki. Konwersja tekstu może powodować utratę pozycjonowania, oznaczeń wymuszonych napisów, informacji dla osób niedosłyszących, czcionek i dokładności synchronizacji. Zachowaj oryginalne napisy i utwórz dodatkową, zgodną ścieżkę tylko dla tytułów i klientów, które jej potrzebują.

Wyjaśnienie ZimaSpace dotyczące kosztu wypalania napisów w obraz opisuje powiązany mechanizm występujący wtedy, gdy serwer nadal wykazuje wysokie użycie procesora, mimo że sprzętowe transkodowanie wideo jest włączone.

Jeśli wypalania napisów w obraz nie da się uniknąć, sprawdź, czy serwer może obsłużyć je w czasie rzeczywistym, zanim zezwolisz na kilka zdalnych sesji. Procesor graficzny może przyspieszać dekodowanie i kodowanie wideo, podczas gdy renderowanie napisów lub przetwarzanie filtrów nadal tworzy etap ograniczany przez procesor.

Zweryfikuj końcową kombinację odtwarzania na rzeczywistym kliencie

Powtórz test na dokładnie tym samym kliencie zdalnym lub przeznaczonym do salonu, używając wybranych ścieżek wideo, dźwięku i napisów. Potwierdź tryb odtwarzania, powód transkodowania, użycie procesora i procesora graficznego, buforowanie, wygląd napisów oraz ich synchronizację po przewijaniu.

Powtórz test po zatrzymaniu i wznowieniu tytułu, ponieważ niektóre klienty podczas wznawiania ponownie negocjują inną ścieżkę odtwarzania. Przetestuj również jedną ścieżkę napisów wymuszonych i jedną ścieżkę obejmującą wszystkie dialogi, jeśli obie są dostępne.

Problem jest rozwiązany dopiero wtedy, gdy wybrany klient renderuje napisy bez konwersji wideo albo wykonuje niezbędne wypalanie w obraz ze stabilną prędkością i jakością. Udokumentuj działającego klienta, typ napisów, ścieżkę dźwiękową i preferencję wypalania, aby po przyszłej aktualizacji aplikacji można było dokonać porównania z tą samą konfiguracją bazową.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.