Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-02-09 13:44:51

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Edycja napisów - skrypt

Hej!
Mam telewizor z możliwością odtwarzania filmów z pena, czyta też napisy. Tylko że są one źle zsynchronizowane. Doczytałem, że trzeba im zmienić framerate z 24fps na 25fps. Radzę sobie przez gaupol, ale zacząłem się zastanawiać, czy nie można zastosować jakiegoś zgrabnego skryptu, który bym sobie później podpiął do menu kontekstowego?


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#2  2011-02-09 13:47:25

  azhag - Admin łajza

azhag
Admin łajza
Skąd: Warszawa
Zarejestrowany: 2005-11-15

Re: Edycja napisów - skrypt

Proponuję wyeliminować problem w zarodku — pobieraj napisy za pomocą qnapi.


Błogosławieni, którzy czynią FAQ.
opencaching :: debian sources.list :: coś jakby blog :: polski portal debiana :: linux user #403712

Offline

 

#3  2011-02-09 15:11:10

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: Edycja napisów - skrypt

Tak właśnie je pobieram.


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#4  2011-02-09 19:06:03

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Re: Edycja napisów - skrypt

polecam http://sourceforge.net/projects/subconv/

Używam do konwersji z TXT na SRT

Offline

 

#5  2011-02-09 20:29:54

  pasqdnik - Pijak ;-P

pasqdnik
Pijak ;-P
Skąd: Wrocław
Zarejestrowany: 2006-03-06

Re: Edycja napisów - skrypt

mplayer + opcja  -subfps

Wycinek kodu ze starego skryptu txt2srt Michała Kowalczuka.

Kod:

iconv -f cp1250 -t utf8 < "$SUB" > "$SUB_UTF8"
echo q | $MPLAYER -sub "$SUB_UTF8" $SUBFPS -subcp utf8 -dumpsrtsub "$MOVIE" 2>&1

iconv -f utf8 -t cp1250 < dumpsub.srt > "$SRT"
rm -f "$SUB_UTF8" dumpsub.srt

Powinieneś sobie poradzić, od razu otrzymasz srt ;-)


Dum spiro - spero ...
pozdrawiam, pasqdnik

Offline

 

#6  2011-02-09 20:42:01

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Re: Edycja napisów - skrypt

na sieci jest skrypt napi.py (do pobierania napisów), dodałem w niem jedną linijkę do pobierania okładki. Jako że Pythona nie znam prawie wcale to w bashu napisałem prosty skrypt pobierający napisy przez napi.py następnie z mediainfo pobieram ilość FPS. Wynik podstawiaony jest do subconv w wyniku czego jak są napisy to dostaje je z okładką w formacie TXT i SRT ... a i jeszcze enca do przekodowania na UTF-8 :)

Wszystko pod konsolą :)

Offline

 

#7  2011-02-09 21:07:00

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: Edycja napisów - skrypt

@pasqdnik - dzięki za kod
@life - podzielisz się? :)


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

#8  2011-02-09 21:11:42

  pasqdnik - Pijak ;-P

pasqdnik
Pijak ;-P
Skąd: Wrocław
Zarejestrowany: 2006-03-06

Re: Edycja napisów - skrypt

Kod:

pasqdnik@freedom:~$ cat bin/napi.py 
#!/usr/bin/python
# reversed napi 0.16.3.1
#
# by gim,krzynio,dosiu,hash 2oo8.
#
# 
#
# last modified: 6-I-2oo8
#
# 4pc0h f0rc3
#
# do dzialania potrzebny jest p7zip-full (tak sie nazywa paczka w debianie)
#
# POZDRAWIAMY NASZYCH FANOW!

import md5,sys,urllib,os

def f(z):
    idx = [ 0xe, 0x3,  0x6, 0x8, 0x2 ]
    mul = [   2,   2,    5,   4,   3 ]
    add = [   0, 0xd, 0x10, 0xb, 0x5 ]

    b = []
    for i in xrange(len(idx)):
        a = add[i]
        m = mul[i]
        i = idx[i]

        t = a + int(z[i], 16)
        v = int(z[t:t+2], 16)
        b.append( ("%x" % (v*m))[-1] )

    return ''.join(b)


if(len(sys.argv)==1):
    print "wy*dalaj na stadion po film"
    sys.exit(2)

d = md5.new();
d.update(open(sys.argv[1]).read(10485760))

str = "http://napiprojekt.pl/unit_napisy/dl.php?l=PL&f="+d.hexdigest()+"&t="+f(d.hexdigest())+"&v=other&kolejka=false&nick=&pass=&napios="+os.name

open("napisy.7z","w").write(urllib.urlopen(str).read())
nazwa=sys.argv[1][:-3]+'txt'

if (os.system("/usr/bin/7z x -y -so -piBlm8NTigvru0Jr0 napisy.7z 2>/dev/null >\""+nazwa+"\"")):
        print "nie ma napisa do filmu"
        os.remove(nazwa)        
else:
        print "napisy pobrano, milordzie!"

pasqdnik@freedom:~$

Dum spiro - spero ...
pozdrawiam, pasqdnik

Offline

 

#9  2011-02-09 23:27:57

  life - Użytkownik

life
Użytkownik
Zarejestrowany: 2009-10-30

Re: Edycja napisów - skrypt

Do pobrania okładki przed

Kod:

print "napisy pobrano, milordzie!"

daj to

Kod:

cov = "http://www.napiprojekt.pl/okladka_pobierz.php?id="+d.hexdigest()+"&oceny=-1"
open("okladka.jpg","w").write(urllib.urlopen(cov).read())

a skrypt do pobierani i konwersji wygląda tak:

Kod:

#!/bin/bash

SUB=/usr/local/bin/subconv.py
MOVIE="$1"

if [ "$1" = "" ]; then
        echo "Podaj nazwe pliku z filmem."
else
        NAPIE=`/usr/local/bin/napi.py "$MOVIE"`

        if [ "$NAPIE" != 'nima' ]; then
                FRATE=`mediainfo "$MOVIE" | grep 'Frame rate' | awk '{print $4}'`

                BASE="`echo "$1" | rev | cut -d . -f 2- | rev`"
                SRT="$BASE.srt"
                TXT="$BASE.txt"

                # dopasowanie
                sed -e 's/\[/{/g' "$TXT" > "$SRT"
                sed -e 's/\]/}/g' "$SRT" > "$TXT"
                echo "" > "$SRT"

                $SUB -i "$TXT" -r microdvd -o "$SRT" -f "$FRATE" -w subrip
                /usr/bin/enca -c "$SRT"
                echo "Pobralem i przerobilem napisy Milordzie!"
        else
                echo "Zong nima napisa Milordzie!"
        fi
fi

przy czym w napi.py zmieniłem to że zwraca "nima" gdy nie znajdzie napisów. Problem jest też z tym że napisy w napiprojekcie są w różnych formatach i skrypt nie zawsze zadziała poprawnie.

Offline

 

#10  2011-02-14 22:14:32

  szczypior88 - Członek DUG

szczypior88
Członek DUG
Skąd: Poznań
Zarejestrowany: 2007-02-06
Serwis

Re: Edycja napisów - skrypt

Dzięki :)


http://www.szczypior88.republika.pl/cwp.gif
pozdrawiam
szczypior

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)