Marusz Logo
Strona główna
Artykuły
Seriale, daty premier
Kontakt
Promowane artykuły:
Dreamhost i czas warszawski
WinBinder - wprowadzenie
Prosty packer CSS
Zend Studio i Ubuntu
WebMail Claros Software
Miasto Plusa - bramka napisana w PHP
Płatnik na Laptopie - opis instalacji
Płatnik - przeniesienie programu
Captcha w PHP - prosty przykład
Linux, skrypt txt2srt
Windows, prosta konwersja txt2srt
Linux, NapiProjekt, TXT i SRT

Konwerter txt2srt wraz z odpowiednim wpisem w podręcznym menu Midnight Commandera

2011-10-29 13:14

W naszym pięknym kraju królują napisy w formacie TXT. Wszystko było by dobrze, gdyby nie fakt, że najpopularniejsze odtwarzacze multimedialne czy telewizory lcd, nie zawsze mają zaimplementowaną obsługę tego formatu. Natomiast SRT to (jak donosi Wikipedia) rodzaj zapisu napisów filmowych, wprowadzony w programie SubRip. Napisy w tym formacie zapisywane są w pliku o rozszerzeniu *.srt. SRT zapisuje czasy wyświetlania z dokładnością do 0,001 sekundy. Istnieje także możliwość prostego formatowania tekstu za pomocą tagów HTML. Większość popularnych odtwarzaczy z obsługą napisów oferuje wsparcie dla formatu SRT. I tym się zajmiemy.

Aby móc w prosty sposób konwertować napisy z formatu TXT na SRT, będziemy potrzebowali poprawnie zainstalowanego i skonfigurowanego mplayer'a. Jeśli Wasz mplayer potrafi bez problemu wyświetlić na ekranie film z napisami i polskimi znakami to już jesteście w domu. Jeśli nie, to polecam Wam Google lub fora linuxowe odpowiednie dla Waszej dystrybucji - tam często czatują ekipy, które potrafią niejeden problem rozwiązać.

Przejdźmy do sedna. Odpalamy terminal i udajemy się do katalogu /usr/bin/. Tam tworzymy plik o nazwie: txt2srt.sh. Poddajemy ten plik edycji i wklepujemy do niego:


#!/bin/sh

filename=$1;
extensions="\.avi$";
charset="cp1250";

if [ -f "$filename" ]
then
    filename=`echo "$filename"|sed -e "s/"$extensions"//g"`;
else
    echo "Movie file does not exist";
fi

if [ -f "$filename.avi" ] || [ -f "$filename.txt" ]
then
    mplayer -really-quiet -nosound -sub "$filename.txt" -subcp $charset -dumpsrtsub "$filename.avi" 2>&1;
    mv dumpsub.srt "$filename.srt"
else
    echo "An error occurred! Can not find a file with subtitles or video file.";
fi



Tyle. Nadajemy jeszcze prawa do wykonywania się dla pliku: chmod +x /usr/bin/txt2srt.sh

Teraz możemy śmiało przetestować nasze dzieło. Przechodzimy do katalogu w którym mamy film i napisy w formacie txt. Wpisujemy komendę:
txt2srt.sh NazwaFilmu.avi

Na ekranie pojawi się kilka informacji od mplayera, nie przejmujcie się errorami na tym etapie. Teraz najważniejsze to sprawdzić, czy plik srt został utworzony. Wpisując komendę:
ls NazwaFilmu.*

powinniśmy zobaczyć 3 pliki:
NazwaFilmu.avi
NazwaFilmu.txt
NazwaFilmu.srt

I voila! Wszystko działa. Jeśli plik się nie pojawił, sprawdźcie na piechotę wpisując komendę:
mplayer -sub NazwaFilmu.txt -subcp cp1250 -dumpsrtsub NazwaFilmu.avi

Na podstawie wysypanych błędów diagnozujcie co się dzieje.

Teraz kolejny krok to dopisanie odpowiedniej pozycji do podręcznego menu w programie Midnight Commander, które standardowo dostępne jest pod klawiszem F2. Generalnie defaultowy plik menu średnio mi odpowiada, więc postanowiłem napisać swój. Wy wybierzcie co wolicie, dopisać txt2srt.sh do pliku który już istnieje, własnego, a może podmienić na mój:

shell_patterns=0
+ ! t t
1    Sciagnij napisy qnapi
    qnapi %f

+ ! t t
2    Konwertuj napisy na SRT
    /usr/bin/txt2srt.sh %f

= t d
3    Kompresuj aktualny katalog (tar.gz)
    Pwd=`basename %d /`
    echo -n "Nazwij plik archiwum (nie wpisuj rozszerzenia!) [$Pwd]: "
    read tar
    if [ "$tar"x = x ]; then tar="$Pwd"; fi
    cd .. && \
    tar cf - "$Pwd" | gzip -f9 > "$tar.tar.gz" && \
    echo "../$tar.tar.gz stworzony."

4    Kompresuj aktualny katalog (tar.bz2)
    Pwd=`basename %d /`
    echo -n "Nazwij plik archiwum (nie wpisuj rozszerzenia!) [$Pwd]: "
    read tar
    if [ "$tar"x = x ]; then tar="$Pwd"; fi
    cd .. && \
    tar cf - "$Pwd" | bzip2 -f > "$tar.tar.bz2" && \
    echo "../$tar.tar.bz2 stworzony."

+ ! t t
5    Wypal plyte pod Xbox360
    growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913760 -dvd-compat -speed=2.4 -Z /dev/cdrom=%f



Aby podmienić Wasz plik menu na mój, musicie:
1. przejść do swojego katalogu domowego
2. potem przejść do ukrytego katalogu .mc (cd ~/.mc/)
3. poddać plik o nazwie menu edycji i wkleić linijki które widzicie wyżej.

Tak wyglądać będzie Wasze nowe podręczne menu:
img

To jest wstępna wersja tego tekstu i napisana na kolanie. Skrypt również jest w wersji beta. Jeśli macie jakieś pytania to śmiało na dział kontakt albo do komentarzy.

Komentarze

depesz @ 89.77.155.*

wysłany: 2014-01-01 22:18

Dzięki!

Ten artykuł NIESAMOWICIE ułatwił mi życie...;D

labiol @ 85.221.245.*

wysłany: 2014-03-23 01:18

Wlasnie tego szukalem. Mam tylko jednego zonka. Mplayer po wpisaniu komendy dzielnie pracuje i odtwarza film (tzn. robie to w putty, mplayer na freebsd bez X czyli wyswietla linijke z czasem, parametrami itd.) . Oczywiscie mplayera moge kilowac, srt jest ok, ale troche malo eleganckie. Masz na to recepte?

do labiol @ 78.10.111.*

wysłany: 2014-03-23 21:02

Polecam Ci tę metodę:
http://marusz.net/?txt=92

Działa to kapitalnie, jest proste, nie wymaga obecności mplayera, zważa na FPSy w filmie. Po prostu bajka.


Wpisz swoje imię, pseudonim:

Wpisz treść: