[Previo por Fecha] [Siguiente por Fecha] [Previo por Hilo] [Siguiente por Hilo]
[Hilos de Discusión] [Fecha] [Tema] [Autor]On Sat, 2003-09-13 at 18:41, Miguel José Hdz y López wrote: > Hola lista.. alguien de ustedes ha usado mplayer? Estoy batallando un > poco, tengo una pelicula con sus subtitulos en español, el detalle es > que quiero grabar otro archivo .avi de esa pelicula ya con los > subtitulos en español para asi poder grabarlo a vcd y tener mi pelicula > ya subtitulada. > > Alguien ya ha hecho eso? > > Ahora, lo que intente hacer fue esto: > mplayer -sub subtitles.sub -font /root/.mplayer/arial.tff pelicula.avi > > new-file.avi > > pero ni asi funciono :( > Espero sus comentarios. Hola, puedo sentir tu dolor, también he caminado por ese derrotero de amargura que significa usar mplayer y mencoder para pasar de un formato a otro. Bueno, primero, para convertir a VCD, tienes que pasar de AVI (que es una cáscara para una multitud de codificadores) a MPG-2. Para ésto tienes que usar mplayer especificándole que decodifique a un par de archivos el audio y el video. Luego con transcode (un paquete que instalas aparte) pasas por mencoder para codificar y mezclar de nuevo audio y video en el nuevo formato. Con vcdimager creas las opciones y los capitulos y toda la cosa. Bueno, ahora ¿por qué he sufrido tanto si parece tan fácil? Bueno, pues porque nunca he conseguido que se sincronicen audio y video. Quizá sea que mi máquina no sea muy rápida (Pentium III a 1GHz, 256KB de cache y 1.5 GB de RAM) o que mi karma es malo o que la alineación de los planetas no ha sido la adecuada. Preguntándo cómo se hace el asunto en una lista, un chavo español me pasó un programilla en shell (que anexo como añadido) que a él le jala. Por supuesto a mí no. Espero que alguien haya resuelto el asunto, porque tengo algo así como unos 180GB de programas de televisión y cosas que uno se encuentra en la red que me encantaría poder convertir a VCD o SVCD para poderlos ver en un tocador de DVD y con la comodidad de estar tumbado frente a la telera en la sala y no en una silla frente a la compu. Saludos.
#!/bin/bash # Este script pasa un Divx a SVCD. Para los archivos temporales se # necesita al menos 4.5 Gigas (m2v y mpa, los .mpg y los .bin) DIR=`pwd` TEMPFOLDER=/tmp/divx2svcd-$RANDOM TEMPLATE=/home/paranouei/DIVX-TO-VCD/templates/SVCD-480x576-CQ-2CD CDSIZE=795 if [ $# -eq 0 ]; then echo "Usage:" echo " divx2svcd <divxfile>" exit 1 fi mkdir $TEMPFOLDER cd $TEMPFOLDER echo "Dir: $DIR" echo "Temp: $TEMPFOLDER" tcprobe -i "$1" > $TEMPFOLDER/info WIDTH=`grep '\[avilib\] V:' $TEMPFOLDER/info | perl -e ' $line=<STDIN> ; $line =~ /width=(\d+)/ ; print $1' ` HEIGHT=`grep '\[avilib\] V:' $TEMPFOLDER/info | perl -e ' $line=<STDIN> ; $line =~ /height=(\d+)/ ; print $1' ` FPS=`grep '\[avilib\] V:' $TEMPFOLDER/info | perl -e ' $line=<STDIN> ; $line =~ /V: (.+?) fps/ ; print $1' ` FPS=`echo "scale=1 ; $FPS/1"| bc -l` echo "Archivo de $WIDTH X $HEIGHT a $FPS fps" if [ $FPS == "29.9" -o $FPS == "30" -o $FPS == "23.9" ]; then WIDTH_OUT=480 HEIGHT_OUT=480 MPEG_OPTIONS=s,2,$TEMPLATE else WIDTH_OUT=480 HEIGHT_OUT=576 MPEG_OPTIONS=s,3,$TEMPLATE fi echo "Salida: $WIDTH_OUT x $HEIGHT_OUT" # Ahora calculamos los valores pa los bordes. ANCHO_1_1_OUT=`echo "($HEIGHT_OUT * 4/3)"| bc -l` ALTO_OUT=`echo "$HEIGHT / ($WIDTH / $ANCHO_1_1_OUT)" | bc -l` # Redondeamos ALTO_OUT=`echo "scale=0 ; $ALTO_OUT/1"| bc -l` # Nos aseguramos de que sea par ALTO_OUT=`echo "scale=0 ; $ALTO_OUT+$ALTO_OUT%2" | bc -l` BORDE=`echo "scale=0 ; ($HEIGHT_OUT-$ALTO_OUT)/2"| bc -l` echo "alto sin bordes: $ALTO_OUT, con borde: $BORDE" cd $TEMPFOLDER echo "Ejecutando: transcode -i "$1" -V -x mplayer -y mpeg -F $MPEG_OPTIONS -Z ${WIDTH_OUT}x$ALTO_OUT -Y -$BORDE,0,-$BORDE,0 --export_asr 2 -E 44100 -b 160 -o $DIR/Pelicula" transcode -i "$1" -V -x mplayer -y mpeg -F $MPEG_OPTIONS -Z ${WIDTH_OUT}x$ALTO_OUT -Y -$BORDE,0,-$BORDE,0 --export_asr 2 -E 44100 -b 160 -o $DIR/Pelicula rm $TEMPFOLDER/* rmdir $TEMPFOLDER cd $DIR #Ahora multiplexamos el .mpg mplex -f 5 -m 2 -V -S $CDSIZE Pelicula.m2v Pelicula.mpa -o Pelicula%d.mpg # Y creamos las imagenes... for i in `ls *mpg` ; do vcdimager -t svcd -c $i.cue -b $i.bin $i done