Dripper dvd2divx: differenze tra le versioni
m (Dripper moved to Dripper dvd2divx: Nome non significativo, inoltre la pagina è appena stata creata dunque lo spostamento non dovrebbe dare problemi.) |
(Aggiornato alla versione 0.2) |
||
| (3 revisioni intermedie di un utente non mostrate) | |||
| Riga 5: | Riga 5: | ||
Lo script, attualmente in fase di ultimazione ma già funzionante permette di: |
Lo script, attualmente in fase di ultimazione ma già funzionante permette di: |
||
| − | (-)scegliere la cartella di lavoro (e controlla se l'utente ha i permessi in scritture) |
+ | *scegliere la cartella di lavoro (e controlla se l'utente ha i permessi in scritture) |
| − | (-)scegliere la lingua tra quelle che trova nel dvd |
+ | *scegliere la lingua tra quelle che trova nel dvd |
| − | (-)scegliere la risoluzione |
+ | *scegliere la risoluzione |
| − | (-)scegliere la dimensione finale |
+ | *scegliere la dimensione finale |
| − | (-)scegliere di eseguire 1 o 2 passaggi |
+ | *scegliere di eseguire 1 o 2 passaggi |
| − | (-)scegliere il bitrate audio |
+ | *scegliere il bitrate audio |
| − | (-)scegliere alcune opzioni più "fini" (opzioni v4mv, versione del codec divx o mjpeg, metodo di scaling) |
+ | *scegliere alcune opzioni più "fini" (opzioni v4mv, versione del codec divx o mjpeg, metodo di scaling) |
| − | (-)alzare il volume audio |
+ | *alzare il volume audio |
| − | (-)trovare automaticamente il cropping migliore e di farlo modificare all'utente |
+ | *trovare automaticamente il cropping migliore e di farlo modificare all'utente |
| − | (-)dividere il file in due parti se il file creato occupa più di 700 MB |
+ | *dividere il file in due parti se il file creato occupa più di 700 MB |
inoltre può partire con la codifica immediatamente dopo il wizard o salvare i comandi necessari in un'altro script da eseguire successivamente. |
inoltre può partire con la codifica immediatamente dopo il wizard o salvare i comandi necessari in un'altro script da eseguire successivamente. |
||
| Riga 21: | Riga 21: | ||
Non essendo ancora ultimato lo script ha ancora alcune "stringhe di debug" e molto probabilmente errori di battitura/sintassi :-) nei messaggi. Abbiate pazienza, la versione definitiva verrà ripulita da questi piccoli inconvenienti |
Non essendo ancora ultimato lo script ha ancora alcune "stringhe di debug" e molto probabilmente errori di battitura/sintassi :-) nei messaggi. Abbiate pazienza, la versione definitiva verrà ripulita da questi piccoli inconvenienti |
||
| + | |||
| + | == Aggiornamenti == |
||
| + | Versione 0.2 (22/02/2007) |
||
| + | *aggiunto "fixer": dal momento che windows media player e compagni hanno problemi a leggere i file codificati con libavcodec, in realtà compatibilissimo con Xvid, questo programma, che viene compilato al volo, eseguito ed eliminato, cambia le intestazioni al file, rendendolo indistinguibile dai normali Xvid (in pratica sostituisce le 2 stringhe "FMP4" al 113-esimo e 189-esimo byte con le stringhe "xvid" e "XVID") |
||
| + | *corretto bug che limitava il riconoscimento della durata del film al 1^ chapter |
||
| + | *cambiata opzione (sostituito -vop con -vf) per rendere lo script compatibile con la verisione in via di sviluppo di (mplayer-checkout-2007-02-19) |
||
= Readme = |
= Readme = |
||
Non necessita di installazione, è sufficente seguirlo senza alcun argomento da qualsiasi directory, lo script guiderà l'utente nelle scelta delle impostazioni. |
Non necessita di installazione, è sufficente seguirlo senza alcun argomento da qualsiasi directory, lo script guiderà l'utente nelle scelta delle impostazioni. |
||
Controllate di aver sufficiente spazio libero sul disco rigido! |
Controllate di aver sufficiente spazio libero sul disco rigido! |
||
| + | ATTENZIONE: questo script è stato testato su due versioni di Mencoder/Mplayer: |
||
| + | 1.0rc1-3.4.6 |
||
| + | 1.0rc1-3.4.4 |
||
| + | Dovrebbe funzionare con tutte le recenti versioni della serie '''1.*''' |
||
| + | Non funziona invece con Mplayer 2* (almeno nella versione nei repository di Ubuntu) |
||
| + | Se avete dubbi installate quello che trovate nel repository di Slacky ;-) |
||
| + | |||
= Script = |
= Script = |
||
<pre> |
<pre> |
||
#!/bin/bash |
#!/bin/bash |
||
| + | |||
| + | # |
||
# (c) 2007 by Wakko Kid <slackcarlo@gmail.com> |
# (c) 2007 by Wakko Kid <slackcarlo@gmail.com> |
||
# |
# |
||
| Riga 46: | Riga 61: | ||
# imperfezioni come, ad esempio, errori di battitura o brutte "impaginazioni", che |
# imperfezioni come, ad esempio, errori di battitura o brutte "impaginazioni", che |
||
# verranno corrette a breve. |
# verranno corrette a breve. |
||
| + | |||
| + | crea_fixer() ####### CREA I SORGENTI PER IL PROGRAMMA CEH MODIFICHERA' GLI HEADER. |
||
| + | { |
||
| + | echo "$PATH" |
||
| + | echo "#include <stdio.h>" > fix.cpp |
||
| + | echo "int main(int argc, char *argv[])" >> fix.cpp |
||
| + | echo "{" >> fix.cpp |
||
| + | echo " if(argc = 0)" >> fix.cpp |
||
| + | echo " {" >> fix.cpp |
||
| + | echo " printf(\"\\nUsage: file path/nomevile.avi\\n\\n\");" >> fix.cpp |
||
| + | echo " return 1;" >> fix.cpp |
||
| + | echo " }" >> fix.cpp |
||
| + | echo " else" >> fix.cpp |
||
| + | echo " {" >> fix.cpp |
||
| + | echo " FILE *file;" >> fix.cpp |
||
| + | echo " file = fopen(argv[1], \"rb+\");" >> fix.cpp |
||
| + | echo " fseek(file, 112L, SEEK_SET);" >> fix.cpp |
||
| + | echo " fprintf(file, \"xvid\");" >> fix.cpp |
||
| + | echo " fseek(file, 188L, SEEK_SET);" >> fix.cpp |
||
| + | echo " fprintf(file, \"XVID\"); " >> fix.cpp |
||
| + | echo " fclose(file);" >> fix.cpp |
||
| + | echo " printf(\"Header corretti\n\n\");" >> fix.cpp |
||
| + | echo " }" >> fix.cpp |
||
| + | echo " return 0;" >> fix.cpp |
||
| + | echo " }" >> fix.cpp |
||
| + | } |
||
VALIDA=0 |
VALIDA=0 |
||
| Riga 68: | Riga 109: | ||
done |
done |
||
| − | dialog --backtitle "Fase 1: Ripping" --inputbox "In quale device è inserito il DVD da rippare?" 9 30 "/dev/hdd" 2>/tmp/f.txt; |
+ | dialog --backtitle "Fase 1: Ripping" --inputbox "In quale device è inserito il DVD da rippare?" 9 30 "/dev/hdc" 2>/tmp/f.txt; |
DEVICE=`cat /tmp/f.txt` |
DEVICE=`cat /tmp/f.txt` |
||
| − | dialog --backtitle "Fase 1: Ripping" --inputbox "Quale chapter rippare?" 9 30 1 2>/tmp/f.txt; |
+ | $VALIDA=1 |
| − | CHAPTER=`cat /tmp/f.txt` |
+ | while [ $VALIDA -eq 1 ] |
| + | do |
||
| + | dialog --backtitle "Fase 1: Ripping" --inputbox "Quale chapter rippare?" 9 30 1 2>/tmp/f.txt; |
||
| + | CHAPTER=`cat /tmp/f.txt` |
||
| + | IDENTIFY=`mplayer -dvd-device $DEVICE dvd://$CHAPTER -identify` |
||
| + | dialog --backtitle "Chapter" --yesno "Il filmato mostrava il filmato corrispondente al chapter inserito. E' quello giusto?" 13 40 |
||
| + | VALIDA=$? |
||
| + | done |
||
| + | |||
| + | TIME=`echo "$IDENTIFY" | grep ID_DVD_TITLE_"$CHAPTER"_LENGTH | cut -d '=' -f 2 | cut -d '.' -f 1` |
||
| + | TIME=`expr $TIME / 60` |
||
| + | echo "===========$TIME" |
||
mencoder -dvd-device $DEVICE dvd://$CHAPTER -v -o /dev/null | grep aid > /tmp/f.txt |
mencoder -dvd-device $DEVICE dvd://$CHAPTER -v -o /dev/null | grep aid > /tmp/f.txt |
||
| Riga 105: | Riga 146: | ||
AID6=`echo "$RIGA6" | cut -d " " -f 10` |
AID6=`echo "$RIGA6" | cut -d " " -f 10` |
||
AID6=`echo "$AID6" | cut -c -3` |
AID6=`echo "$AID6" | cut -c -3` |
||
| − | |||
| − | IDENTIFY=`mplayer -dvd-device /dev/hdc dvd://1 -identify -endpos 1` |
||
| − | TIME=`echo "$IDENTIFY" | grep ID_DVD_TITLE_1_LENGTH | cut -d '=' -f 2 | cut -d '.' -f 1` |
||
| − | TIME=`expr $TIME / 60` |
||
| − | echo "===========$TIME" |
||
dialog --backtitle "Fase 1: Ripping" --menu "Scegli la lingua da rippare" 18 70 6 "$AID1" "$RIGA1" "$AID2" "$RIGA2" "$AID3" "$RIGA3" "$AID4" "$RIGA4" "$AID5" "$RIGA5" "$AID6" "$RIGA6" 2>/tmp/f.txt; |
dialog --backtitle "Fase 1: Ripping" --menu "Scegli la lingua da rippare" 18 70 6 "$AID1" "$RIGA1" "$AID2" "$RIGA2" "$AID3" "$RIGA3" "$AID4" "$RIGA4" "$AID5" "$RIGA5" "$AID6" "$RIGA6" 2>/tmp/f.txt; |
||
| Riga 122: | Riga 158: | ||
dialog --backtitle "Cropping" --msgbox "Ora il programma tenterà di trovare il valore di cropping più adeguato per eliminare le bande nere attorno al filmato. Attendi finchè non copare una scena con bordi ben definiti, poi premi invio per vedere il risultato del cropping. Tempi di attesa molto brevi possono portare ad errori nel caso di scene con bordi che si confondono con le fasce nere" 20 50; |
dialog --backtitle "Cropping" --msgbox "Ora il programma tenterà di trovare il valore di cropping più adeguato per eliminare le bande nere attorno al filmato. Attendi finchè non copare una scena con bordi ben definiti, poi premi invio per vedere il risultato del cropping. Tempi di attesa molto brevi possono portare ad errori nel caso di scene con bordi che si confondono con le fasce nere" 20 50; |
||
| − | CROPPING=`mplayer -vo x11 -ao oss -vop cropdetect -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 | grep [CROP] | tail -n 1 | cut -d "(" -f 2 | cut -d "=" -f 2 | cut -d ")" -f 1` |
+ | CROPPING=`mplayer -ao oss -vf cropdetect -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 | grep [CROP] | tail -n 1 | cut -d "(" -f 2 | cut -d "=" -f 2 | cut -d ")" -f 1` |
echo "Cropping trovato: $CROPPING" |
echo "Cropping trovato: $CROPPING" |
||
dialog --backtitle "Cropping" --msgbox "Le impostazioni di cropping trovate sono: $CROPPING. Passare alla prossima schermata per verificarle." 11 50; |
dialog --backtitle "Cropping" --msgbox "Le impostazioni di cropping trovate sono: $CROPPING. Passare alla prossima schermata per verificarle." 11 50; |
||
| − | mplayer -vo x11 -ao oss -vop rectangle=$CROPPING -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 |
+ | mplayer -ao oss -vf rectangle=$CROPPING -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 |
dialog --backtitle "Cropping" --menu "Le impostazioni di cropping vanno bene?" 12 45 2 1 "Si" 2 "No, voglio tentare manualmente" 2>/tmp/f.txt |
dialog --backtitle "Cropping" --menu "Le impostazioni di cropping vanno bene?" 12 45 2 1 "Si" 2 "No, voglio tentare manualmente" 2>/tmp/f.txt |
||
| Riga 137: | Riga 173: | ||
CROPPING=`cat /tmp/f.txt` |
CROPPING=`cat /tmp/f.txt` |
||
echo "nuovo cropping: $CROPPING" |
echo "nuovo cropping: $CROPPING" |
||
| − | mplayer -vo x11 -ao oss -vop rectangle=$CROPPING -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 |
+ | mplayer -ao oss -vf rectangle=$CROPPING -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 |
dialog --backtitle "Cropping" --menu "Le impostazioni di cropping vanno bene?" 12 45 2 1 "Si, ho finito" 2 "No, voglio ritentare" 2>/tmp/f.txt |
dialog --backtitle "Cropping" --menu "Le impostazioni di cropping vanno bene?" 12 45 2 1 "Si, ho finito" 2 "No, voglio ritentare" 2>/tmp/f.txt |
||
AMANO=`cat /tmp/f.txt` |
AMANO=`cat /tmp/f.txt` |
||
| Riga 151: | Riga 187: | ||
dialog --backtitle "Scaling" --inputbox "Inserisci la risoluzione verticale voluta nel Divx. Consigliata per film Widescreen: $HRES_WIDE, per formato TV $HRES_TV. E' consigliabile usare un multiplo di 16, (le risoluzioni proposte rispettano questo consiglio)" 15 50 "$HRES_WIDE" 2>/tmp/f.txt; |
dialog --backtitle "Scaling" --inputbox "Inserisci la risoluzione verticale voluta nel Divx. Consigliata per film Widescreen: $HRES_WIDE, per formato TV $HRES_TV. E' consigliabile usare un multiplo di 16, (le risoluzioni proposte rispettano questo consiglio)" 15 50 "$HRES_WIDE" 2>/tmp/f.txt; |
||
HRES=`cat /tmp/f.txt` |
HRES=`cat /tmp/f.txt` |
||
| − | mplayer -vo x11 -ao oss -vop scale=$ORES:$HRES,crop=$CROPPING -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 |
+ | mplayer -ao oss -vf crop=$CROPPING,scale=$ORES:$HRES -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 |
dialog --backtitle "Scaling" --menu "Le impostazioni di scaling vanno bene?" 12 45 2 1 "Si, ho finito" 2 "No, voglio ritentare" 2>/tmp/f.txt |
dialog --backtitle "Scaling" --menu "Le impostazioni di scaling vanno bene?" 12 45 2 1 "Si, ho finito" 2 "No, voglio ritentare" 2>/tmp/f.txt |
||
AMANO=`cat /tmp/f.txt` |
AMANO=`cat /tmp/f.txt` |
||
| Riga 178: | Riga 214: | ||
fi |
fi |
||
| + | DIVIDERE="1" |
||
if [ $DIM_MB -gt 700 ]; then |
if [ $DIM_MB -gt 700 ]; then |
||
if [ 1401 -gt $DIM_MB ]; then |
if [ 1401 -gt $DIM_MB ]; then |
||
| Riga 194: | Riga 231: | ||
V4MV=":v4mv" |
V4MV=":v4mv" |
||
VCODEC="mpeg4" |
VCODEC="mpeg4" |
||
| + | XVID_HEADER=0 |
||
dialog --backtitle "Opzioni" --yesno "Si desidera modificare alcuni parametri per configurazioni avanzate (nel caso si scelga no verranno in genere utilizzate le impostazioni che promettono una QUALITA' MAGGIORE a scapito di TEMPI DI CODIFICA PIU' LUNGHI)" 13 40 |
dialog --backtitle "Opzioni" --yesno "Si desidera modificare alcuni parametri per configurazioni avanzate (nel caso si scelga no verranno in genere utilizzate le impostazioni che promettono una QUALITA' MAGGIORE a scapito di TEMPI DI CODIFICA PIU' LUNGHI)" 13 40 |
||
| − | AVANZATE�$? |
+ | AVANZATE=$? |
if [ $AVANZATE -eq 0 ]; then |
if [ $AVANZATE -eq 0 ]; then |
||
dialog --backtitle "" --menu "Quale versione di codec utilizzare?" 12 45 5 "mpeg4" "Divx4 (consigliato)" "msmpeg4" "Vecchio codec divx" "mjpeg" "Motion Jpeg" "h263" "Codec H263" "h263p" "Codec H263 Plus" 2>/tmp/f.txt |
dialog --backtitle "" --menu "Quale versione di codec utilizzare?" 12 45 5 "mpeg4" "Divx4 (consigliato)" "msmpeg4" "Vecchio codec divx" "mjpeg" "Motion Jpeg" "h263" "Codec H263" "h263p" "Codec H263 Plus" 2>/tmp/f.txt |
||
| Riga 210: | Riga 248: | ||
fi |
fi |
||
| − | dialog --backtitle "" --menu "Quale metodo di ridimensionamento utilizzare?" 12 45 3 3 "Bicubico (consigliato)" 2 "Bilineare" 1 "Bilineare veloce" 2>/tmp/f.txt |
+ | dialog --backtitle "" --menu "Quale metodo di ridimensionamento utilizzare?" 12 45 3 2 "Bicubico (consigliato)" 1 "Bilineare" 0 "Bilineare veloce" 2>/tmp/f.txt |
SWS=`cat /tmp/f.txt` |
SWS=`cat /tmp/f.txt` |
||
dialog --backtitle "Volume" --inputbox "Di quanto amplificare il volume?\n0 = nulla\n10=massimo guadagno.\n Consigliato: 7" 14 30 7 2>/tmp/f.txt; |
dialog --backtitle "Volume" --inputbox "Di quanto amplificare il volume?\n0 = nulla\n10=massimo guadagno.\n Consigliato: 7" 14 30 7 2>/tmp/f.txt; |
||
ALZA_VOL=`cat /tmp/f.txt`; |
ALZA_VOL=`cat /tmp/f.txt`; |
||
| + | |||
| + | dialog --backtitle "Opzioni avanzate" --yesno "Il codec libavc crea un file perfettamente compatibile con l'xvid, ma che non viene letto da molti lettori. E' possibile modificare gli header del file in maniera da rendelo compatibile con tutti i media player con codec xvid. Procedere? (consigliato: SI', è necessario avere il *compilatore g++* installato)" 10 40 |
||
| + | XVID_HEADER=$? |
||
fi |
fi |
||
| Riga 247: | Riga 288: | ||
echo "mencoder -dvd-device $DEVICE dvd://$CHAPTER -ovc copy -oac copy -aid $LANGUAGE -o dvdrippato.vob" |
echo "mencoder -dvd-device $DEVICE dvd://$CHAPTER -ovc copy -oac copy -aid $LANGUAGE -o dvdrippato.vob" |
||
if [ $PASSAGGI -eq 1 ]; then |
if [ $PASSAGGI -eq 1 ]; then |
||
| − | mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vop scale=$ORES:$HRES,crop=$CROPPING -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob |
+ | mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob |
else |
else |
||
| − | mencoder -o /dev/null -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vop scale=$ORES:$HRES,crop=$CROPPING -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob |
+ | mencoder -o /dev/null -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob |
| − | mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vop scale=$ORES:$HRES,crop=$CROPPING -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=2 -sws $SWS dvdrippato.vob |
+ | mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=2 -sws $SWS dvdrippato.vob |
| + | fi |
||
| + | |||
| + | if [ $XVID_HEADER -eq 0 ]; then |
||
| + | crea_fixer |
||
| + | g++ fix.cpp -o fix |
||
| + | rm fix.cpp |
||
| + | fix $FILENAME |
||
| + | rm fix |
||
fi |
fi |
||
| Riga 256: | Riga 297: | ||
rm dvdrippato.vob |
rm dvdrippato.vob |
||
rm divx2pass.log |
rm divx2pass.log |
||
| − | echo "Eliminati i file t/emporanei" |
+ | echo "Eliminati i file temporanei" |
echo "$WORKDIR/dvdrippato.vob" |
echo "$WORKDIR/dvdrippato.vob" |
||
echo "$WORKDIR/divx2pass.log" |
echo "$WORKDIR/divx2pass.log" |
||
| Riga 281: | Riga 322: | ||
echo "mencoder -dvd-device $DEVICE dvd://$CHAPTER -ovc copy -oac copy -aid $LANGUAGE -o dvdrippato.vob" >> creadivx.sh |
echo "mencoder -dvd-device $DEVICE dvd://$CHAPTER -ovc copy -oac copy -aid $LANGUAGE -o dvdrippato.vob" >> creadivx.sh |
||
if [ $PASSAGGI -eq 1 ]; then |
if [ $PASSAGGI -eq 1 ]; then |
||
| − | echo "mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vop scale=$ORES:$HRES,crop=$CROPPING -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob" >> creadivx.sh |
+ | echo "mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob" >> creadivx.sh |
else |
else |
||
| − | echo "mencoder -o /dev/null -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vop scale=$ORES:$HRES,crop=$CROPPING -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob" >> creadivx.sh |
+ | echo "mencoder -o /dev/null -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob" >> creadivx.sh |
| − | echo "mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vop scale=$ORES:$HRES,crop=$CROPPING -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=2 -sws $SWS dvdrippato.vob" >> creadivx.sh |
+ | echo "mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=2 -sws $SWS dvdrippato.vob" >> creadivx.sh |
| + | fi |
||
| + | |||
| + | if [ $XVID_HEADER -eq 0 ]; then |
||
| + | crea_fixer |
||
| + | echo "g++ fix.cpp -o fix" >> creadivx.sh |
||
| + | echo "rm fix.cpp" >> creadivx.sh |
||
| + | echo "fix $FILENAME" >> creadivx.sh |
||
| + | echo "rm fix" >> creadivx.sh |
||
fi |
fi |
||
| Riga 313: | Riga 354: | ||
fi |
fi |
||
</pre> |
</pre> |
||
| − | * Dipendenze: Mencoder, dialog |
+ | * Dipendenze: Mencoder 1.0, dialog |
* Data: 16/02/2006 |
* Data: 16/02/2006 |
||
* Autore: wakkokid |
* Autore: wakkokid |
||
| − | * Versione: 0.1 Beta |
+ | * Versione: 0.2 Beta |
| − | * Autori delle revisioni: --- |
+ | * Autori delle revisioni: wakkokid |
Versione attuale delle 22:51, 22 feb 2007
Indice |
[modifica] Descrizione
Dripper è uno script per rippare i DVD e comprimerli in divx con il codec open-source libavcodec. Dripper utilizza dialog per fornire un'interfaccia "semigrafica ncurses-like" e funziona come front-end per Mencoder. Lo script, attualmente in fase di ultimazione ma già funzionante permette di:
- scegliere la cartella di lavoro (e controlla se l'utente ha i permessi in scritture)
- scegliere la lingua tra quelle che trova nel dvd
- scegliere la risoluzione
- scegliere la dimensione finale
- scegliere di eseguire 1 o 2 passaggi
- scegliere il bitrate audio
- scegliere alcune opzioni più "fini" (opzioni v4mv, versione del codec divx o mjpeg, metodo di scaling)
- alzare il volume audio
- trovare automaticamente il cropping migliore e di farlo modificare all'utente
- dividere il file in due parti se il file creato occupa più di 700 MB
inoltre può partire con la codifica immediatamente dopo il wizard o salvare i comandi necessari in un'altro script da eseguire successivamente.
A breve aggiungerò la possibilità di salvare i sottotitoli e, in futuro, di aggiungere un secondo stream audio al divx (doppio audio)
Non essendo ancora ultimato lo script ha ancora alcune "stringhe di debug" e molto probabilmente errori di battitura/sintassi :-) nei messaggi. Abbiate pazienza, la versione definitiva verrà ripulita da questi piccoli inconvenienti
[modifica] Aggiornamenti
Versione 0.2 (22/02/2007)
- aggiunto "fixer": dal momento che windows media player e compagni hanno problemi a leggere i file codificati con libavcodec, in realtà compatibilissimo con Xvid, questo programma, che viene compilato al volo, eseguito ed eliminato, cambia le intestazioni al file, rendendolo indistinguibile dai normali Xvid (in pratica sostituisce le 2 stringhe "FMP4" al 113-esimo e 189-esimo byte con le stringhe "xvid" e "XVID")
- corretto bug che limitava il riconoscimento della durata del film al 1^ chapter
- cambiata opzione (sostituito -vop con -vf) per rendere lo script compatibile con la verisione in via di sviluppo di (mplayer-checkout-2007-02-19)
[modifica] Readme
Non necessita di installazione, è sufficente seguirlo senza alcun argomento da qualsiasi directory, lo script guiderà l'utente nelle scelta delle impostazioni. Controllate di aver sufficiente spazio libero sul disco rigido! ATTENZIONE: questo script è stato testato su due versioni di Mencoder/Mplayer: 1.0rc1-3.4.6 1.0rc1-3.4.4 Dovrebbe funzionare con tutte le recenti versioni della serie 1.* Non funziona invece con Mplayer 2* (almeno nella versione nei repository di Ubuntu) Se avete dubbi installate quello che trovate nel repository di Slacky ;-)
[modifica] Script
#!/bin/bash
#
# (c) 2007 by Wakko Kid <slackcarlo@gmail.com>
#
# Versione 0.1 (beta)
#
# Software rilasciato sotto la licenza GPL
# (Per il testo integrale vedi http://www.fsf.org/licenses/gpl.txt)
# e *senza alcuna garanzia*
#
# ATTENZIONE: controllate di avere abbastanza spazio libero nella
# partizione contente la cartella di lavoro.
# Lo script non dovrebbe necessitare di ulteriori istruzioni in quanto all'utente
# viene mostrata ad ogni scelta una breve spiegazione, comunque in caso di domande
# contattatemi (**NON sono ESPERTO** di mencoder/codifiche/bash-scripting ma
# cercherò di aiutarvi come posso)
#
# Tutto lo script è ancora sotto lavorazione: pur essendo *funzionante* sono presenti
# imperfezioni come, ad esempio, errori di battitura o brutte "impaginazioni", che
# verranno corrette a breve.
crea_fixer() ####### CREA I SORGENTI PER IL PROGRAMMA CEH MODIFICHERA' GLI HEADER.
{
echo "$PATH"
echo "#include <stdio.h>" > fix.cpp
echo "int main(int argc, char *argv[])" >> fix.cpp
echo "{" >> fix.cpp
echo " if(argc = 0)" >> fix.cpp
echo " {" >> fix.cpp
echo " printf(\"\\nUsage: file path/nomevile.avi\\n\\n\");" >> fix.cpp
echo " return 1;" >> fix.cpp
echo " }" >> fix.cpp
echo " else" >> fix.cpp
echo " {" >> fix.cpp
echo " FILE *file;" >> fix.cpp
echo " file = fopen(argv[1], \"rb+\");" >> fix.cpp
echo " fseek(file, 112L, SEEK_SET);" >> fix.cpp
echo " fprintf(file, \"xvid\");" >> fix.cpp
echo " fseek(file, 188L, SEEK_SET);" >> fix.cpp
echo " fprintf(file, \"XVID\"); " >> fix.cpp
echo " fclose(file);" >> fix.cpp
echo " printf(\"Header corretti\n\n\");" >> fix.cpp
echo " }" >> fix.cpp
echo " return 0;" >> fix.cpp
echo " }" >> fix.cpp
}
VALIDA=0
while [ $VALIDA -eq 0 ]
do
dialog --backtitle "Fase 1: Ripping" --inputbox "Specificare la cartella di lavoro dello script (deve esistere e devi avere i permessi in scrittura)" 9 30 /tmp 2>/tmp/f.txt;
WORKDIR=`cat /tmp/f.txt`
if [ -x "$WORKDIR" ]; then #CONTROLLO SE LA CARTELLA ESISTE
if [ -w "$WORKDIR" ]; then
echo "permessi in scrittura: ok"
VALIDA=1
else
echo "permessi in scrittura: no"
dialog --backtitle "ERRORE!" --msgbox "Non hai i permessi in scrittura in questa cartella!" 9 30;
VALIDA=0
fi
else
echo "cartella non esistente"
dialog --backtitle "ERRORE!" --msgbox "Cartella NON esistente!!" 9 30;
VALIDA=0
fi;
done
dialog --backtitle "Fase 1: Ripping" --inputbox "In quale device è inserito il DVD da rippare?" 9 30 "/dev/hdc" 2>/tmp/f.txt;
DEVICE=`cat /tmp/f.txt`
$VALIDA=1
while [ $VALIDA -eq 1 ]
do
dialog --backtitle "Fase 1: Ripping" --inputbox "Quale chapter rippare?" 9 30 1 2>/tmp/f.txt;
CHAPTER=`cat /tmp/f.txt`
IDENTIFY=`mplayer -dvd-device $DEVICE dvd://$CHAPTER -identify`
dialog --backtitle "Chapter" --yesno "Il filmato mostrava il filmato corrispondente al chapter inserito. E' quello giusto?" 13 40
VALIDA=$?
done
TIME=`echo "$IDENTIFY" | grep ID_DVD_TITLE_"$CHAPTER"_LENGTH | cut -d '=' -f 2 | cut -d '.' -f 1`
TIME=`expr $TIME / 60`
echo "===========$TIME"
mencoder -dvd-device $DEVICE dvd://$CHAPTER -v -o /dev/null | grep aid > /tmp/f.txt
STREAMS=`cat /tmp/f.txt`
RIGA1=`echo "$STREAMS" | head -n 1`
AID1=`echo "$RIGA1" | cut -d " " -f 10`
AID1=`echo "$AID1" | cut -c -3`
#---------------------------
TMP=`echo "$STREAMS" | head -n 2`
RIGA2=`echo "$TMP" | tail -n 1`
AID2=`echo "$RIGA2" | cut -d " " -f 10`
AID2=`echo "$AID2" | cut -c -3`
#-----------------------------
TMP=`echo "$STREAMS" | head -n 3`
RIGA3=`echo "$TMP" | tail -n 1`
AID3=`echo "$RIGA3" | cut -d " " -f 10`
AID3=`echo "$AID3" | cut -c -3`
#-----------------------------
TMP=`echo "$STREAMS" | head -n 4`
RIGA4=`echo "$TMP" | tail -n 1`
AID4=`echo "$RIGA4" | cut -d " " -f 10`
AID4=`echo "$AID4" | cut -c -3`
#-----------------------------
TMP=`echo "$STREAMS" | head -n 5`
RIGA5=`echo "$TMP" | tail -n 1`
AID5=`echo "$RIGA5" | cut -d " " -f 10`
AID5=`echo "$AID5" | cut -c -3`
#-----------------------------
TMP=`echo "$STREAMS" | head -n 6`
RIGA6=`echo "$TMP" | tail -n 1`
AID6=`echo "$RIGA6" | cut -d " " -f 10`
AID6=`echo "$AID6" | cut -c -3`
dialog --backtitle "Fase 1: Ripping" --menu "Scegli la lingua da rippare" 18 70 6 "$AID1" "$RIGA1" "$AID2" "$RIGA2" "$AID3" "$RIGA3" "$AID4" "$RIGA4" "$AID5" "$RIGA5" "$AID6" "$RIGA6" 2>/tmp/f.txt;
LANGUAGE=`cat /tmp/f.txt`
############################ AUDIO
dialog --backtitle "Impostazioni Audio" --menu "Audio mp3: Scegli il bitrate:" 12 50 6 64 "Kbit/s (scadente)" 96 "Kbit/s" 112 "Kbit/s" 128 "Kbit/s (consigliata)" 192 "Kbit/s" 256 "Kbit/s (eccellente)" 2>/tmp/f.txt;
A_BITRATE=`cat /tmp/f.txt`
############################################ VIDEO
dialog --backtitle "Cropping" --msgbox "Ora il programma tenterà di trovare il valore di cropping più adeguato per eliminare le bande nere attorno al filmato. Attendi finchè non copare una scena con bordi ben definiti, poi premi invio per vedere il risultato del cropping. Tempi di attesa molto brevi possono portare ad errori nel caso di scene con bordi che si confondono con le fasce nere" 20 50;
CROPPING=`mplayer -ao oss -vf cropdetect -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000 | grep [CROP] | tail -n 1 | cut -d "(" -f 2 | cut -d "=" -f 2 | cut -d ")" -f 1`
echo "Cropping trovato: $CROPPING"
dialog --backtitle "Cropping" --msgbox "Le impostazioni di cropping trovate sono: $CROPPING. Passare alla prossima schermata per verificarle." 11 50;
mplayer -ao oss -vf rectangle=$CROPPING -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000
dialog --backtitle "Cropping" --menu "Le impostazioni di cropping vanno bene?" 12 45 2 1 "Si" 2 "No, voglio tentare manualmente" 2>/tmp/f.txt
AMANO=`cat /tmp/f.txt`
while [ $AMANO -eq 2 ]
do
dialog --backtitle "Cropping" --inputbox "Inserisci le impostazioni di cropping. (larghezza:altezza:xoffset:yoffset)" 15 50 "$CROPPING" 2>/tmp/f.txt;
CROPPING=`cat /tmp/f.txt`
echo "nuovo cropping: $CROPPING"
mplayer -ao oss -vf rectangle=$CROPPING -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000
dialog --backtitle "Cropping" --menu "Le impostazioni di cropping vanno bene?" 12 45 2 1 "Si, ho finito" 2 "No, voglio ritentare" 2>/tmp/f.txt
AMANO=`cat /tmp/f.txt`
done
AMANO=2
while [ $AMANO -eq 2 ]
do
dialog --backtitle "Scaling" --inputbox "Inserisci la risoluzione orizzontale voluta nel Divx. E' inutile (e dannosa per la qualità) una risoluzione maggiore di quella originale del DVD. Per questioni di compatibilita' la risoluzione verra' approssimata ad un multiplo di 16" 15 50 "640" 2>/tmp/f.txt;
ORES=`cat /tmp/f.txt`
ORES=`expr $ORES / 16 \* 16`
let "HRES_WIDE = (($ORES * 100) / 233)/16 * 16"
let "HRES_TV = (($ORES * 3) / 4)/16 * 16"
dialog --backtitle "Scaling" --inputbox "Inserisci la risoluzione verticale voluta nel Divx. Consigliata per film Widescreen: $HRES_WIDE, per formato TV $HRES_TV. E' consigliabile usare un multiplo di 16, (le risoluzioni proposte rispettano questo consiglio)" 15 50 "$HRES_WIDE" 2>/tmp/f.txt;
HRES=`cat /tmp/f.txt`
mplayer -ao oss -vf crop=$CROPPING,scale=$ORES:$HRES -dvd-device $DEVICE dvd://$CHAPTER -aid $LANGUAGE -sb 100000000
dialog --backtitle "Scaling" --menu "Le impostazioni di scaling vanno bene?" 12 45 2 1 "Si, ho finito" 2 "No, voglio ritentare" 2>/tmp/f.txt
AMANO=`cat /tmp/f.txt`
done
dialog --backtitle "Durata" --inputbox "Inserisci la durata del film (minuti):" 9 30 $TIME 2>/tmp/f.txt;
TIME=`cat /tmp/f.txt`
TIME=`expr $TIME \* 60`
dialog --backtitle "Peso Divx" --inputbox "Inserisci la dimensione voluta del Divx (in Megabyte)" 9 30 2>/tmp/f.txt;
DIMENSIONE=`cat /tmp/f.txt`
DIM_MB="$DIMENSIONE"
DIMENSIONE=`expr $DIMENSIONE \* 8380` #PORTO IN KILOBIT (approx per difetto)
# Trova lo spazio occupato dalla traccia audio
AUDIO=`expr $A_BITRATE \* $TIME`
# Calcola il bitrate video da usare
BITRATE=`expr $DIMENSIONE - $AUDIO`
BITRATE=`expr $BITRATE / $TIME`
ALZA_VOL=5
CHUNK_DIM="700mb"
# Imposta il bitrate video a 6000 Kbit/s se questo risulta maggiore
if [ $BITRATE -gt 6000 ]
then BITRATE=6000
fi
DIVIDERE="1"
if [ $DIM_MB -gt 700 ]; then
if [ 1401 -gt $DIM_MB ]; then
dialog --backtitle "Dividere il filmato?" --yesno "La dimensione specificata rendera' il file troppo grande per poter essere masterizzato su un cd da 700 MB, ma potrebbe essere masterizzato su due cd dividendo il file in uno da 700 MB ed uno da `expr $DIM_MB - 700` MB \n\nVuoi tagliare il filmato in due parti?" 15 50
DIVIDERE=$?
fi
fi
dialog --backtitle "Titolo" --inputbox "Inserire il nome da assegnare al file del Divx:" 9 30 .avi 2>/tmp/f.txt;
FILENAME=`cat /tmp/f.txt`;
dialog --backtitle "Quanti passaggi" --menu "Quanti passaggi eseguire? Il secondo passaggio migliora NOTEVOLMENTE la qualità, (raddoppiando ovviamente i tempi di esecuzione)" 12 45 2 1 "Un solo passaggio" 2 "Due passaggi" 2>/tmp/f.txt
PASSAGGI=`cat /tmp/f.txt`
SWS=2
V4MV=":v4mv"
VCODEC="mpeg4"
XVID_HEADER=0
dialog --backtitle "Opzioni" --yesno "Si desidera modificare alcuni parametri per configurazioni avanzate (nel caso si scelga no verranno in genere utilizzate le impostazioni che promettono una QUALITA' MAGGIORE a scapito di TEMPI DI CODIFICA PIU' LUNGHI)" 13 40
AVANZATE=$?
if [ $AVANZATE -eq 0 ]; then
dialog --backtitle "" --menu "Quale versione di codec utilizzare?" 12 45 5 "mpeg4" "Divx4 (consigliato)" "msmpeg4" "Vecchio codec divx" "mjpeg" "Motion Jpeg" "h263" "Codec H263" "h263p" "Codec H263 Plus" 2>/tmp/f.txt
VCODEC=`cat /tmp/f.txt`
dialog --backtitle "Opzioni avanzate" --yesno "Utilizzare l'opzione v4mv?\n\nPermette 4 vettori di movimento per ogni macroblock (qualità leggermente migliore, tempo di codifica maggiore)" 10 40
V4MV=$?
if [ $V4MV -eq 0 ]
then V4MV=":v4mv"
UTIL="Si"
else
V4MV=""
UTIL="no"
fi
dialog --backtitle "" --menu "Quale metodo di ridimensionamento utilizzare?" 12 45 3 2 "Bicubico (consigliato)" 1 "Bilineare" 0 "Bilineare veloce" 2>/tmp/f.txt
SWS=`cat /tmp/f.txt`
dialog --backtitle "Volume" --inputbox "Di quanto amplificare il volume?\n0 = nulla\n10=massimo guadagno.\n Consigliato: 7" 14 30 7 2>/tmp/f.txt;
ALZA_VOL=`cat /tmp/f.txt`;
dialog --backtitle "Opzioni avanzate" --yesno "Il codec libavc crea un file perfettamente compatibile con l'xvid, ma che non viene letto da molti lettori. E' possibile modificare gli header del file in maniera da rendelo compatibile con tutti i media player con codec xvid. Procedere? (consigliato: SI', è necessario avere il *compilatore g++* installato)" 10 40
XVID_HEADER=$?
fi
dialog --backtitle "Modalità di esecuzione" --menu "Creare il divx ora o salvare i comandi in uno script da eseguire più tardi? Se non sai cosa fare scegli di creare il divx ora (opzione 1)" 12 45 2 1 "Crea il divx ora" 2 "Salva i comandi in uno script" 2>/tmp/f.txt
DIVX_SCRIPT=`cat /tmp/f.txt`
dialog --backtitle "File temporanei" --yesno "Verranno creati 2 file temporanei nella cartella $WORKDIR: dvdrippato.vob (della dimensione del DVD, 4.3 o 9 GB) e divx2pass.log (se si è deciso di fare 2 passaggi, di pochi Kbyte). Eliminare questi file temporanei all'uscita?" 15 30
ELIMINARE=$?
if [ $ELIMINARE -eq 0 ]; then
ELIMINATEMP="Si"
echo "Scelto di eliminare"
else
ELIMINATEMP="No"
echo "Scelto di non eliminare"
fi
dialog --backtitle "Opzioni" --yesno "Si desidera spegnere il sistema al termine delle operazioni?" 8 30
HALT=$?
if [ $HALT -eq 0 ]; then
dialog --backtitle "Opzioni" --inputbox "Inserisci il comando per spegnere il pc (completo di 'sudo' se necessario, non consentiti gli alias bash)" 9 30 "sudo /sbin/shutdown -h now" 2>/tmp/f.txt;
HALT=`cat /tmp/f.txt`
fi
dialog --backtitle "Riepilogo" --yesno "Nome del file: $FILENAME\nDurata: $TIME sec.\nDimensione prevista: $DIM_MB MByte\nBitrate Audio: $A_BITRATE KBit/s\nBitrate Video: $BITRATE KBit/s\nN# Passaggi: $PASSAGGI\nRisoluzione: $ORES x $HRES px\nCropping: $CROPPING\nUtilizza V4MV: $UTIL\nElimina i file temporanei: $ELIMINATEMP\n\nContinuare? scegliere *no* per uscire" 18 50
FARLO=$?
if [ $FARLO -eq 1 ]
then exit 1
fi
if [ $DIVX_SCRIPT -eq 1 ]; then ###################CREO IL DIVX
cd $WORKDIR
echo "mencoder -dvd-device $DEVICE dvd://$CHAPTER -ovc copy -oac copy -aid $LANGUAGE -o dvdrippato.vob"
if [ $PASSAGGI -eq 1 ]; then
mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob
else
mencoder -o /dev/null -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob
mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=2 -sws $SWS dvdrippato.vob
fi
if [ $XVID_HEADER -eq 0 ]; then
crea_fixer
g++ fix.cpp -o fix
rm fix.cpp
fix $FILENAME
rm fix
fi
if [ $ELIMINARE -eq 0 ]; then
rm dvdrippato.vob
rm divx2pass.log
echo "Eliminati i file temporanei"
echo "$WORKDIR/dvdrippato.vob"
echo "$WORKDIR/divx2pass.log"
else
echo "File temporanei lasciati in $WORKDIR"
fi
if [ $DIVIDERE -eq 0 ]; then
mencoder $FILENAME -ovc copy -oac copy -endpos $CHUNK_DIM -o CD_1__$FILENAME
CHUNK_TIME=`mplayer -endpos 0 -identify cd1_$FILENAME | grep LENGTH | cut -d '=' -f 2 | cut -d '.' -f 1`
CHUNK_TIME=`expr $CHUNK_TIME - 8`
mencoder $FILENAME -ovc copy -oac copy -ss $CHUNK_TIME -o CD_2__$FILENAME
rm $FILENAME
fi
if [ $HALT -eq 1 ]; then
dialog --backtitle "OPERAZIONE COMPLETATA!" --msgbox "Operazioni completate! Il vostro Divx ($FILENAME)si trova ora nella cartella $WORKDIR" 11 50;
else
$HALT
fi
else ###################CREO LO SCRIPT
cd $WORKDIR
echo "cd $WORKDIR" > creadivx.sh
echo "mencoder -dvd-device $DEVICE dvd://$CHAPTER -ovc copy -oac copy -aid $LANGUAGE -o dvdrippato.vob" >> creadivx.sh
if [ $PASSAGGI -eq 1 ]; then
echo "mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob" >> creadivx.sh
else
echo "mencoder -o /dev/null -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=1 -sws $SWS dvdrippato.vob" >> creadivx.sh
echo "mencoder -o $FILENAME -oac mp3lame -lameopts br=$A_BITRATE:abr:vol=$ALZA_VOL -ovc lavc -vf crop=$CROPPING,scale=$ORES:$HRES -lavcopts vcodec=$VCODEC:vbitrate=$BITRATE:vhq$V4MV:vpass=2 -sws $SWS dvdrippato.vob" >> creadivx.sh
fi
if [ $XVID_HEADER -eq 0 ]; then
crea_fixer
echo "g++ fix.cpp -o fix" >> creadivx.sh
echo "rm fix.cpp" >> creadivx.sh
echo "fix $FILENAME" >> creadivx.sh
echo "rm fix" >> creadivx.sh
fi
if [ $ELIMINARE -eq 0 ]; then
echo "rm dvdrippato.vob" >> creadivx.sh
echo "rm divx2pass.log" >> creadivx.sh
echo "echo 'Eliminati i file temporanei'" >> creadivx.sh
echo "echo '$WORKDIR/dvdrippato.vob'" >> creadivx.sh
echo "echo '$WORKDIR/divx2pass.log'" >> creadivx.sh
else
echo "echo 'File temporanei lasciati in $WORKDIR'" >> creadivx.sh
fi
if [ $DIVIDERE -eq 0 ]; then
echo "mencoder $FILENAME -ovc copy -oac copy -endpos $CHUNK_DIM -o CD_1__$FILENAME" >> creadivx.sh
echo "CHUNK_TIME=\`mplayer -endpos 0 -identify cd1_$FILENAME | grep LENGTH | cut -d '=' -f 2 | cut -d '.' -f 1\`" >> creadivx.sh
echo "CHUNK_TIME=\`expr \$CHUNK_TIME - 8\`" >> creadivx.sh
echo "mencoder $FILENAME -ovc copy -oac copy -ss \$CHUNK_TIME -o CD_2__$FILENAME" >> creadivx.sh
echo "rm $FILENAME" >> creadivx.sh
fi
if [ $HALT -eq 1 ]; then
echo " "
else
echo "$HALT" >> creadivx.sh
fi
dialog --backtitle "OPERAZIONE COMPLETATA!" --msgbox "Operazioni completate! Per creare il vostro divx lanciate lo script $WORKDIR/creadivx.sh" 11 50;
fi
- Dipendenze: Mencoder 1.0, dialog
- Data: 16/02/2006
- Autore: wakkokid
- Versione: 0.2 Beta
- Autori delle revisioni: wakkokid