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
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
Usinggracias y saludos
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