QNapi / qnapi

Qt-based, multi-engine, multi-platform subtitle downloader
http://qnapi.github.io
290 stars 39 forks source link

Przetwarzanie napisów (błąd?) #50

Closed andrewpros closed 8 years ago

andrewpros commented 8 years ago

Czy ustawiając przetwarzanie tak

config

Powinno mi zawsze konwertować na SRT?

Bo jeżeli tak, to tego nie robi.

krzemin commented 8 years ago

No raczej powinno. A co robi? Sprawdź czy taki sam rezultat jest przy ręcznej konwersji (Tray -> Konwertuj napisy). Co się dzieje, gdy zmienisz format z SRT na jakiś inny? A najlepiej będzie, jeśli dostarczysz oryginalny plik i plik zapisany przy włączonej opcji.

andrewpros commented 8 years ago

Po kodzie sprawdziłem i mam pewne wnioski. Ale może odpowiem najpierw na pytania.

Co robi? Robi plik srt, ale w środku jest oryginalny format, w tym wypadku mDVD. Ręcznie nie sprawdzałem wcześniej, ale nie działa, nie wykrywa fps, a pod debuggerem dziwny fps. Nie zmieniałem formatu, mpl2 i txt to są dinozaury, których mój sprzęt nie obsługuje, ale jeżeli pytasz czy konwertuje do innych formatów to nie.

Z MPL2 konwertuje, z mDVD nie, bo potrzebuje fps, a jest 0 i to myślałem jest problem. Tu jest zawsze false https://github.com/QNapi/qnapi/blob/master/src/subconvert/subtitleconverter.cpp#L62 i fps 0.

Mam 3 odcinki, oryginalne pliki zawierają mpl2, mdvd, mpl2 - konwertuje na => srt, mdvd, srt

Z plikami jest wszystko ok, teraz podczas pisania coś mi zaświtało.

Debugger wali, że brakuje MediaInfo.dll, mimo to program nie wywala, on musi być czy lib jest statyczny? Bo teraz to już jestem zmieszany, nie zakładałem braku plików.

Ściągnąłem dla porównania najnowsze wydanie portable qnapi i w paczce nie ma MediaInfo.dll, ale jest ffprobe, przypadkiem przeglądałem starsze committy, czy ffprobe nie został usunięty?

Tak więc może to głupio zabrzmi z mojej strony, ale jest może szansa, że zapomniałeś po prostu zaktualizować instalator o dodanie MediaInfo, a wywalenie ffprobe?

krzemin commented 8 years ago

W 0.2.0 używane było ffprobe do pozyskiwania informacji o pliku. W 0.2.1 nie będzie już ffprobe, a będzie libmediainfo. DLL-ka jest w repozytorium (deps/libmediainfo/bin) i powinna być kopiowana do win32/out przy wykonaniu komendy make install (czy tam mingw-32make install). Instalator dla 0.2.1 też powinien ją chwycić (ale instalator trzeba sobie osobno zbudować NSIS-em). Do celów deweloperskich można ją ręcznie wrzucić do katalogu obok binarki.

Teraz co do samego zachowania programu, gdy odczytanie informacji o pliku się nie powiedzie - myślę że tu powinniśmy zostawiać oryginalny format i oryginalne rozszerzenie. W końcu lepiej dopasować jakikolwiek plik, niż wywalić błąd albo zmieniać tylko rozszerzenie.

andrewpros commented 8 years ago

No to się wyjaśniło.

Kod mam od 0.2.1, a exe kopiowałem do mojej zwyczajnej wersji, taką jaką każdy instaluje u siebie, bo od razu chciałem mieć poprawki, ale wersja 0.2.1 nie wyszła jeszcze, więc nie ma też MediaInfo w katalogu i nie działa.

Więc to ja się zapędziłem, kompletnie pominąłem, że 0.2.1 nie wyszło. Po skopiowaniu MediaInfo działa jak należy.

Więc sorry za kłopot.

Co do samego zachowania programu to nie mam zarzutu, tak powinno być, tylko u mnie po prostu i chyba u innych podobnie, jedyny sprawdzony format to SRT, przynajmniej jeżeli chodzi o sprzęt, tylko wtedy mam gwarancję, że wszystko odtworzy zawsze, bo na playerach PC łyka wszystko tak czy siak.

Mpl2 i txt (tmplayer) to starocie, których nikt nie używa już, z tego co wiem tylko w pl takie popularne, głównie dlatego, że przez lata w bazach się tego nazbierało, ale chyba nowych to nikt w tym nie robi.

I jeszcze jest popularny mDVD, ale ten z kolei na wielu sprzętach powoduje, że napisy się rozjeżdżają, u mnie też tak jest, nie wiem w czym problem, bo to format klatkowy i powinno być najłatwiej obsłużyć, ale wiem że tak jest na wielu urządzeniach, miałem wcześniej tuner player i też było to samo, teraz na tv jest to samo i w necie piszą, że mają o samo.

Zrobiłem test mały i się okazuje, że dodając jako pierwszą klatkę w mDVD fps w formacie {1}{1}fps tv nagle bez problemu sobie radzi.

Myślę, że nie ma jasnej specyfikacji i wszyscy zapominają, że w mDVD najlepiej jakby pierwsza klatka zawierała fps, zwiększa to kompatybilność ze sprzętem, pewno nie każdym, ale z częścią na pewno, tylko w napisach rzadko to widuję, więc to programy by musiały dodawać.

Mi to i tak nie pomoże, nie mam pewności, że z każdym materiałem by to pomogło, a SRT sprawdzone.

I jeszcze jedno, ale nie będę zakładał kolejnego problemu, bo w sumie mi to niepotrzebne, z konwersją kodowania jest jakiś problem.

Jak wybiorę konwertuj z automatycznym wykrywaniem i zmianą na UTF-8 to będę miał w napisach krzaki.

Użyłem tej funkcji tylko dlatego, że tak miałem w napi i działało, ale tu nie działa, więc wyłączyłem i jest ok, widocznie tv radzi sobie z oryginalnymi.

Napisy te same z napi i z qnapi, jedyna różnica między nimi to ta, że napi robi w utf-8, a qnapi utf-8 bez BOM, w notepad++ wszystkie ogonki oczywiście są w obu przypadkach, takę tym bardziej jestem zdziwiony.

Przy użyciu napisów z napi dodatkowo tv nie pozwala już wybrać zmiany kodowania, a przy napisach z qnapi mam taką opcję, jakby tv stwierdził, że jednak nie do końca to są te utf-8, bo takie obsługują wszystkie symbole i nie powinno być opcji zmiany kodowania.

Jak te napisy z qnapi przekonwertuję w notepad++ z utf8 bez BOM do utf8 to magicznie zaczyna działać tak samo jak w napi i opcja zmiany kodowania w tv te znika.

Także nie wiem czy to sprawka braku BOM, wymagane by było? Kij wie, możesz zechcesz to poprawić.

Tak czy siak dzięki.