Que hongo?… Hace ya un buen tiempo que no posteaba nada. Afortunadamente ha sido por trabajo pero bueno, ese es otro cantar.
En esta ocasión, les escribo para compartir este bash script que convierte archivos AVI a DVD listos para quemarse. Me he dedicado de algunos meses para acá a bajar películas para mi hijo y pues la mayoría están en AVI. Como mi DVD player chafón no lee los AVI pues tengo que convertirlos a DVD antes de poder quemarlos. Para ese entonces, en linuxquestion me topé con un post donde exlicaba como hacerlo y dentro de uno de los comentarios había un script que habían hecho para automatizar el proceso. Lo que hice fue modificarlo un poco para que cheque dependencias, existencia del archivo y que no haga tantas preguntas :P. En fin, Aquí les dejo el convertidor.
Para los que son muy novatos en la onda de linux les explico rápidamente:
1. Abran con su editor de texto favorito y peguen el siguiente script:
#!/bin/bash
# made by CousinCocaine (bglnelissen)
# All this info comes from one of my favorite websites:
# http://www.linuxquestions.org
# more specific:
# http://www.linuxquestions.org/questions/answers/556
# thnx ptesone
##############################
## Modified by vrS ##
##############################
dep1=`which transcode`
dep2=`which mplayer`
dep3=`whereis mjpegtools |cut -f 2 -d":" |sed 's/ //'`
dep4=`which ffmpeg`
dep5=`which dvdauthor`
dep6=`which dvd+rw-format`
function echolightgray {
echo -e "\033[37;0m $1 \033[0m"
}
function echodarkgray {
echo -e "\033[30;1m $1 \033[0m"
}
function echolightblue {
echo -e "\033[34;1m $1 \033[0m"
}
function echolightgreen {
echo -e "\033[32;1m $1 \033[0m"
}
function echolightcyan {
echo -e "\033[36;1m $1 \033[0m"
}
function echolightred {
echo -e "\033[31;1m $1 \033[0m"
}
function echolightpurple {
echo -e "\033[35;1m $1 \033[0m"
}
function echoyellow {
echo -e "\033[33;1m $1 \033[0m"
}
function echowhite {
echo -e "\033[37;1m $1 \033[0m"
}
#emptying terminal
reset
if [ $# -eq 0 ]
then
echo
echolightcyan "[+]Usage: $0 [your_movie.avi]"
echo
exit
fi
avimovie=$1
if [ -e "$avimovie" ]
then
#Checking dependencies...
if [ "$dep1" == '' -o "$dep2" == '' -o "$dep3" == '' -o "$dep4" == '' -o "$dep5" == '' -o "$dep6" == '' ]
then
echolightred "[ERROR]"
echolightcyan "
The following dependencies are required:
\t - transcode
\t - mplayer
\t - dvdauthor
\t - mjpegtools
\t - dvd+rw-tools
\t - ffmpeg"
echo
exit
fi
tmp=`echo $avimovie |sed 's/.avi// '`
pathdvd=$tmp"_DVD"
echoyellow "Creating project PATH..."
mkdir -p "$pathdvd"
sleep 1
echoyellow "Preparing Files..."
mv $avimovie $pathdvd
cd $pathdvd
sleep 1
echolightgreen "Split the .avi file into 2 separate files, one for video and one for audio:
\t - 1 video file, '.m2v'
\t - 1 audio file, '.ac3'"
sleep 2
transcode -i "$avimovie" -y ffmpeg --export_prof dvd-ntsc --export_asr 3 -o "$avimovie" -D0 -s2 -m "$avimovie".ac3 -J modfps=clonetype=3 --export_fps 29.97
echoyellow "Put the video & audio file back together (MPEG)..."
sleep 2
mplex -f 8 -o dvd_movie.mpg "$avimovie".m2v "$avimovie".ac3
echo ""
echoyellow "Creating the right DVD structure..."
sleep 2
echo -e "<dvdauthor dest=\"DVD\">
<vmgm />
<titleset>
<titles>
<pgc>
<vob file=\"dvd_movie.mpg\" chapters=\"0,15:00,30:00,45:00,1:00:00\"/>
</pgc>
</titles>
</titleset>
</dvdauthor>" > "dvdauthor.xml"
echo
sleep 2
dvdauthor -x dvdauthor.xml
mkdir Avi_Original
mv $avimovie Avi_Original
rm -f dvdauthor.xml dvd_movie.mpg *.ac3 *.m2v
echo
echoyellow "Your DVD image files and you project files are in: [$pathdvd] AND The original AVI file is in [$pathdvd/Avi_Original]"
echo
until [ "$burn" == "y" -o "$burn" == "n" -o "$burn" == "Y" -o "$burn" == "N" ]
do
echodarkgray 'Would you like to burn your DVD now? (Y or N)'
read burn
done
if [ "$burn" == "Y" -o "$burn" == "y" ]
then
growisofs -Z /dev/dvd -dvd-video "DVD/"
fi
echoyellow "Everything is done. Enjoy your DVD :)"
else
echo
echolightred "[$avimovie] Doesnt Exist"
echo
fi
2. Guardarlo con el nombre de avi2dvd en el Escritorio
3. Abrir la consola y ubicarte en el escritorio. En la mayoría de los casos: cd ~/Desktop
4. Mover el archivo en /usr/bin asi: sudo mv avi2dvd /usr/bin/
5. darle persmisos de ejecucion: sudo chmod +x /usr/bin/avi2dvd
¡Listo!
Modo de uso
La manera de usarlo es simple, abres la consola, te ubicas en el directorio donde se encuentre la “Pelicula.avi” y escribes:avi2dvd Pelicula.avi
Tardará un poco en lo que realiza todo el proceso de conversión, obviamente, pero quedará un directorio con la estructura de un DVD completo para poder quemarse sin problemas
Para probar tu nuevo DVD escribe:
xine dvd:/ruta/del/DVD/VIDEO_TS