Resultados 1 al 1 de 1

De DivX a SVCD en GNU/Linux

Esta es una discusión para el tema De DivX a SVCD en GNU/Linux en el foro Manuales Multimedia, bajo la categoría Multimedia; Sacado de Linux Media Para pasar a SVCD es básicamente el mismo script que para CVCD sólo que adaptado para crear un SVCD. Los valores que se puden modificar son ...
Página: 1


  1. #1
    Señor Oscuro Avatar de LordSauron

    Fecha de ingreso
    21 oct, 04
    Ubicación
    Un diminuto punto en el Universo
    Mensajes
    4,807

    De DivX a SVCD en GNU/Linux

    Sacado de Linux Media


    Para pasar a SVCD es básicamente el mismo script que para CVCD sólo que adaptado para crear un SVCD. Los valores que se puden modificar son CDSIZE, QUANTUM, MAXVIDEORATE y AUDIORATE. Ya no hace falta crear un template porque lo crea automáticamente.


    -- Inicio divx2svcd --



    #!/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=$TEMPFOLDER/template



    # CDSIZE Values. VCDs are write in Mode 2, so the filesizes are the

    # the following:

    #* * * 74 Min/650Mb ---> CDSIZE=735

    #* * * 80 Min/700Mb ---> CDSIZE=795

    CDSIZE=795

    QUANTUM=7

    MAXVIDEORATE=4000000

    AUDIORATE=160



    if [ $# -eq 0 ]; then

    * * * * echo "Usage:"

    * * * * echo "* * * * divx2svcd <divxfile>"

    * * * * exit 1

    fi





    FILE=$1

    if [ "$1" == "`basename \"$1\"`" ]; then

    * * * * FILE="$DIR/$1"

    fi

    * * * *



    mkdir $TEMPFOLDER

    cd $TEMPFOLDER



    # Create a template for bbmpeg encoder

    echo "quant_value = $QUANTUM" > $TEMPLATE

    echo "max_bitrate = $MAXVIDEORATE" >> $TEMPLATE



    echo "Dir: $DIR"

    echo "Temp: $TEMPFOLDER"

    tcprobe -i "$FILE" > $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`

    FRAMES=`grep '\[avilib\] V:' $TEMPFOLDER/info | \

    * perl -e ' $line=<stdin> ; $line =~ /frames=(\d+)/* ;* print $1' `

    SEGUNDOS_TOTAL=`echo "scale=0 ; ($FRAMES / $FPS)"| bc -l`

    HORAS=`echo "scale=0 ; ($SEGUNDOS_TOTAL / 3600)"| bc -l`

    MINUTOS=`echo "scale=0 ; (($SEGUNDOS_TOTAL - 3600 * $HORAS)/60)"| \

    * bc -l`

    SEGUNDOS=`echo "scale=0 ; ($SEGUNDOS_TOTAL % 60)"| bc -l`



    echo "*************** FILE INFO ***************"

    echo "Frame Size: ${WIDTH}x${HEIGHT}* -* FPS: $FPS"

    echo "Length: $FRAMES* -* Seconds: $SEGUNDOS_TOTAL"

    echo "$HORAS hours, $MINUTOS minutes, $SEGUNDOS seconds"



    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"



    # Borramos Pelicula.m1v y Pelicula.mpa

    rm -f Pelicula.m2v Pelicula.mpa





    cd $TEMPFOLDER

    echo "transcode -i \"$FILE\" -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 $AUDIORATE -o $DIR/Pelicula"

    transcode -i "$FILE" -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 $AUDIORATE -o $DIR/Pelicula



    cd $DIR



    [ -f Pelicula.m2v -a -f Pelicula.mpa ] || exit 1



    rm -f Pelicula*.mpg



    # Plantilla pa multiplexar

    echo "maxFileSize = $CDSIZE" >> $TEMPLATE



    #Ahora multiplexamos el .mpg

    tcmplex -i Pelicula.m2v -p Pelicula.mpa -o Pelicula.mpg \

    * -m s -F $TEMPLATE



    rm $TEMPFOLDER/*

    rmdir $TEMPFOLDER



    # Y creamos las imagenes...

    for i in `ls Pelicula*mpg` ; do

    * * * * vcdimager -t svcd -c $i.cue -b $i.bin $i

    done



    -- Final divx2svcd --
    </stdin></stdin></stdin></stdin></divxfile>
    Última edición por 888; 14/12/2009 a las 20:24

     
     

Temas similares

  1. avi , mpg a dvd . svcd . vcd
    Por dcap83 en el foro Multimedia
    Respuestas: 4
    Último mensaje: 24/01/2007, 22:07
  2. Grabar Divx y No Divx en un DVD ¿es posible?
    Por jac2 en el foro Multimedia
    Respuestas: 16
    Último mensaje: 31/01/2006, 17:00
  3. De DivX a VCD en GNU/Linux
    Por LordSauron en el foro Manuales Multimedia
    Respuestas: 0
    Último mensaje: 07/06/2005, 00:21
  4. DivX a CVCD en GNU/Linux
    Por ..sR. aDiKtO.. en el foro Manuales Multimedia
    Respuestas: 0
    Último mensaje: 05/08/2003, 09:22

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •