gKonap
Konwerter napisów do filmów z obsługą Napiprojekt.
Mój pierwszy projekt. Składa się on właściwie z dwu programów:
- konap – bez GUI przeznaczony tylko do pracy w konsoli;
- gKonap – GUI do konap wykonane w GTK z wykorzystaniem Glade.
Program służy do konwersji jednego formatu napisów na drugi. Obsługuje następujące formaty:
- MicroDVD;
- MPL2;
- SubRip;
- TMplayer – tylko jako format wejściowy.
Od wersji 0.5 program posiada możliwość ściągania napisów do filmów z serwisu Napiprojekt.
Cechy programu:
- obsługa pojedynczego pliku, wielu plików, katalogu lub katalogu wraz z podkatalogami (rekursywnie) dla konwersji napisów oraz dla ściągania napisów do filmów;
- obsługa argumentów linii komend dla pliku, plików lub katalogu oraz podejmowanie odpowiednich czynność dla podanych argumentów
- trzy formaty wyjściowe napisów dla konwertowanego pliku MicroDVD, MPL2, SubRip;
- wybór ilości klatek na sekundę dla konwertowanych plików(gdy nie uda się odczytać wartości z pliku wideo);
- automatyczne odczytywanie ilości klatek na sekundę z plików wideo umieszczonych w tym samym katalogu co plik wejściowy – pliki muszą różnić się tylko rozszerzeniem;
- wybór pomiędzy nadpisywaniem oryginalnych plików a dodaniem znacznika do pliku wyjściowego (bez nadpisywania oryginałów);
- możliwość zdefiniowania własnego rozszerzenia dla nowo powstałych plików wyjściowych
- rozpoznawane rozszerzenia dla plików z napisami to: .txt, .srt, .sub;
- rozpoznawane rozszerzenia dla plików wideo to: .avi, .3gp, .asf, .asx, .divx, .mkv, .mov, .mp4, .mpeg, .mpg, .ogm, .qt, .rm, .rmvb, .wmv, .xvid;
- wyjście dla komunikatów programu.
Strona projektu wraz ze źródłami znajduje się tu (Launchpad.net) wraz z możliwością zgłoszenia błędu oraz zapytań.
Kod źródłowy można znaleźć tu.
Repozytorium dla Ubuntu jest tu. Repozytorium jest dla Ubuntu 8.04 ale powinno działać także na nowszych wydaniach Ubuntu.
INSTALACJA
Dodaj moje repozytorium według instrukcji zamieszczonych na tej strone.
Następnie:
$ sudo apt-get gkonap
Jeżeli chcemy mieć funkcje gKonap pod prawym klawiszem myszy (aby np. ściągnąć szybko napisy do filmu lub szybko dokonać konwersji napisów) musimy mieć zainstalowany Nautilus Action Configuration (System – Preferencje – Nautilus Action Configuration). Jeżeli nam go brakuje:
$ sudo apt-get install nautilus-actions
Następnie przechodzimy do Nautilus Action Configuration (System – Preferencje – Nautilus Action Configuration). Klikamy na Dodaj.
W zakładce Menu Item & Action wpisujemy:
w polu Label – gKonap;
w polu Tooltip – Ściągnij, konwertuj napisy.;
w polu Icon – /usr/lib/gkonap/gfx/icon/16×16/gkonap.png ;
w polu Path – gkonap;
w polu Parameters – %M.
W zakładce Conditions wpisujemy:
w polu Filenames – * ;
w polu Mimetypes – */*
zaznaczamy Both;
oraz zaznaczamy Appears if selection has multiple files or folders;
Teraz klikając prawym klawiszem na pliku wideo, pliku z napisami lub katalogu mamy możliwość wybrania gKonap. Program sam zdecyduje jaką akcję podjąć w zależności czy plik to plik wideo, plik z napisami lub katalog.
Prosiłbym także o zgłaszanie błędów programu na tej stronie pomoże to ulepszyć mi program. Sam nie jestem w stanie wychwycić wszystkich błędów. Prosiłbym także o zgłaszanie wszelkich pomysłów ulepszeń oraz zmian (oczywiście na Launchpad.net – Answers/Question, Blueprints).
Program powstał z potrzeby posiadania programu, który tylko konwertuje formaty napisów. Potrzeba ta pojawiła się gdy do odtwarzania plików wideo zacząłem używać media center – XBMC. Sam XBMC jak rozwiązanie jest bardzo dobre ale jak zdążyłem się przekonać jest bardzo wybredny co do formatu napisów do filmów jaki potrafi obsłużyć. Postanowiłem sam napisać jakiś mały programik, który by wykonywał konwersję jednego formatu na drugi. I tak zaczęła się moja przygoda z programowaniem w python’ie.
Screeny:
Strony projektu na Lauchpad.net:
Strona główna – gKonap
Strona z źródłem (Bazaar) – kod
Strona z błędami – bugs
#1 przez chrz dnia Lipiec 12, 2009 - 15:58
Witam
Super pomysł, próbuje uruchomić Twój skrypt na DM8000, to taki tuner satelitarny na architekturze mipsel. Jest w stanie odtwarzać divx z napisami ale tylko w formacie srt. Dlatego całkiem fajnie byłoby gdyby dało się je przerabiać na samym boxie bez użycia kompa.
Wersja Pythona to 2.5.1, kernel Linux dm8000 2.6.12-5.1-brcmstb-dm8000, doinstalowałem parę modłów o które krzyczał przy pierwszym uruchomieniu i skomentowałem linie:
loc = os.path.expandvars(“$LANG”)
locale.setlocale(locale.LC_ALL, loc)
z nimi był poniższy błąd:
root@dm8000:~# /home/root/konap.py -f srt /hdd/Films/Rear.txt
Traceback (most recent call last):
File “/home/root/konap.py”, line 666, in
main()
File “/home/root/konap.py”, line 636, in main
locale.setlocale(locale.LC_ALL, loc)
File “/usr/lib/python2.5/locale.py”, line 476, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
Po tym błędów już nie widzę ale srt i tak się nie tworzy :(
root@dm8000:~# /home/root/konap.py -f srt /hdd/Films/Rear.txt
Zakończono konwersję pliku /hdd/Films/Rear.txt na format srt
Nie pojawia się tu informacja frame rate, czyli pewnie z tym jest jakiś problem. Byłbym wdzięczny za jakieś sugestie.
Pozdr.
chrz
#2 przez chrz dnia Lipiec 12, 2009 - 17:20
Ahhh, nie było komendy file w busybox, dodałem i działa super. Wielkie dzięki za skrypt :) Dodałbym jeszcze do niego od razu konwersję na UTF-8.
Pozdr.
chrz
#3 przez admin dnia Lipiec 13, 2009 - 18:22
Z tym komentowaniem linii dotyczących locale to uważaj odpowiedzialne są one za konwersję liczb (chodzi o przecinek i kropkę – przecinek jako dziesiętny w Polsce a kropka jako dziesiętny dla python’a więc jak będziesz podawał ilość klatek do podawaj z kropką).
Z tą konwersją do UTF-8 to się pomyśli ale i tak większość player’ów na możliwość zmiany kodowania a większość napisów i tak jest w nieszczęsnym CP-1250.
Fajnie że soft ci się podoba.
A fajną masz zabawkę:)
#4 przez ml dnia Sierpień 22, 2009 - 19:29
Spotkałem się kilka razy z napisami TMPlayera w formacie: 0:00:00. Myślę, że warto zmienić w dwóch liniach konap.py wyrażenie regularne na: r’(\d{1,2}:\d{2}:\d{2}:)’,
zamiast r’(\d{2}:\d{2}:\d{2}:)’.
Pozdrawiam,
Marcin
#5 przez Daniel 'yp2' Dereziński dnia Sierpień 31, 2009 - 21:34
Poprawka dodana. Dzięki za zwrócenie uwagi. Nowe paczki już czekają.
#6 przez mat dnia Listopad 29, 2009 - 14:08
XBMC nie reaguje na znaczniki, które mają spowodować wyświetlanie tekstu kursywą “{Y:i}” albo “/” i wyświetla je jako tekst co jest dosyć irytujące ({y:i} utrudnia czytanie a jest często stosowany w napisach).
Działa natomiast tag
W tej chwili zmieniam w edytorze znaczniki {y:i} i / na i myślę że takie fajnie by było gdyby gKonap robił coś takiego przy konwersji formatu.
To rozwiązanie ma jeden minus. Tag nie jest zamknięty, więc jeżeli są 2 lub 3 linie tekstu i znacznik jest tylko przy pierwszej linii to wszystkie są wyświetlane kursywą. Jeśli jest jakiś sposób żeby podczas konwersji gKonap zamieniał nierozpoznawane przez xbmc znacznik na a do tego dodawał na końcu linii to byłoby rozwiązanie idealne.
#7 przez Daniel 'yp2' Dereziński dnia Listopad 29, 2009 - 19:49
Wszystko jest do zrobienia tylko wymaga trochę czasu. I dzięki za info o tych tagach dla xmbc. W przyszłej wersji to uwzględnię. Musze przepisać trochę tego kodu bo jest strasznie nieczytelny. Uczyłem się na nim pythona. Na razie jestem zajęty trochę innym projektem.