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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.


Członek DUG



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?
Offline






Admin łajza







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


Członek DUG

Użytkownik


polecam http://sourceforge.net/projects/subconv/
Używam do konwersji z TXT na SRT
Offline



Pijak ;-P




mplayer + opcja -subfps
Wycinek kodu ze starego skryptu txt2srt Michała Kowalczuka.
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 ;-)
Offline

Użytkownik


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


Członek DUG



Pijak ;-P




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:~$Offline

Użytkownik


Do pobrania okładki przed
print "napisy pobrano, milordzie!"
daj to
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:
#!/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
fiprzy 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


Członek DUG