Pagina 1 di 2
Script any to Creative Zen XVID
Inviato: mer 1 ott 2008, 15:10
da 414N
Aloha a tutti!
Ho creato uno script per convertire un qualsiasi numero di filmati nei più disparati formati in filmati compatibili con il Creative Zen (o altri dispositivi) e l'ho pubblicato nella Wiki a
questo indirizzo.
Apro questo thread per raccogliere eventuale feedback.
UPDATE:
English version
here
Re: Script any, Creative Zen XVID
Inviato: mer 1 ott 2008, 15:49
da neongen
tutti i filmati che produceva avevano il problema di saltare gli ultimi 6/7 secondi di video una volta riprodotti sullo ZEN. Dopo varie indagini, sono giunto alla conclusione che questo sia dovuto al fatto che ffmpeg produce sempre filmati VBR (a bitrate variabile), mentre lo ZEN richiede una codifica CBR (a bitrate costante). Se qualcuno conoscesse un modo per produrre filmati in CBR tramite ffmpeg (non funziona impostare minrate e maxrate allo stesso valore) è pregato di farmi un fischio qui.
e ti pareva... adesso mi spiego.
lo provo subito
Edit: funziona benissimo, ma...
dove sta mencoderprogress.sh?
e i sottotitoli?
Re: Script any, Creative Zen XVID
Inviato: mer 1 ott 2008, 18:49
da 414N
neongen ha scritto:
Edit: funziona benissimo, ma...
dove sta mencoderprogress.sh?
e i sottotitoli?
mencoderprogress.sh lo devo ancora mettere nel wiki. Mi sono anche accorto di un paio di errorini all'interno dello script.
Stasera o, al più tardi domani, tutto dovrebbe essere online.
Per sottotitoli intendi i softsub in file a parte e/o quelli embedded nel filmato? Non ho attuato ancora alcun meccanismo per selezionarli e includerli nel filmato finale.
Potrei includerne la gestione in un prossimo aggiornamento dello script. Appena riesco farò qualche esperimento al proposito.
Re: Script any to Creative Zen XVID
Inviato: mer 1 ott 2008, 19:44
da neongen
Codice: Seleziona tutto
--- ToZenAviMencoder 2008-10-01 20:42:54.977258277 +0200
+++ tozen 2008-10-01 20:45:03.386228524 +0200
@@ -59,6 +59,7 @@
PROGRESS_SCRIPT="mencoderprogress.sh"
+
#~~~~~~~~~~~~~~~~~~~~~~~Fine Sezione Modificabile~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -75,6 +76,10 @@
then
rm divx2pass.log
fi
+ if [ -e subdelay ]
+ then
+ rm subdelay
+ fi
return 0
}
@@ -209,7 +214,7 @@
( echo "$MOVIES" | while read -d $'\t' MOVIE
do
-
+
# Estrapolazione del solo nome del file (senza estensione)
@@ -231,6 +236,34 @@
FRAMERATE="$MAXFRAMERATE"
fi
+# Carica sottotitoli
+
+SUBFILE=""
+SUBDELAY="0"
+
+if [ "$USE_DIALOG" = 1 ]
+then
+ for SUBEXT in "srt" "ass" ; do
+ if [ -f "$FILENAME.$SUBEXT" ]
+ then
+ dialog --yesno "Found subfile $SUBFILE \
+ \nDo you want to hardsub it?" 10 50
+ if [ "$?" = "0" ]
+ then
+ SUBFILE="$FILENAME.$SUBEXT"
+ dialog --inputbox "Set subdelay [-]SECONDS[.DECIMALS]" 10 50 "0" 2> subdelay
+ DIAG_ANS=$(cat subdelay)
+ if echo $DIAG_ANS | grep "^[-]\?[0-9]*[\.]\?[0-9]*$">/dev/null
+ then
+ SUBDELAY=$DIAG_ANS
+ fi
+ fi
+ fi ;
+ done
+fi
+
+
+
# Stampa dei valori scelti sul file di log
echo -e "Converting $MOVIE to $OUTDIR/$FILENAME.$EXTENSION \
@@ -238,6 +271,8 @@
\nTarget maximum resolution = $RESX x $RESY \
\nFramerate = $FRAMERATE \
\nMovie length = $DURATION \
+ \nSubfile = $SUBFILE \
+ \nSubdelay = $SUBDELAY \
\n========================================================" >> "$LOGFILE"
# Parametri usati per il primo passaggio
@@ -257,7 +292,9 @@
-lameopts cbr:mode=2:br=$ARATE -af resample=44100 -srate 44100 \
-ffourcc $FOURCC \
-ofps $FRAMERATE \
- -o $OUTDIR/$FILENAME.$EXTENSION"
+ -sub $SUBFILE \
+ -subdelay $SUBDELAY \
+ -o $OUTDIR/$FILENAME.$EXTENSION"
# Primo passaggio
@@ -304,3 +341,4 @@
fi
exit 0
+
+o-
edit:
Re: Script any to Creative Zen XVID
Inviato: mer 1 ott 2008, 20:06
da 414N
Grazie per lo spunto. Appena potrò farò esperimenti per includere l'hardsubbing dei sottotitoli.
Nel frattempo ho corretto alcuni errori nello script e ho pubblicato
mencoderprogress.
Fammi sapere se ti funziona tutto.
Re: Script any to Creative Zen XVID
Inviato: mer 1 ott 2008, 21:25
da neongen
ok. sta lavorando con la progressbar e sembra tutto a posto
update: alle 22:15 ancora non aveva finito il primo passo
la progressbar rallenta troppo.
Re: Script any to Creative Zen XVID
Inviato: gio 2 ott 2008, 11:27
da 414N
neongen ha scritto:ok. sta lavorando con la progressbar e sembra tutto a posto
update: alle 22:15 ancora non aveva finito il primo passo
la progressbar rallenta troppo.
Hai perfettamente ragione.
Ho fatto delle prove tramite "time" e, usando dialog, la conversione impiega 1'22'', senza dialog 36'', senza indicazione del progresso (output di mencoder non elaborato) 34''.
Ho aggiornato lo script mencoderprogress.sh, impostando un intervallo di refresh e questo sembra aver migliorato sensibilmente la performance.
Provalo appena puoi.
Re: Script any to Creative Zen XVID
Inviato: gio 2 ott 2008, 13:32
da neongen
ottimo! addsso con o senza è praticamente lo stesso.
Re: Script any to Creative Zen XVID
Inviato: gio 2 ott 2008, 14:58
da 414N
neongen ha scritto:ottimo! addsso con o senza è praticamente lo stesso.
Benessum!
Aggiornato alla versione 1.02, dopo essermi accorto di un difetto.
Re: Script any to Creative Zen XVID
Inviato: gio 2 ott 2008, 16:01
da neongen
te lo stavo per segnalare quel difettuccio....
Re: Script any to Creative Zen XVID
Inviato: ven 3 ott 2008, 21:15
da 414N
Re: Script any to Creative Zen XVID
Inviato: ven 30 set 2011, 10:47
da Procopio
ciao!
sto cercando di convertire i file video per vederli su psp, ho trovato questo tuo script che sembra faccia proprio a caso mio, ma non mi è chiaro come si usa: che significa che "basta inserirlo nel path"? che devo metterlo nella directory dove ho il filmato che voglio convertire? ...e poi che comando devo dare??
inoltre non riesco a capire cosa faccia il comando
grazie mille per le eventuali risposte!
Re: Script any to Creative Zen XVID
Inviato: ven 30 set 2011, 14:33
da 414N
Procopio ha scritto:ciao!
sto cercando di convertire i file video per vederli su psp, ho trovato questo tuo script che sembra faccia proprio a caso mio, ma non mi è chiaro come si usa: che significa che "basta inserirlo nel path"? che devo metterlo nella directory dove ho il filmato che voglio convertire? ...e poi che comando devo dare??
Andiamo con ordine:
- I video, per funzionare sulla PSP, hanno bisogno di parametri di codifica diversi rispetti a quelli "hardcoded" nel mio script, percui dovresti metterci mano proprio negli aspetti più tecnici (i parametri da passare a mencoder).
- Non è obbligatorio inserirlo nel PATH, ma ti rende più facile la vita se intendi lanciarlo dopo esserti posto in un percorso diverso da quello nel quale risiede lo script. Ti faccio un esempio: mettiamo che scarichi lo script in ~/scripts/ chiamandolo conv.sh. Dopo averlo reso eseguibile con ti sposti in /media/disk/video/troppoBelli tramite perché vuoi convertire tutti i video in quella directory tramite il mio script dopo averne eliminati un paio che non ti interessano più. Se non metti lo script nel PATH, dovresti lanciare la conversione così:
mentre, se la directory ~/scripts fosse nel PATH, ti basterebbe:
- Il comando da dare sarebbe il nome che dai allo script quando lo salvi su disco. Nella versione in cui è attualmente sulla wiki (è da un po' che rimugino su alcune modifiche da apportare), puoi modificare alcuni parametri solo agendo da variabili d'ambiente, che puoi vedere leggendo la sezione iniziale dello script.
Premesso questo, ti consiglio di non mettertici neanche a provare di adattare il mio script per creare video fruibili per la PSP: non si tratta solo di cambiare la risoluzione e qualche parametro già impostato da me, ma si tratta anche di gestire altri parametri che io non ho toccato.
Ti consiglio di usare strumenti appositi, tipo
h264enc (CLI) che prevede alcuni preset già pronti per PSP (ricordati di modificare il PREFIX in /usr nello script install prima di installarlo se decidi di provarlo) oppure avidemux (è una GUI ed è presente anche nel repo di slacky.eu), anche lui con un preset già pronto per PSP (lo trovi sotto il menu Auto).
Procopio ha scritto:inoltre non riesco a capire cosa faccia il comando
Ne deduco che sei a digiuno di C e/o BASH scripting
L'operatore += è una delle scorciatoie più usate per abbreviare un "incremento", tipo A = A + B diventa A+=B.
Nel contesto dello shell scripting, nel quale tutto è trattato come stringa, il + assume la funzione di concatenazione, ovvero di aggiunta in coda.
Nel caso in esame, quel comando esporta nell'ambiente della shell attuale la variabile PATH con l'aggiunta di ":~/bin" in coda (: è il separatore tra le varie directory componenti PATH).
Re: Script any to Creative Zen XVID
Inviato: ven 30 set 2011, 20:56
da Procopio
okk, infatti avrei tentato, sperando che il tuo script andasse bene per il mio formato:)...
comunque ho visto quanto mi hai postato, e, a parte il discorso su scriptign c e bash, io ero abituati gli script a farli girare con un semplice sh davanti, è per quello che non capivo:) (non ho mai studiato l'argomento, o comunque quello non me lo ricordavo:))
per quanto riguarda vaidemux,c'è un criterio per cui io debba scegliere tra CLI gtk e qt4?
Re: Script any to Creative Zen XVID
Inviato: ven 30 set 2011, 21:30
da 414N
Procopio ha scritto:
per quanto riguarda avidemux,c'è un criterio per cui io debba scegliere tra CLI gtk e qt4?
Beh, dipende dai tuoi gusti. Se hai intenzione di usarlo da riga di comando (CLI), allora usa la versione CLI (abbastanza inutile dato che sia ffmpeg sia mencoder sono già CLI).
Se non usi KDE, allora potresti preferire la versione GTK, qualora il tuo ambiente fosse basato su tale toolkit.
Se usi KDE, la versione qt4 è quella che mantiene il "look and feel" dell'ambiente desktop.