FFDShow, AVC1 i napisy wyprzedzają

0

Nakombinowałem się teraz przez dobrą godzinę, dlaczego idealnie dopasowane napisy nie pasują mi do mojej wersji filmu. Ktoś zwalił je? Jednak nie. Trudno, aby to się wydarzyło dla 3 innych filmów w identycznej kompresji. Streszczenie problemu? FFDShow Haali AVC1 H.264 Subtitles problem!

Już po 3 minutach filmu.. o 8 sekund za wcześnie

Więc w czym problem?

Diagnoza

Na starcie GSpot i analiza pliku. Dowiaduję się, że to H.264/AVC1. FFDShow obsługuje dwa dekodery w przypadku takich plików, więc na starcie zmieniam libavcodec na ffmpeg. Pamiętajmy, że korzystam z paczki KLite’a z którą co prawda bywało już trochę problemów – cóż, dla monstrów kodekowych trzeba czasem się poświęcić. Zastosuj, reload filmu, skok do felernej 3 minuty. Wciąż to samo.

Wyłączam ostatecznie ten kodek. Spoko, MPC dekoduje film z wewnętrznego kodeku + wsparcie GPU i odziwo: napisy są synchro z filmem. Problem jest tylko taki, że musiałbym w tym wypadku czytać napisy renderowane przez MPC, a nie FFDShow co tworzy ‚brzydkie napisy‚. Czyli brak rozwiązania dla mnie póki co.

Powrót do wcześniejszego stanu. Im dalej w filmie, tym napisy bardziej wybiegają w przyszłość. Zauważyłem, że film dziwnym prawem renderuje się z 24 klatkami/s, a zakodowany jest w 25. Gdzie ta jedna klatka się gubi? Nieważne, jeśli w ciągu 3 minut naliczyliśmy 180*24=4320 zamiast 180*25=4500 klatek (napisy dopasowane są właśnie w zakresie klatek, a nie czasu!), to 180/24 = nasze zaginione około 7,5sekund.

Rozwiązanie

Jak się okazało splitter Haali złapał w przypadku tego filmu jakąś grypę i to dzięki niemu działy się te cyrki. Jak to naprawić? No najłatwiej odpalić „Manage preferred DirectShow source filters” z skrótów konfiguracyjnych KLite’a i zmienić ten filr na nasza drugą możliwość: Gabest’a.

Apply, Close, Violla!

Efekt końcowy? Paszczak zgrał się z tekstem, napisy wciąż z FFDShow i to mnie cieszy.

Tagi: , , , ,

Skomentuj