Pionowe klipy z telefonu zwykle nie przechodzą transkodowania, ponieważ orientacja uruchamia inną ścieżkę filtrów, podczas gdy rzeczywistą przyczyną błędu są kodek, liczba klatek na sekundę, HDR lub ograniczenia sprzętowe.
Zachowaj orientację pionową i poziomą jako pierwszą kontrolowaną zmienną, ale na tym nie poprzestawaj. Porównaj metadane obrotu, tryb liczby klatek na sekundę, profil kodeka, głębię bitową, stan HDR oraz dokładne etapy sprzętowe wybrane przez serwer. Celem jest zidentyfikowanie pierwszego etapu potoku, który różni się od działającego klipu.
Udowodnij, że wyzwalaczem jest orientacja pionowa
Porównaj jeden wadliwy pionowy klip z działającym poziomym klipem nagranym tym samym telefonem, w tym samym trybie aparatu, rozdzielczości i liczbie klatek na sekundę oraz o zbliżonym czasie trwania. Zapisz decyzję dotyczącą odtwarzania bezpośredniego i transkodowania dla obu plików.
Pliki pionowe często przechowują orientację wyświetlania w postaci metadanych obrotu, zamiast fizycznie obracać każdy piksel, dlatego transkoder może uruchamiać dodatkową ścieżkę obrotu lub skalowania tylko dla wadliwego klipu.
Jeśli pozioma kopia utworzona z tego samego źródła transkoduje się pomyślnie, sprawdź obsługę orientacji. Jeśli oba pliki kończą się błędem, kształt pionowy był tylko zbiegiem okoliczności i priorytetem powinien być kodek lub ścieżka liczby klatek na sekundę.
Sprawdź obrót i działanie filtrów
Odczytaj metadane strumienia i kontenera oraz sprawdź, czy obrót jest zapisany w macierzy wyświetlania, w danych dodatkowych, czy został już uwzględniony w wymiarach pikseli. Porównaj pierwszy błąd filtra w dzienniku transkodera.
Materiały wideo z urządzeń mobilnych często korzystają z metadanych obrotu urządzeń mobilnych; dekodowanie obsługiwane w pozostałych aspektach może zakończyć się później, gdy sprzętowy filtr lub enkoder nie zaakceptuje obróconej geometrii klatki.
Przetestuj jedno transkodowanie wyłącznie programowe z tym samym rozmiarem wyjściowym. Jeśli transkodowanie programowe działa, a sprzętowe kończy się błędem podczas obrotu lub skalowania, zachowaj oryginał i zmień ścieżkę akceleracji lub filtrów, zamiast konwertować całą bibliotekę.
Sprawdź osobno zmienną liczbę klatek na sekundę
Sprawdź, czy wadliwe klipy z telefonu korzystają ze zmiennej liczby klatek na sekundę, podczas gdy pomyślnie odtwarzany plik porównawczy ma stałą liczbę klatek na sekundę. Poszukaj błędów znaczników czasu, czasu trwania klatek lub synchronizacji w pobliżu miejsca wystąpienia problemu.
Telefony często nagrywają ze zmienną liczbą klatek na sekundę, aby dostosować się do warunków nagrywania, a takie działanie mechanizmu czasowego może ujawnić błąd transkodera, który pozornie koreluje z orientacją pionową.
W ramach testu normalizuj jedną kopię do stałej liczby klatek na sekundę wyłącznie w celu rozróżnienia przyczyny. Jeśli to zadziała, zaktualizuj lub skonfiguruj ponownie wadliwy potok; nie zakładaj, że każdy pionowy klip wymaga trwałej konwersji.
Porównaj kodek, HDR i możliwości sprzętu
Zapisz profil HEVC lub H.264, głębię bitową, format chrominancji, metadane HDR oraz dokładny sprzętowy dekoder i enkoder wybrane przez system. Tryb portretowy telefonu może być włączany wraz z innym profilem nagrywania.
Nowoczesny potok transkodowania składa się z etapów dekodowania, filtrowania, przetwarzania kolorów i kodowania, więc powodzenie na jednym etapie nie dowodzi, że cała przyspieszana sprzętowo ścieżka obsługuje źródło.
Wyłączaj po jednym etapie akceleracji. Pomyślne dekodowanie programowe połączone ze sprzętowym kodowaniem znacznie precyzyjniej zawęża źródło problemu niż jednoczesna zmiana wszystkich ustawień.
Po jednej zmianie ponownie przetestuj rzeczywistego klienta
Zastosuj najmniejszą potwierdzoną poprawkę i odtwórz oryginalny pionowy klip w kliencie, który wywołał transkodowanie. Obserwuj dzienniki podczas uruchamiania, przewijania i kilku minut odtwarzania.
Powiązany przewodnik ZimaSpace dotyczący konfiguracji domowego serwera multimediów pomaga przeprowadzić końcowy test w rzeczywistym środowisku multimediów rodzinnych, zamiast oceniać powodzenie wyłącznie na podstawie odizolowanego polecenia FFmpeg.
Problem można uznać za rozwiązany, gdy oryginalny plik wielokrotnie transkoduje się bez błędów obrotu, synchronizacji czasowej ani sprzętowych. Zachowaj dzienniki sprzed i po zmianie, aby móc porównać je po przyszłej aktualizacji telefonu lub serwera.
Często zadawane pytania
Czy film w formacie 9:16 automatycznie wymaga specjalnego transkodera?
Nie. Sama orientacja nie jest najważniejszym problemem. Bardziej przydatnymi wskaźnikami są metadane obrotu, sposób działania zmiennej liczby klatek na sekundę, profil kodeka, metadane HDR oraz wybrana ścieżka filtrów sprzętowych.
Dlaczego ten sam pionowy klip może być odtwarzany bezpośrednio, ale kończyć się błędem po rozpoczęciu transkodowania?
Odtwarzanie bezpośrednie może przekazać oryginalny strumień bez zmian, podczas gdy transkodowanie uruchamia dekodowanie, obrót lub skalowanie, mapowanie tonów, kodowanie i zapis w pamięci tymczasowej.
Czy wszystkie filmy z telefonu należy najpierw konwertować do H.264?
Tylko wtedy, gdy kontrolowane porównanie wykaże, że rzeczywistym ograniczeniem jest zgodność kodeka lub sprzętu. Masowa konwersja przed diagnozą usuwa istotne informacje i tworzy niepotrzebną pracę.
Wsparcie i wskazówki
Więcej do przeczytania

Czy Plex może współdzielić kartę graficzną z innym kontenerem Dockera?
Plex i inny kontener często mogą korzystać z tego samego układu GPU, ale należy przetestować obsługę sterowników, mapowanie urządzeń, obciążenie silnika wideo, pamięć oraz...

Jak ustalić, czy błąd Plex pochodzi od klienta, czy od serwera
Odtwórz ten sam przypadek na innym kliencie, porównaj ścieżkę sesji, a następnie zbierz dowody z serwera dopiero wtedy, gdy zakres analizy wskaże, gdzie faktycznie...

Jak skonfigurować pamięć podręczną Plex i tymczasową pamięć na transkodowane pliki
Chroń trwały stan Plex, umieszczając tymczasowe pliki transkodowania na odpowiedniej pamięci lokalnej, a następnie zweryfikuj czyszczenie, ilość wolnego miejsca i zachowanie podczas ponownego uruchamiania.

