#!/bin/sh ####################################################################################################### # AUTOR: (c) Yasiel Ordońez Abreu. # WRITTEN BY: May 09,2013 # VERSIÓN: 1.0 # LICENCIA: GPL (http://www.gnu.org/licenses/gpl.html) # NOMBRE: xvidConverter # INSTALACIÓN: Copiar en el directorio: "~/.gnome2/nautilus-scripts/Multimedia/Converter" # DESCRIPCIÓN: Convierte vídeos y añade subtítulos al vídeo avi, para DVD reproductor ####################################################################################################### # Requisitos: zenity (para la interface gráfica), ffmpeg & mencoder (para convertir los vídeos) # Para asegurarse de que todo esto se ha instalado, hacer esto en un terminal... # sudo apt-get install zenity ffmpeg mencoder # Repositorios Universe deben estar habilitadas primero. https://wiki.ubuntu.com/AddingRepositoriesHowto ####################################################################################################### # Change log... # 16/May/2013 # - Mejorado el apartado de selección de tamaño del vídeo a convertir (Resolución de Vídeo). # - Agregadas las opciones gráficas para seleccionar la Calidad del Vídeo. # - Agregadas las opciones gráficas para seleccionar el Bitrate de Audio de nuestros Vídeos. # - Agregadas las opciones gráficas para seleccionar el Aspecto del Vídeo. # - Organizado parte del código original de la aplicación y borrado partes innecesarias. # - Corregido ortográfico. ####################################################################################################### # Comprobando el software necesario, para correr esta aplicación. mencoder_bin=`which mencoder | grep -c "mencoder"` # Chequeando mencoder if [ $mencoder_bin -eq "0" ]; then zenity --error --title="Error - Falta Software" \ --text="Usted no tiene el paquete mencoder instalado. Por favor, instalarlo para poder utilizar este script. Asegúrese de que los repositorios Universe están habilitados y a continuación, escriba: 'sudo apt-get install mencoder' en un terminal." exit fi # Seleccionando el formato a que deseamos convertir. title="Seleccione a que formato de Vídeo desea convertir $video_in_type" video_out_type=`zenity --width="550" --height="150" --title="$title" --list --radiolist --column="" \ --column="Tipo de Vídeo" --column="Descripción" \ TRUE "XVID" "Crear un AVI (XVID MPEG-4) para reproductores DVD-Vídeo"\ | sed 's/ max//g' ` if [ ! "$video_out_type" ]; then # Chequeando si se ha cancelado, la ventana de selección de lo que se va a convertir. zenity zenity --error --title="Error" --text="Ha cancelado la aplicación, por lo que será cerrada :(" exit fi # XVID Options if [ "$video_out_type" = "XVID" ]; then # Escogiendo una resolución de Vídeo xvid_resolution="`zenity --width="280" --height="260" --text "Seleccione una resolución de vídeo antes de continuar." --separator "" --hide-column 2 --print-column 2 --list --column "Resoluciones" --column "columna oculta" "PAL DVD size, 720x576" " -vf scale=720:576" "NTSC DVD size, 720x480" " -vf scale=700:480" "Standard TV size, 640x480" " -vf scale=600:480" "PAL VCD size,352x288" " -vf scale=352:288" "NTSC VCD size, 352x240" " -vf scale=352:240" "NTSC VCD size, 320x240" " -vf scale=320:240"`" if [ ! "$xvid_resolution" ]; then # Chequeando si se ha cancelado, la ventana de selección de lo que se va a convertir. zenity zenity --error --width="450" --title="Error" --text="Ha cancelado la aplicación o no ha especificado una de la resoluciones a escoger, por lo que será cerrada dicha aplicación , por favor inténtelo nuevamente :(" exit fi title="Seleccione la calidad de su vídeo" # Escogiendo la calidad de nuestro Vídeo xvid_vid_qu=`zenity --width="380" --height="250" --title="$title" --list --radiolist --column="" \ --column="Calidad de video" --column="Descripción" \ TRUE "6" "Insane High Quality"\ FALSE "5" "Ultra High Quality"\ FALSE "4" "Extreme High Quality"\ FALSE "3" "Very High Quality"\ FALSE "2" "High Quality"\ FALSE "1" "Normal Quality"\ | sed 's/ max//g' ` if [ ! "$xvid_vid_qu" ]; then # Chequeando si se ha cancelado, la ventana de selección de lo que se va a convertir. zenity zenity --error --title="Error" --text="Ha cancelado la aplicación, por lo que será cerrada :(" exit fi title="Seleccione la velocidad de bits de vídeo" # Escogiendo el bitrate de audio de nuestro Vídeo xvid_vid_br=`zenity --width="380" --height="220" --title="$title" --list --radiolist --column="" \ --column="Bitrate Audio" \ TRUE "1500" \ FALSE "1300" \ FALSE "1200" \ FALSE "900" \ | sed 's/ max//g' ` if [ ! "$xvid_vid_br" ]; then # Chequeando si se ha cancelado, la ventana de selección de lo que se va a convertir. zenity zenity --error --title="Error" --text="Ha cancelado la aplicación, por lo que será cerrada :(" exit fi title="Seleccione el aspecto del Vídeo" # Escogiendo el aspecto del Vídeo xvid_aspect=`zenity --width="380" --height="170" --title="$title" --list --radiolist --column="" \ --column="Aspectos" --column="Descripción" \ FALSE "4:3" "TV Normal"\ TRUE "16:9" "Panorámico"\ | sed 's/ max//g' ` if [ ! "$xvid_aspect" ]; then # Chequeando si se ha cancelado, la ventana de selección de lo que se va a convertir. zenity zenity --error --title="Error" --text="Ha cancelado la aplicación, por lo que será cerrada :(" exit fi # XVID Encode case $# in 1 ) if [ -e "$1" ] then # Convirtiendo el archivo $1 a formato avi. mencoder $xvid_resolution -oac mp3lame -lameopts cbr=128 -ovc xvid -of avi -xvidencopts bitrate=$xvid_vid_br:me_quality=$xvid_vid_qu -aspect $xvid_aspect -ofps 25 "$1" -o "$1.avi" 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/," ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Posición :\\t"$1"\\nCuadros :\\t"$2"\\nPorcentaje :\\t"$3"%\\nRadio de cuadros :\\t"$4"\\nTiempo restante :\\t"$6; fflush();}' | zenity --progress --auto-kill --auto-close --title="Progreso" # Cambio de formato terminado. zenity --info --text="El vídeo ya se convirtió a avi! :)" else # En caso de error zenity --info --text="El vídeo $1 no existe en el sistema! :(" fi ;; 2 ) if [ -e "$1" ] && [ -e "$2" ]; then # Convirtiendo y subtitulando el archivo $1 a formato avi mencoder $xvid_resolution -oac mp3lame -lameopts cbr=128 -ovc xvid -of avi -xvidencopts bitrate=$xvid_vid_br:me_quality=$xvid_vid_qu -aspect $xvid_aspect -ofps 25 "$1" -sub "$2" -o "$1-sub.avi" -subcp ISO-8859-15 -sub-bg-alpha 255 2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/," ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Posición :\\t"$1"\\nCuadros :\\t"$2"\\nPorcentaje :\\t"$3"%\\nRadio de cuadros :\\t"$4"\\nTiempo restante :\\t"$6; fflush();}' | zenity --progress --auto-kill --auto-close --title="Progreso" # Cambio de formato y subtitulado terminado. zenity --info --text="El vídeo ya se convirtió a avi! :)" else # En caso de error zenity --info --text="Alguno de los archivos especificados no existe en el sistema! :(" fi ;; esac fi