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.
  • zamiana znaczników dla kursywy w wyświetlanych napisach na format odczytywany przez XBMC

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 stronie.
Następnie:

$ sudo apt-get install 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.

Jeżeli lubisz i używasz tego oprogramowania możesz wspomóc jego tworzenie małym datkiem pieniężnym :)

Z góry dziękuje.

Screeny:

Strony projektu na Lauchpad.net:
Strona główna – gKonap
Strona z źródłem (Bazaar) – kod
Strona z błędami – bugs

23 myśli nt. „gKonap

  1. Pingback: gKonap wersja 0.5.0 na by yp2

  2. Pingback: XBMC i napisy. na by yp2

  3. chrz

    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

  4. chrz

    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

  5. admin Autor wpisu

    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ę:)

  6. ml

    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

  7. mat

    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.

  8. Daniel 'yp2' Dereziński Autor wpisu

    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.

  9. Irek

    Mam tylko sugestię o czytanie fps z plików mkv, bo to nie działa. Dziekuję za bardzo przydatne narzędzie. Pozdrawiam serdecznie.

  10. Daniel 'yp2' Dereziński Autor wpisu

    Właśnie wysłałem paczki na Lauchpad. Poprawki naniesione co do obsługi mkv oraz dodano nową funkcjonalność zamianę znaczników co do kursywy na format zrozumiały przez XBMC.

  11. Pingback: Paczki dla Ubuntu 10.10 (Maverick) « by yp2

  12. Pingback: Nowa wersja gKonap. « by yp2

  13. Konrad

    Witam. Skąd można ściągnąć najnowszą wersję, bo na Lauchpad jakoś nie widzę. A co do programu to super pomysł, właśnie od niego zacząłem przygodę z Pythonem, a dokładnie mówiąc od 3 dni. Program przerobiłem trochę na swoją wersję aby konwertował do formatu ASS, poprawiłem także konwersję napisów z MicroDvd, bo wywalał się na błędach w napisach w stylu:
    {1000}{1048}tekst
    {1128}{} tu się wywala
    Pozdrawiam.

  14. Irek

    Witam ponownie.
    Kompletnym czadem by było gdyby przy włączonej opcji „Nadpisz pliki oryginalne” automatycznie zmieniałoby się rozszerzenie na takie jak zadany format wyjściowy. Osobiście używam jedynie SRT więc za każdym razem po zmianie na ten format i nadpisaniu pliku muszę ręcznie zmieniać z txt na srt.
    Pozdrawiam serdecznie
    Irek

  15. Irek

    Witam serdecznie,
    jest drobny bug, jeśli rozszerzenie pliku AVI jest pisane dużymi literami „.AVI” program twierdzi że tego nie obsługuje, musi być „.avi”. To samo dotyczy MKV, więc myślę że i innych formatów również (tego nie sprawdzałem).
    Pozdrawiam Irek

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>