#!/bin/bash # # (c) 2002 by Killer # # versione 0.4 # # 20/09/2002: aggiunta la funzionalita' di taglio automatico! # 01/10/2002: migliorata la funzione per riscalare la risoluzione # 09/10/2002: migliorato il grabbing delle tracce audio # # Se avete commenti, critiche, suggerimenti, etc.. # scrivetemi un e-mail. # Ringrazio gli sviluppatori di MPlayer per il loro eccezionale # programma e Patrick J. Volkerding che con "pkgtool" # mi ha dato l'ispirazione. # # Questo script e' software libero; potete ridistribuirlo # e/o modificarlo secondo i termini stabiliti dalla GNU # General Public License pubblicata dalla Free Software # Foundation. # # Questo script viene distribuito nella speranza di essere utile # ma SENZA ALCUNA GARANZIA. # Vedi la GNU General Public License per ulteriori dettagli. # Se non ne avete ricevuta una copia con questo software # fate riferimento a: http://www.fsf.org/licenses/gpl.txt # # # README: # # Attenzione ad avere i permessi di scrittura nella # directory /tmp e di poter eseguire lo shutdown del sistema # (in caso contrario usate il programma sudo). # # Non dimenticate di settare i parametri del vostro masterizzatore. # # E' tutto. # Buon divertimento! # # Specificare i settaggi del proprio masterizzatore: CDR_DEVICE=/dev/scd1 CDR_SPEED=4 CDR_ID=0,1,0 dialog --backtitle "MencTool 0.4" --menu "Quanti cd (700 Mb) si desidera usare?" 9 45 2 1 "un cd (consigliato)" 2 "due cd (se il film supera i 150 min)" 2>/tmp/f; SPACE=`cat /tmp/f` # Crea il file di summary echo "Cd necessari: `echo $SPACE`" > /tmp/summary; # Calcola lo spazio totale a disposizione per il film (Kbit) SPACE=`expr $SPACE \* 690 \* 8192` dialog --backtitle "MencTool 0.4" --inputbox "Quale titolo si desidera rippare?" 9 30 1 2>/tmp/f; TRACK=`cat /tmp/f` dialog --backtitle "MencTool 0.4" --inputbox "Inserisci la durata del film (minuti):" 9 30 2>/tmp/f; TIME=`cat /tmp/f` # Conversione in secondi TIME=`expr $TIME \* 60` dialog --backtitle "MencTool 0.4" --menu "Scegli il bitrate audio:" 11 30 4 64 "Kbit/s" 96 "Kbit/s" 112 "Kbit/s" 128 "Kbit/s" 2>/tmp/f; A_BITRATE=`cat /tmp/f` # Trova lo spazio occupato dalla traccia audio AUDIO=`expr $A_BITRATE \* $TIME` # Calcola il bitrate video da usare BITRATE=`expr $SPACE - $AUDIO` BITRATE=`expr $BITRATE / $TIME` # Imposta il bitrate video a 6000 Kbit/s se questo risulta maggiore if [ $BITRATE -gt 6000 ] then BITRATE=6000 fi dialog --backtitle "MencTool 0.4" --menu "Scegli la lingua:" 12 30 5 "en" inglese "it" italiano "fr" francese "de" tedesco "hu" ungherese 2>/tmp/f LANGUAGE=`cat /tmp/f` dialog --backtitle "MencTool 0.4" --menu "Scegli la risoluzione orizzontale:" 14 30 4 720 "(originale)" 640 "" 480 "" 360 "" 2>/tmp/f; RESOLUTION=`cat /tmp/f` dialog --backtitle "MencTool 0.4" --inputbox "Inserire il nome da assegnare al file:" 9 30 .avi 2>/tmp/f; FILENAME=`cat /tmp/f; rm -f /tmp/f` dialog --backtitle "MencTool 0.4" --yesno "Al termine del ripping vuoi masterizzare il film?" 9 30 BURN=$? if [ $BURN -eq 0 ] then eject $CDR_DEVICE; dialog --backtitle "MencTool 0.4" --msgbox "Inserire un Cd-R da 700 Mb..." 9 30; fi dialog --backtitle "MencTool 0.4" --yesno "Si desidera spegnere il sistema al termine delle operazioni?" 8 30 # Variabile verificata al termine dello script per impartire o meno lo shutdown HALT=$? # Crea il file di testo del summary echo "Titolo selezionato: `echo $TRACK`" >> /tmp/summary; echo "Bitrate video: `echo $BITRATE` Kbit/s" >> /tmp/summary; echo "Risoluzione: `echo $RESOLUTION` pixel" >> /tmp/summary; echo "Bitrate audio: `echo $A_BITRATE` Kbit/s" >> /tmp/summary; echo "Lingua: `echo $LANGUAGE`" >> /tmp/summary; dialog --backtitle "MencTool 0.4" --textbox /tmp/summary 11 31 rm -f /tmp/summary; clear; cd; # Log dell'ora di inizio ripping date > time.txt; rm -f frameno.avi lavc_stats.txt divx2pass.log; # Trova il valore adeguato di crop per il taglio delle bande nere mencoder -dvd $TRACK -chapter 2 -endpos 5 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$BITRATE:keyint=50:vhq -vop cropdetect,scale -zoom -xy $RESOLUTION -sws 2 -oac copy -o /dev/null | grep vop | tail -n 1 | cut -d "=" -f 2 | tr -d ')' > /tmp/f; CROP=`cat /tmp/f; rm -f /tmp/f` # Individua la traccia audio mencoder -dvd $TRACK -v | grep "$LANGUAGE aid" | cut -d ":" -f 5 | tr -d ' ' > /tmp/f; AUDIOT=`cat /tmp/f; rm -f /tmp/f` # Scarica sul disco il titolo selezionato. Modificare se non si dispone di spazio sufficiente mencoder -dvd $TRACK -ovc copy -oac copy -aid $AUDIOT -o TEMP.VOB; # Primo passo: compressione audio cat TEMP.VOB | mencoder - -ovc frameno -oac mp3lame -lameopts br=$A_BITRATE:cbr:vol=3 -o frameno.avi; # Secondo passo: primo passo compressione video cat TEMP.VOB | mencoder - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$BITRATE:keyint=50:vhq:vpass=1 -vop crop=$CROP,scale -zoom -xy $RESOLUTION -sws 2 -oac copy -o /dev/null; # Terzo passo: secondo passo compressione video e aggiunta dell'audio cat TEMP.VOB | mencoder - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$BITRATE:keyint=50:vhq:vpass=2 -vop crop=$CROP,scale -zoom -xy $RESOLUTION -sws 2 -oac copy -o $FILENAME; # Cancella i file temporanei rm -f frameno.avi TEMP.VOB; # Log dell'ora di fine ripping date >> time.txt # Masterizza il film if [ $BURN -eq 0 ] then mkisofs -J -l -V "$FILENAME" $FILENAME | cdrecord -v dev=$CDR_ID speed=$CDR_SPEED -data - fi # Impartisce lo shutdown usando il programma sudo (per gli utenti non privilegiati) if [ $HALT -eq 0 ] then sudo halt fi