• Comentarios

    • José Enrique: Está muy bueno, creo que es una de las partes más complicadas para trabajar en una web, sobre todo...
    • manuel: Es difícil conseguir subtitulos que estén sincronizados con las películas, más si las mismas están recién...
    • Miguel Andre: Me parece muy buena forma, porque el formato de fechas sólo he visto en versión inglés en php
    • Maryan Ana: Hasta los momentos no he podido crear una asistencia remota, siempre me da problema con algo, no se si un...

How-To: Convertir AVI to DVD para Linux

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

2 Comentarios  »

  1. daniel2073 says:

    hola amigo tengo un problema con tu script me marca un error en la linea 84 y la verdad no se nada de bash te agradeceria mucho si me puedes decir como lo arreglo
    gracias y saludos

    Using Mozilla Firefox Mozilla Firefox 3.5.6 on Fedora Linux Fedora Linux
  2. admin says:

    Hola Daniel, gracias por visitar el blog. En la línea 84 solo hay un espacio. Intenta copiar el codigo en texto plano ya que si lo copias así como está es probable que te marque algún error por el ajuste CSS

    Using Mozilla Firefox Mozilla Firefox 3.5.3 on Linux Linux

RSS feed for comments on this post, TrackBack URI

Deja tu comentario