Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Colaboracion]Scripts. ANY2DVD,sin menus(030206 Up)
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3, 4 ... 14, 15, 16  Next  
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  

Qe video ves mejor?
menc.m2v
94%
 94%  [ 18 ]
transc.m2v
5%
 5%  [ 1 ]
Total Votes : 19

Author Message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Wed Oct 13, 2004 10:09 pm    Post subject: Reply with quote

Quote:
Me pasó algo muy raro - puse un fichero y el sonido es horrible - no se escucha nada mas que un ruido .
Hice prueba con ac3 y tampoco .
·····
·····
·····
Opening audio decoder: [pcm] Uncompressed PCM audio decoder
AUDIO: 22050 Hz, 1 ch, 8 bit (0x8), ratio: 22050->22050 (176,4 kbit)
Selected audio codec: [pcm] afm:pcm (Uncompressed PCM)

Tiu de donde sacaste un avi con audio en PCM :?. Bueno creo qe se por qe es,
Code:
toolame -m d -b $SRATE -e "${FILE}.wav" "${FILE}.mpa"
Es linea codifica en dualchanel (stereo, 2 canales totalmente diferenciados, qe no se complementan) por lo qe si el audio es mono aparecen ruidos :(

Cambia
Quote:
toolame -m d -b $SRATE -e "${FILE}.wav" "${FILE}.mpa"
por
Quote:
toolame -m m -b $SRATE -e "${FILE}.wav" "${FILE}.mpa"
y cuenta el resultado. :twisted:
···········································································································
Quote:
Sertinell , la opcion -dumpaudio funciona y se puede multiplexear .
¿Hasta que punto es ac3 en la salida ? - no lo se .
Lo escucho solamente en el ordenata y no hay manera de saberlo .
Y no lo paso por toolame . Lo dejo así en crudo "stream.dump" y al mplex .
Si lo pasas por toolame sale ruido ( como en el avi que intenté hoy ) .
Ademas , toolame no maneja ac3 :
GRACIAS. Deberia de ser TOTALMENTE AC3, igualqe si el audio fuera mp3 este archivo "stream.dump" seria mp3. Lo de qe al pasar por toolame sale ruido, es normal, lo preocupante seria qe lo cojiera, toolame solo coje mp3 y wav(raw y PCM). Tengo un colega con un equipo AC3 asi qe en cuanto lo piye por banda le hago probar esa opcion.

Aun tengo qe arreglar lo de l codificacion directa desde el DVD es cambiar un par de cositas solo, pero hoy me voy al sobre qe mñn hay universidad, autoescuela y entenamiento, asta la noxe(quizas durante las clases ... :roll: ) no me vereis por aqui...

Saludos

P.D. Tio utiliza las etiquetas de code y edita el post donde pegaste el script qe seria mucho mas comodo de leer, gracias ;)
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Fri Oct 15, 2004 7:50 pm    Post subject: Reply with quote

Aquí os pongo lo ultimo que he podido conseguir :

Code:

#!/bin/bash
#
# Autor  Sertinell
#
# Reestructurado y mejorado (espero) por  er Flako
# Con la colaboracion de  oCHARLIEo
#
# Estamos en http://forums.gentoo.org/
#
#######################################################################
#
# special thanks to prodater64 and Maurus from www.kvcd.net
#
######################################################################
#
# DEPENDENCIAS :
# mjpegtools ->> para disponer de mplex
# mplayer    ->> lo normal es que con el venga mencoder
# toolame    ->> con el codificaremos el audio si es WAV
#
# NO-DEPENDENCIAS : microsoft
#
# This script has not been tested on animals .
#
# (me ha gustado)
#
#


##Variables##
SIZE=4200   #Tamaño TOTAL del DVD

ASPECT=1.3333   #Aspect ratio 1.3333 para TV normal 1.7777 para paronamicas
FPS=23.976   #Frames por segundo            

#RESH=608    #resolucion horizontal original(ej:640)      estos datos se sacan
#RESV=336   #Resolucion vertical original(ej:480      luego del fichero avi

BASE=352   #Resolucion horizontal final
ALTURA=576    #Resolucion vertical final# 480 para NTSC
OVS=2      #Overscan

MINS=325   #Duracion en minutos, si son varios archivos a codificar, DURACION TOTAL
SRATE=112   #Bitrate de sonido en mp2, con 112 va sobrado

VPASS=2      #nuemro de pasadas, a mi me gusta mas 2, pero si no quieres la maxima calidad 1 tarda justo la mitad de tiempo


PROPNAME=`basename $0`
AC3="no"   # salida ac3 - por defecto no
EXTENSION=""   # para guardar la extension de los ficheros a tratar . si no lo hago asi da error en el until/case
DIR="yes"
CONVERTED_FILES=0

clear


# mensaje de ayuda
#######################################################################

help_msg () {
   echo "El script $PROPNAME codifica todos los ficheros"
   echo "con la misma extension dentro de un directorio ."
   echo ""
   echo "USO : $PROPNAME <opciones> ext [nombre_de_fichero]"
   echo ""
   echo "opciones :"
   echo "-h/-help/--help   este mensaje"
   echo "-p/--pass   N   numero de pasadas (por defecto 2)"
   echo "--ac3      salida de soindo ac3 forzada "
   echo "      ¡ usar con cuidado !"
   echo "      si el sonido del fichero avi no es ac3"
   echo "      corre el riesgo de no tener sonido en la salida"
   echo "-s/--single   se codifica un solo fichero"
   echo "      con nombre nombre_de_fichero y extension ext"
   echo ""
   echo "      El parametro ext es obligatorio ."
   echo ""
   echo "extensiones soportadas:"
   echo "avi y ogm"
   exit 1
}


# funcion de extraccion de informacion del fichero - por oCHARLIEo
#######################################################################

getInfo () {

echo "Extrayendo informacion del fichero $FILE"

mplayer -vo null -ao null -frames 1 -quiet $FILE > $INFO_FILE 2>/dev/null

# si se deja FPS da error en mencoder ???
#FPS=`grep 'ID_VIDEO_FPS' "$INFO_FILE" | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' ` # TAMPOCO
#FPS=`grep 'VIDEO: ' $INFO_FILE | \
#         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  \d+x\d+  \d+bpp  (.+?) fps  .+? #kbps/  ;  print $1' | sed 's/,/./' `
RESH=`grep 'VIDEO: ' $INFO_FILE | \
         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  (\d+)x\d+  \d+bpp  .+? fps  .+? kbps/ ;  print $1' `
RESV=`grep 'VIDEO: ' $INFO_FILE | \
         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  \d+x(\d+)  \d+bpp  .+? fps  .+? kbps/  ;  print $1' `
rm $INFO_FILE   # ya no lo necesitamos
echo ""
echo "INFO : fps - $FPS ; resh - $RESH ; resv - $RESV"

}


# funcion de extraccion de audio
#######################################################################

getAudio () {

echo -e "Extrayendo audio de $FILE en formato "\\c
if [ $AC3 = "no" ]; then
# sin salida ac3 - el audio a un .wav
   echo " WAV"
   mplayer -nojoystick -nolirc -quiet -vo null -vc null -ao pcm -aofile "$FILE.wav" "$FILE"
else
# salida ac3 - a un .mpa
   echo " AC3"
   mplayer "$FILE" -dumpaudio
fi

}


# algunas variables
#######################################################################

varAdjust () {

###########RESIZE#################
##################################
BASE1=$(($BASE-$OVS*8)) #multiplicamos el overscan por 16(8 pixeles a cada lado)
x=`echo "(320*$RESV/$RESH)"| bc -l`
y=`echo "($BASE1*$x/320)"| bc -l`
z=`echo "(($ALTURA*$y)/($BASE1/1.333))"| bc -l`
ALTURA1=$((`echo "scale=0 ; $z/8"| bc -l`*8))
##################################
##################################
VF="pp=hb:100:100/vb,scale=$BASE1:$ALTURA1:1:0:9,hqdn3d=10:12:8,noise=3th,expand=$BASE:$ALTURA:-1:-1:$SUB "
SWS=9
AVRATE=`echo "$(((( $SIZE * 1024 * 8 ) / ( ( $MINS ) * 60 ))-$SRATE))" | bc -l`
echo "AVRATE= ${AVRATE}"
SUBS=" "   #Variables residuales de otro script, cuando tenga ganas lo edito y las quito XD
SUB="0"      # Igual qe la de arriba


LMIN=1

if (( $AVRATE > 800 ))
then
LMIN=0.5
fi

if (( $AVRATE > 1000 ))
then
LMIN=0.4
fi

if (( $AVRATE > 1800 ))
then
LMIN=0.3
fi

if (( $AVRATE > 3000 ))
then
LMIN=0.1
fi

if (( $AVRATE > 4000 ))
then
LMIN=0.01
fi

case "$FPS" in
   "25") KEYINT=15 ;;
   "23.976") KEYINT=18 ;;
   "29.970") KEYINT=18 ;;
esac

}


# fincion principal - aqui se hace todo el trabajo
#######################################################################

aviConversion () {

OUTFILE="${FILE}.mpv"
INFO_FILE="${FILE}.info"

# extraemos informacion del fichero
getInfo

# ajustamos algunas variables , resize , etc.
varAdjust

# extraemos el audio
getAudio

if [ $VPASS = 2 ]; then

# Dos pasadas , esta es la primera
YY=$YY+1   # un contador sin sentido
echo ""
echo "Pasada $YY - $FILE"
echo "mencoder"
mencoder -of rawvideo -sws $SWS -noskip -nosound -noaspect -noautoexpand $SUBS -vf $VF -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2:preme=2:precmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=$LMIN:vpass=1:vrc_buf_size=1835:vbitrate=$AVRATE:vrc_maxrate=8000:aspect=1.333:keyint=$KEYINT:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -ofps $FPS "$FILE" -o "/dev/null"

# borramos el log de la primera pasada
rm "divx2pass.log"
fi


# Una sola pasada o la segunda
YY=$YY+1
echo ""
echo "Pasada $YY - $FILE"
echo "mencoder"
mencoder -of rawvideo -sws $SWS -noskip -nosound -noaspect -noautoexpand $SUBS -vf $VF -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2:preme=2:precmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=$LMIN:vpass=1:vrc_buf_size=1835:vbitrate=$AVRATE:vrc_maxrate=8000:aspect=1.333:keyint=$KEYINT:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -ofps $FPS "$FILE" -o "$OUTFILE"


if [ $AC3 = "no" ]; then
   # el .wav a .mpa y borramos el .wav
   toolame -m d -b $SRATE -e "${FILE}.wav" "${FILE}.mpa"
   rm "${FILE}.wav"
   # ahora el multiplexer
   mplex -f 9 -r 0 -v 1 -b 230 -V -p 1 -h -o "{$FILE}.mpg" "${OUTFILE}" "${FILE}.mpa"
else
   # y si usamos ac3 :
   mplex -f 9 -r 0 -v 1 -b 230 -V -p 1 -h -o "{$FILE}.mpg" "${OUTFILE}" "stream.dump"
   rm "stream.dump"
fi

# borramos los ficheros temporales y el log
rm "${FILE}.mpa" "${OUTFILE}"
rm "divx2pass.log"

}

# comprobamos las opciones de linea de comandos
if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "-help" -o $# = 0 ]; then
   help_msg
else
until [ -z "$1" ] ; do
 case "$1" in
  "--pass") shift; VPASS="$1"; shift ;;
  "-p") shift; VPASS="$1" ; shift ;;
  "--ac3") shift; AC3="yes" ;;
  "-s") shift; DIR="no" ;;
  "--single") shift; DIR="no" ;;
  "avi") shift; EXTENSION="avi" ; break ;;
  "ogm") shift; EXTENSION="ogm" ; break ;;   # sin comprobar

 esac
done
fi

if [ "$DIR" = "yes" ]; then
   for var in *.${EXTENSION}
   do
   FILE="${var}"

   aviConversion

   (( CONVERTED_FILES += 1 ))
   done
   echo "han sido codificados ${CONVERTED_FILES} archivos"
else
   FILE="$1.$EXTENSION"
   aviConversion
fi


Lo he reorganizado un poco . Así lo veo mas legible .
Si a alguien no le gusta la nueva opcion "-s" , simplemente que no la use , pero a mi no me desagrada ,
porque no tengo ganas de convertir todos los ficheros avi de un directorio y tampoco copiar el fichero que quiero usar .
En fin - al la antigua sigue funcionando .

Necesito que alguien me eche una mano .
A razón de los problemas de audio que tuve ( y sigo teniendo ) quiero hacer la parte de la extraccion de audio automatica.
Es decir - se mira en el fichero INFO y segun el audio codec hacemos lo apropiado con el sonido .
Además así quitamos la opción --ac3" .
Al grano - a ver ai alguien puede sacar el string del audio codec al estilo
del resto de la información :

Code:


#FPS=`grep 'ID_VIDEO_FPS' "$INFO_FILE" | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' ` # TAMPOCO
#FPS=`grep 'VIDEO: ' $INFO_FILE | \
#         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  \d+x\d+  \d+bpp  (.+?) fps  .+? #kbps/  ;  print $1' | sed 's/,/./' `



Algo parecido . Yo no se como hacerlo si no - lo haría.
Gracias .

P.D. Jo , ya soy "tux's lil' helper" . No me lo puedo creer . ¿ Y a quien he ayudado ?
_________________
Linux user #358087
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Fri Oct 15, 2004 11:14 pm    Post subject: Reply with quote

Joder maxo, ye lo has currado, como se nota qe soy un inutil programando, pero como base voy bien :), era la primera vez qe programaba algo :D

Code:
# si se deja FPS da error en mencoder ???
#FPS=`grep 'ID_VIDEO_FPS' "$INFO_FILE" | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' ` # TAMPOCO
#FPS=`grep 'VIDEO: ' $INFO_FILE | \
#         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  \d+x\d+  \d+bpp  (.+?) fps  .+? #kbps/  ;  print $1' | sed 's/,/./' `

Sigo sin creerme qe no te funcionen los FPS:
Code:
mplayer -vo null -ao null -frames 0 -identify "${FILE}" 2>/dev/null |
        grep "^ID" |
        sed -e 's/[`\\!$"]/\\&/g' |
        sed -e '/^ID_FILENAME/ { s/^ID_FILENAME=\(.*\)/ID_FILENAME="\1"/g; }'>${INFO_FILE}

FPS=`grep 'ID_VIDEO_FPS' ${INFO_FILE} | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' `
RESH=`grep 'ID_VIDEO_WIDTH' ${INFO_FILE} | sed 's/ID_VIDEO_WIDTH=//' `
RESV=`grep 'ID_VIDEO_HEIGHT' ${INFO_FILE} | sed 's/ID_VIDEO_HEIGHT=//' `
echo $FPS
De verdad qe asi no te los coje? he probado en 2 Pc's ya y en los 2 funciona :)(una mdk y mi gentoo) Es algo para qe puebes a ver si larga el valor de los FPS

Respecto al audio:
Code:
# /usr/share/doc/mplayer-1.0_pre5-r3/TOOLS/midentify *.avi
ID_FILENAME="hasta.qe.la.ley.los.separe.avi"
ID_VIDEO_FORMAT=XVID
ID_VIDEO_BITRATE=923296
ID_VIDEO_WIDTH=640
ID_VIDEO_HEIGHT=272
ID_VIDEO_FPS=23,976
ID_VIDEO_ASPECT=0,0000
ID_AUDIO_CODEC=mp3
ID_AUDIO_FORMAT=85
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=2
ID_LENGTH=5403
Ahi tenemos TODOS los datos, ese script es lo qe yo copie en mi primer script, y lo qe yo sigo usando para cojer los valores y generar el info file,me parece mas comodo, para cojer el audio
Code:
CHANELS=`grep 'ID_AUDIO_NCH' ${INFO_FILE} | sed 's/ID_AUDIO_NCH=//' | sed 's/,/./' `

Si son 2 canales pos a codificar en estereo, si es uno a codificar en mono ;)
Code:
ID_AUDIO_CODEC=mp3
ACODEC=`grep 'ID_AUDIO_CODEC' ${INFO_FILE} | sed 's/ID_AUDIO_CODEC=//' | sed 's/,/./' `

Si es variable es AC3 pues se va directo al paso del ac3, si es mp3 u otra cosa, se va hacia la funcion del toolame y ahi ya decide entre 1 o mas canales (se supone qe si son mas seria ac3, pero por si no es ac3 seria recomendable pasarlo a mp2 DualCHanel)

En lo referente a DVD, te respondopor aqui, qe creo qe todo sobre el script cuanta mas gente lo lea mejor ;).

Cuando en mencoder en vez de meterle file,se le mete "dvd://#TRACK" mencoder codifica el video correspondiente a la pista seleccionada (TRACK), pero esto es cosa mia, es sencillito ^^, este finde espero poder ponerlo ;)

A otra cosa mariposa:
No actualizaste a mi ultima modificacion :P
Quote:
mplayer -nojoystick -nolirc -quiet -vo null -vc null -ao pcm -aofile "$FILE.wav" "$FILE"
POR
mplayer -nojoystick -nolirc -quiet -vo null -vc dummy -ao pcm -aofile "$FILE.wav" "$FILE"
Lo descubri ayer, para un archivode 20 mins, el anterior tardaba 4 mins en sacar el audio, esta opcion 30 Sec ;).

Por ahora creo qe nada mas, lo sigo mirando, creo qe en la opcion -s seria bueno cojer tambien la variable de los segundos, de la peli, tambien se podria hacer para un directorio.
Code:
mplayer -vo null -ao null -frames 0 -identify "$1" 2>/dev/null |
        grep "^ID" |
        sed -e 's/[`\\!$"]/\\&/g' |
        sed -e '/^ID_FILENAME/ { s/^ID_FILENAME=\(.*\)/ID_FILENAME="\1"/g; }'>"${FILE}data.log"
   
FPS=`grep 'ID_VIDEO_FPS' "${FILE}data.log" | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' `
RESH=`grep 'ID_VIDEO_WIDTH' "${FILE}data.log" | sed 's/ID_VIDEO_WIDTH=//' `
RESV=`grep 'ID_VIDEO_HEIGHT' "${FILE}data.log" | sed 's/ID_VIDEO_HEIGHT=//' `
SECS=`grep 'ID_LENGTH' "${FILE}data.log" | sed 's/ID_LENGTH=//'`

eso a mi me asigna TODAS las variables, "${FILE}data.log" = ${INFO_FILE}

Por hoy ya dejo de "protestar/dar ideas"

Saludos
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Fri Oct 15, 2004 11:51 pm    Post subject: Reply with quote

lo actualizo con algunas cosas editadas y la opcion -svcd añadida ;)
Code:
#!/bin/bash
#
# Autor  Sertinell
#
# Reestructurado y mejorado (espero) por  er Flako
# Con la colaboracion de  oCHARLIEo
#
# Estamos en http://forums.gentoo.org/
#
#######################################################################
#
# special thanks to prodater64 and Maurus from www.kvcd.net
#
######################################################################
#
# DEPENDENCIAS :
# mjpegtools ->> para disponer de mplex
# mplayer    ->> lo normal es que con el venga mencoder
# toolame    ->> con el codificaremos el audio si es WAV
#
# NO-DEPENDENCIAS : microsoft
#
# This script has not been tested on animals .
#
# (me ha gustado)
#
#


##Variables##
SIZE=4200   #Tamaño TOTAL del DVD

ASPECT=1.3333   #Aspect ratio 1.3333 para TV normal 1.7777 para paronamicas
FPS=23.976   #Frames por segundo           

#RESH=608    #resolucion horizontal original(ej:640)      estos datos se sacan
#RESV=336   #Resolucion vertical original(ej:480      luego del fichero avi

BASE=352   #Resolucion horizontal final
ALTURA=576    #Resolucion vertical final# 480 para NTSC
OVS=2      #Overscan

MINS=325   #Duracion en minutos, si son varios archivos a codificar, DURACION TOTAL
SRATE=112   #Bitrate de sonido en mp2, con 112 va sobrado

VPASS=2      #nuemro de pasadas, a mi me gusta mas 2, pero si no quieres la maxima calidad 1 tarda justo la mitad de tiempo


PROPNAME=`basename $0`
AC3="no"   # salida ac3 - por defecto no
EXTENSION=""   # para guardar la extension de los ficheros a tratar . si no lo hago asi da error en el until/case
DIR="yes"
CONVERTED_FILES=0

clear


# mensaje de ayuda
#######################################################################

help_msg () {
   echo "El script $PROPNAME codifica todos los ficheros"
   echo "con la misma extension dentro de un directorio ."
   echo ""
   echo "USO : $PROPNAME <opciones> ext [nombre_de_fichero]"
   echo ""
   echo "opciones :"
   echo "-h/-help/--help   este mensaje"
   echo "-svcd Codifica en SVCD en vez de DVD"
   echo "-p/--pass   N   numero de pasadas (por defecto 2)"
   echo "--ac3      salida de soindo ac3 forzada, un svcd no soporta ac3 "
   echo "      ¡ usar con cuidado !"
   echo "      si el sonido del fichero avi no es ac3"
   echo "      corre el riesgo de no tener sonido en la salida"
   echo "-s/--single   se codifica un solo fichero"
   echo "      con nombre nombre_de_fichero y extension ext"
   echo ""
   echo "      El parametro ext es obligatorio ."
   echo ""
   echo "extensiones soportadas:"
   echo "avi y ogm"
   exit 1
}


# funcion de extraccion de informacion del fichero - por oCHARLIEo
#######################################################################

getInfo () {

echo "Extrayendo informacion del fichero $FILE"

mplayer -vo null -ao null -frames 1 -quiet $FILE > $INFO_FILE 2>/dev/null

# si se deja FPS da error en mencoder ???
#FPS=`grep 'ID_VIDEO_FPS' "$INFO_FILE" | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' ` # TAMPOCO
#FPS=`grep 'VIDEO: ' $INFO_FILE | \
#         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  \d+x\d+  \d+bpp  (.+?) fps  .+? #kbps/  ;  print $1' | sed 's/,/./' `
RESH=`grep 'VIDEO: ' $INFO_FILE | \
         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  (\d+)x\d+  \d+bpp  .+? fps  .+? kbps/ ;  print $1' `
RESV=`grep 'VIDEO: ' $INFO_FILE | \
         perl -e ' $line=<STDIN> ; $line =~ /VIDEO:  \[.+?\]  \d+x(\d+)  \d+bpp  .+? fps  .+? kbps/  ;  print $1' `
rm $INFO_FILE   # ya no lo necesitamos
echo ""
echo "INFO : fps - $FPS ; resh - $RESH ; resv - $RESV"

}


# funcion de extraccion de audio
#######################################################################

getAudio () {

echo -e "Extrayendo audio de $FILE en formato "\\c
if [ $AC3 = "no" ]; then
# sin salida ac3 - el audio a un .wav
   echo " WAV"
   mplayer -nojoystick -nolirc -quiet -vo null -vc null -ao pcm -aofile "$FILE.wav" "$FILE"
else
# salida ac3 - a un .mpa
   echo " AC3"
   mplayer "$FILE" -dumpaudio
fi

}


# algunas variables
#######################################################################

varAdjust () {

###########RESIZE#################
##################################
BASE1=$(($BASE-$OVS*8)) #multiplicamos el overscan por 16(8 pixeles a cada lado)
x=`echo "(320*$RESV/$RESH)"| bc -l`
y=`echo "($BASE1*$x/320)"| bc -l`
z=`echo "(($ALTURA*$y)/($BASE1/1.333))"| bc -l`
ALTURA1=$((`echo "scale=0 ; $z/8"| bc -l`*8))
##################################
##################################

SWS=9
AVRATE=`echo "$(((( $SIZE * 1024 * 8 ) / ( ( $MINS ) * 60 ))-$SRATE))" | bc -l`
echo "AVRATE= ${AVRATE}"
SUBS=" "   #Variables residuales de otro script, cuando tenga ganas lo edito y las quito XD
SUB="0"      # Igual qe la de arriba
VF="pp=hb:100:100/vb,scale=$BASE1:$ALTURA1:1:0:9,hqdn3d=10:12:8,noise=3th,expand=$BASE:$ALTURA:-1:-1:$SUB "

LMIN=1

if (( $AVRATE > 800 ))
then
LMIN=0.5
fi

if (( $AVRATE > 1000 ))
then
LMIN=0.4
fi

if (( $AVRATE > 1800 ))
then
LMIN=0.3
fi

if (( $AVRATE > 3000 ))
then
LMIN=0.1
fi

if (( $AVRATE > 4000 ))
then
LMIN=0.01
fi

case "$FPS" in
   "25") KEYINT=15 ;;
   "23.976") KEYINT=18 ;;
   "29.970") KEYINT=18 ;;
esac

}


# fincion principal - aqui se hace todo el trabajo
#######################################################################

aviConversion () {

OUTFILE="${FILE}.mpv"
INFO_FILE="${FILE}.info"

# extraemos informacion del fichero
getInfo

# ajustamos algunas variables , resize , etc.
varAdjust

# extraemos el audio
getAudio

if [ $VPASS = 2 ]; then

# Dos pasadas , esta es la primera
YY=$YY+1   # un contador sin sentido
echo ""
echo "Pasada $YY - $FILE"
echo "mencoder"
mencoder -of rawvideo -sws $SWS -noskip -nosound -noaspect -noautoexpand $SUBS -vf $VF -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2:preme=2:precmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=$LMIN:vpass=1:vrc_buf_size=${BUFSIZE}:vbitrate=$AVRATE:vrc_maxrate=${MAXBITRATE}:aspect=${ASPECT}:keyint=$KEYINT:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -ofps $FPS "$FILE" -o "/dev/null"

fi


# Una sola pasada o la segunda
YY=$YY+1
echo ""
echo "Pasada $YY - $FILE"
echo "mencoder"
mencoder -of rawvideo -sws $SWS -noskip -nosound -noaspect -noautoexpand $SUBS -vf $VF -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2:preme=2:precmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=$LMIN:vpass=1:vrc_buf_size=1835:vbitrate=$AVRATE:vrc_maxrate=${MAXBITRATE}:aspect=${ASPECT}:keyint=$KEYINT:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -ofps $FPS "$FILE" -o "$OUTFILE"


if [ $AC3 = "no" ]; then
   # el .wav a .mpa y borramos el .wav
   toolame -m d -b $SRATE -e "${FILE}.wav" "${FILE}.mpa"
   rm "${FILE}.wav"
   # ahora el multiplexer
   mplex -f ${PLEX} -r 0 -v 1 -b 230 -V -p 1 -h -o "{$FILE}.mpg" "${OUTFILE}" "${FILE}.mpa"
else
   # y si usamos ac3 :
   mplex -f 9 -r 0 -v 1 -b 230 -V -p 1 -h -o "{$FILE}.mpg" "${OUTFILE}" "stream.dump"
   rm "stream.dump"
fi

# borramos los ficheros temporales y el log
rm "${FILE}.mpa" "${OUTFILE}"
rm "divx2pass.log"

}

# comprobamos las opciones de linea de comandos
if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "-help" -o $# = 0 ]; then
   help_msg
else
#asignamos variables para DVD, la opcion por defecto
PLEX=9
MAXBITRATE=8000
BUFSIZE=1835
until [ -z "$1" ] ; do
 case "$1" in
  "--pass") shift; VPASS="$1"; shift ;;
  "-p") shift; VPASS="$1" ; shift ;;
  "--ac3") shift; AC3="yes" ;;
  "-svcd") shift;PLEX=4;MAXBITRATE=2500;BUFSIZE=917;AC3="no"; shift;; # si -svcd esta en la linea de comandos, definimos de nuevo las variables, esta vez cn esos valores.Un SVCD no soporta ac3
  "-s") shift; DIR="no" ;;
  "--single") shift; DIR="no" ;;
  "avi") shift; EXTENSION="avi" ; break ;;
  "ogm") shift; EXTENSION="ogm" ; break ;;   # sin comprobar
  "mkv") shift; EXTENSION="mkv" ; break ;;   # sin comprobar
 esac
done
fi

if [ "$DIR" = "yes" ]; then
   for var in *.${EXTENSION}
   do
   FILE="${var}"

   aviConversion

   (( CONVERTED_FILES += 1 ))
   done
   echo "han sido codificados ${CONVERTED_FILES} archivos"
else
   FILE="$1.$EXTENSION"
   aviConversion
fi


Saludos
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Sat Oct 16, 2004 11:06 am    Post subject: Reply with quote

Actualizado error GORDO enla linea de comandos de mencoder :evil:

Elflako actualiza tambien el tuyo qe el error lo has introducido tu ;)
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Sat Oct 16, 2004 11:48 am    Post subject: Reply with quote

Me ha gustado la opcion "-svcd".
Ya me ha funcionado lo de sacar la info del avi . Vete a saber que habia hecho mal.
Ahora todo va bien . Pongo los cambios en getAudio , ya lo hace segun el codec de entrada :

Code:

getAudio () {

echo "Extrayendo audio de $FILE en formato $ACODEC"

if [ "$SVCD" = "yes" ]; then
# si hacemos SVCD codificamos directamente a mp3
   mplayer -nojoystick -nolirc -quiet -vo null -vc dummy -ao pcm -aofile "$FILE.wav" "$FILE"
else
# si es DVD - segun el codec de entrada
  case "$ACODEC" in
   "ac3")
   mplayer "$FILE" -dumpaudio
   AC3="yes"
   ;;
   "a52")
   mplayer "$FILE" -dumpaudio
   AC3="yes"
   ;;
   "mp3")
   mplayer -nojoystick -nolirc -quiet -vo null -vc dummy -ao pcm -aofile "$FILE.wav" "$FILE"
   ;;
   "pcm")

   ;;
  esac
fi

}


Ahora pasa otra cosita - si hacemos svcd y ponemos AC·=no donde se miran las opciones de entrada , luego , al mirar el codec del AVI si es ac3
cambiaremos al flag AC3 a "yes" y no nos servirá de nada .
Por eso pongo un flag SVCD y luego compruebo si es SVCD o no .
Esta es la parte de la comprobacion de las opciones de linea de comandos :

Code:

# comprobamos las opciones de linea de comandos
if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "-help" -o $# = 0 ]; then
   help_msg
else
# asignamos variables para DVD, la opcion por defecto
PLEX=9
MAXBITRATE=8000
BUFSIZE=1835
until [ -z "$1" ] ; do
 case "$1" in
  "--pass") shift; VPASS="$1"; shift ;;
  "-p") shift; VPASS="$1"; shift ;;
  "-svcd")
   shift
   PLEX=4
   MAXBITRATE=2500
   BUFSIZE=917
   SVCD="yes"
   shift
   ;;
# si -svcd esta en la linea de comandos, definimos de nuevo las variables,
# esta vez con esos valores.Un SVCD no soporta ac3
  "-s") shift; DIR="no" ;;
  "--single") shift; DIR="no" ;;
  "avi") shift; EXTENSION="avi" ; break ;;
  "ogm") shift; EXTENSION="ogm" ; break ;;   # sin comprobar
  "mkv") shift; EXTENSION="mkv" ; break ;;   # sin comprobar
 esac
done
fi


Ahora al llamar getAudio y encontrar codec ac3 y haciendo SVCD el flag AC3 quedará a "no" .

Bueno , basicamente es esto , excepto el sonido pcm .
Si le pongo :
Code:

mplayer -nojoystick -nolirc -quiet -vo null -vc dummy -ao pcm -aofile "$FILE.wav" "$FILE"

el mencoder no va .

¿ QUE LE PONEMOS AL SONIDO PCM ?

¿ Que os parece la idea de poner una opcion "-c/-chunks N"
para partir el avi en N trozos y así hacer capitulos en el DVD ?

Normalmente en un dvd de 4,3GB entran 3 o 4 pelis ( eso si quieres grabar muchas en el mismo disco ) .
Si le das al siguiente capitulo se salta la peli entera .
Para "rebobinar" tienes que ir a x8 , x20 o algo asi . Si se hacen capitulos ( que no lo son , pero son trozos )
podemos saltar hacia delante o atras .
Tambien valdria para SVCD .
A efectos de grabacion seran unas cuantas pelis en el mismo disco , pero como logica de espectador serán capitulos .

Espero respuestas .

Sertinell , lo del dvd//... me parece muy bien . Pero esto es un ripeo "al vuelo" ¿no?
Y pregunto ¿ como de pequeño/grande saldrá el archivo codificado ?
Es decir - si un disco dvd comercial tiene 6GB ¿ a cuanto dejariamos la peli ?

Saludos .
_________________
Linux user #358087
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Sat Oct 16, 2004 2:38 pm    Post subject: Reply with quote

Creo qe la opcion -ac3 deberia seguir existiendo, hay veces qe puedes qerer codificar la peli a DVD y hacer mp2 qe ocupa menos espacio para darle mas calidad al video, por ejemplo en pelis de amores y chochas :twisted:

Edito: lo acabo de ver, y si el audio es OGG qe hacemos? Estoy corrifgiendo varias cosas, ahora lo añado.

Quote:
¿ QUE LE PONEMOS AL SONIDO PCM ?
Ummm, pilla mi JID(sertinell (AT) njs (DOT) netlab (DOT) cz ), y me pasas un sample en PCM, pa qe haga unas pruebecillas, man mplayer en mano.
Quote:

¿ Que os parece la idea de poner una opcion "-c/-chunks N"
para partir el avi en N trozos y así hacer capitulos en el DVD ?

Esto la mejor forma de acerlo es al crear el proyecto de DVD con el programa de autoria. Creo qe DVDstyler lo hace, lo qe ahora mismo no se es si para crearlas lo qe hace es cortar la peli en caxitos con mpgtx. Es cuestionde mirarlo.
Quote:

A efectos de grabacion seran unas cuantas pelis en el mismo disco , pero como logica de espectador serán capitulos .

No exactamente, en mi DVD de sobremesa primero se selecciona la pista, qe es la pelicula, y despues el capitulo, qe viene especificado en los archivos de informacion del DVD. Por eso creo q para hacer eso lo mejor seria DVDauthor, para el DVD, o vcdxbuild, para SVCD.

Quote:

Sertinell , lo del dvd//... me parece muy bien . Pero esto es un ripeo "al vuelo" ¿no?
Y pregunto ¿ como de pequeño/grande saldrá el archivo codificado ?
Tan peqeño como tu elijas,el tamaño seguira siendo $SIZE, solo cambian algunas opciones de $VF, y sí es un ripeo al vuelo ;).

Voy a editar unas cosillas de la linea de multiplexado para SVCD, para qe corte la pelicula en archivos de 800 MB.

Saludos

P.D: Me encanta qe para poner las variaciones solo hay qe indicar la funcion, envez de pegarlo entero. :) mucho mas practico.
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Sat Oct 16, 2004 8:47 pm    Post subject: Reply with quote

Jo , me he quedado acojonado . Si tengo problemas con pcm y me planteas ogg ...
Mañana rectifico lo de l--ac3 . Pero en este plan le tenemos que poner --mp3 forzado .
_________________
Linux user #358087
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Sun Oct 17, 2004 8:42 pm    Post subject: Reply with quote

Modifico y añado lo siguiente :

Code:

CONVERTED_FILES=0
SVCD="no"   # por defecto - DVD
AUDIO="no"   # una variable para indicar audio codec forzado . Por defecto es el codec del fichero AVI
INFO="no"   # solo info , por defecto - NO

clear


# mensaje de ayuda
#######################################################################

help_msg () {
   echo ""
   echo "El script $PROPNAME codifica todos los ficheros"
   echo "con la misma extension dentro de un directorio ."
   echo ""
   echo "USO : $PROPNAME <opciones> ext [nombre_de_fichero]"
   echo ""
   echo "Opciones :"
   echo "-h/-help/--help      este mensaje"
   echo "-svcd                codifica en SVCD en vez de DVD"
   echo "-p/--pass   N        numero de pasadas (por defecto 2)"
   echo "-s/--single          se codifica un solo fichero"
   echo "                       con nombre nombre_de_fichero y extension ext"
   echo "-af                  forzar salida de audio en siguiente formato :"
   echo "                       ac3 , a52 , mp3 , pcm , ogg"
   echo "                       No intentar mejorar el codec de audio"
   echo "                       puede corromper el sonido de salida ."
   echo "-info                solo muestra informacion del(los) fichero(s)"
   echo "                       no se hace ninguna conversion"
   echo ""
   echo "                     El parametro ext es obligatorio ."
   echo ""
   echo "Extensiones soportadas:"
   echo "avi , ogm , mkv"
   exit 1
}
......................................................
getAudio () {

echo "Extrayendo audio de $FILE en formato $ACODEC"

if [ "$SVCD" = "yes" ]; then
# si hacemos SVCD codificamos directamente a mp3
   mplayer -nojoystick -nolirc -quiet -vo null -vc dummy -ao pcm -aofile "$FILE.wav" "$FILE"
else
  if [ "$AUDIO" = "no" ]; then
# si es DVD y no forzamos la salida de audio - segun el codec de entrada
    case "$ACODEC" in
      "ac3")
   mplayer "$FILE" -dumpaudio
   AC3="yes"
      ;;
...............................................................
YY=0

# extraemos informacion del fichero
getInfo

if [ "$INFO" = "no" ]; then # si no tenemos "-info" convertimos , si "-info" - lo saltamos

# ajustamos algunas variables , resize , etc.
varAdjust
......................................................................
rm "divx2pass.log"

fi # if[INFO=no] termina aqui
.........................................................................
# comprobamos las opciones de linea de comandos
if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "-help" -o $# = 0 ]; then
   help_msg
else
# asignamos variables para DVD, la opcion por defecto
PLEX=9
MAXBITRATE=8000
BUFSIZE=1835
until [ -z "$1" ] ; do
 case "$1" in
  "--pass") shift; VPASS="$1"; shift ;;
  "-p") shift; VPASS="$1"; shift ;;
  "-af") shift;   ACODEC="$1"; AUDIO="yes"; shift ;;
  "-svcd")
   shift
   PLEX=4
   MAXBITRATE=2500
   BUFSIZE=917
   SVCD="yes"
   shift
   ;;
   "-info") INFO="yes"; shift ;;
# si -svcd esta en la linea de comandos, definimos de nuevo las variables,
# esta vez con esos valores.Un SVCD no soporta ac3
  "-s") shift; DIR="no" ;;
  "--single") shift; DIR="no" ;;
  "avi") shift; EXTENSION="avi" ; break ;;
  "ogm") shift; EXTENSION="ogm" ; break ;;   # sin comprobar
  "mkv") shift; EXTENSION="mkv" ; break ;;   # sin comprobar
 esac
done
fi
...............................................


Por lo demás - sin cambios.

Sertinell , dame alguna idea sobre como trabajar el sonido pcm y ogg .
No hay manera de mandarte un fichero tan pequeño.

Saludos.
_________________
Linux user #358087
Back to top
View user's profile Send private message
oCHARLIEo
Guru
Guru


Joined: 06 Oct 2003
Posts: 303
Location: Madrid

PostPosted: Mon Oct 18, 2004 8:24 pm    Post subject: Reply with quote

Se que me vais a matar... pero me he puesto a modificar un poco el codigo... y he cambiado un monton de cosas!! Para empezar, no me gustaba mucho la idea de que el script convirtiera todos los ficheros de una determinada extension dentro de un directorio...
Aunque un fichero tenga la extension AVI no quiere decir que lo que tenga dentro sea un contenedor RIFF (q sea un avi vamos), y por otro lado, me gustaba mas la idea de que se pudiera especificar el nombre de los ficheros de entrada mediante comodines, de forma que diciendole que convierta los ficheros /home/mispelis/*.avi tendriamos lo mismo de antes.
He organizado todo en funciones de una manera que me parece mas logica y he cambiado algunos nombres de variables ^_^ (sorry, es que no me enteraba d q era cada cosa)
Si la reestructuracion no gusta mucho me disculpo ya de antemano.

En enlace a la propuesta de nueva version:
http://nexusvi.no-ip.org/images/dir2dvd2.bash
_________________
Las Mujeres son malvadas, retorcidas, perversas... pero huelen tan bien...

Por un foro ordenado y un buscador más útil:
[TEMA] Descripción problema (estado)
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Mon Oct 18, 2004 9:45 pm    Post subject: Reply with quote

Bien . No me desagrada . Se nota la programación en C ( por los nombres de funciones ) .
Mira la ultima actualización de getAudio . Lo que tu tienes como INPUT_A_CODEC te sirve para escoger el modo de extraccion de audio , algo como :

Code:

case "$ACODEC" in
      "ac3")
   mplayer "$FILE" -dumpaudio
   AC3="yes"
      ;;
      "a52")
   mplayer "$FILE" -dumpaudio
   AC3="yes"
     ;;
     "mp3")
   mplayer -nojoystick -nolirc -quiet -vo null -vc dummy -ao pcm -aofile "$FILE.wav" "$FILE"
     ;;
     "pcm")

     ;;
     "ogg")

     ;;
    esac
fi


El pcm me da problemas por ahora .
Y no se puede mejorar el codec . Si tienes pcm no lo puedes hacer ac3 . Por lo menos no como lo estamos haciendo .

Tambien le pusimos un parametro "-info" que se salta la conversion .
En fin - el script es de Sertinell.
_________________
Linux user #358087
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Tue Oct 19, 2004 12:33 pm    Post subject: Reply with quote

Esta noche miro el script, Hay algunas cosas qe tengo qe modificar de la linea de comandos, opciones qe he puesto mal(fuera del estandar) por error MIO. Esta noche, ahora tengo practicas de 4a8 :'( Y esta noche cuando llegue os lo digo.

Respecto a las modificaciones, mientras no se salga de madre a mi me da igual ;)

Saludos
Back to top
View user's profile Send private message
oCHARLIEo
Guru
Guru


Joined: 06 Oct 2003
Posts: 303
Location: Madrid

PostPosted: Tue Oct 19, 2004 12:38 pm    Post subject: Reply with quote

Pues efectivamente se me paso tu ultima modificacion porque pille directamente el fichero de sertinell y ni me fije, sorry.

Pero, no entiendo muy bien el porque forzar el audio a un codec concreto... ya que si lo que buscamos es codificar el video para su reproduccion en un DVD, el fichero de salida debe ser MPEG y eso excluye el audio en OGG, el audio en PCM solo se justifica si tiene mas de 2 canales(mientras no sepamos convertirlo a ac3) y en cualquier otro caso el audio deberia ir en mp2 (ojo, no en mp3) que es el formato que admite por defecto un fichero MPEG.

- un PCM de 2 canales yo lo convierto a MP2 que ocupa mucho menos y no pierdes calidad de una forma aprecible.
- un PCM de mas de 2 canales, puedes pasarlo a MP2 y perder los canales extras o bien meterlo como PCM y sacrificar MUCHO sitio.
- un AC3 o bien lo transformo a MP2 para ahorrar espacio, o lo conservo tal cual para pasarlo al DVD.
- un OGG no te queda otra que convertilo...

Me gustaria hacer tb un comentario con respecto a la resolucion y los fps predeterminados... os habeis percatado de que no se ajustan a ningun estandar?? 352x576 23.976fps
Cuando reproduces un video con este formato debe preescalarlo (para meter la interpolacion y conservar el aspecto 1.333) y te lo redimensiona a 768x576 y sino probad a lanzarlo con el mplayer y os dira:
Code:

Aspecto es 1,33:1 - prescalando a aspecto correcto.
VO: [xv] 352x576 => 768x576 Planar YV12

Que tampoco es ninguna resolucion estandar puesto que la resolucion DVD-PAL es 720x576 que seria lo mas parecido... resultado: en un DVD de sobremesa puede que se reproduzca y puede que no...

Yo propongo que para las resoluciones-fps de salida predeterminado nos ajustemos a algun estandar y metamos opciones para poder tocar estos parametros a gusto del consumidor

VCD-PAL -> 352x288@25fps
SVCD-PAL -> 480x576@25fps
DVD-PAL -> 720x576@25fps
_________________
Las Mujeres son malvadas, retorcidas, perversas... pero huelen tan bien...

Por un foro ordenado y un buscador más útil:
[TEMA] Descripción problema (estado)
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Tue Oct 19, 2004 8:08 pm    Post subject: Reply with quote

Lo del sonido ha sido un error mio . Me pareció que como estaban ahí las cosas podia meterlas directamente ...
Bueno , ya lo he quitado . Sertinell ya me tiró de las orejas .

Refleccionando sobre el tema :
si tenemos ac3 lo podemos dejar o hacer mp2 ( a pcm me parece gilipollés )
si tenemos mp3 - a mp2 y punto ( porque no lo podemos hacer ac3 , claro )
si tenemos pcm o algo otro - todavia no sabemos como tratarlo
Entonces la unica opcion factible por ahora es algo como "-af mp2" . Es decir - forzar el ac3 a mp2 haciendo dvd ( si haces svcd te lo dejará por defecto )
Lo demás no tiene sentido .

Lo del video de salida - bien . Tengo aquí un ajuste de las cosas con formato de salida según se quiere .
Los FPS hay que cojerlos del fichero de entrada . Creo que oCHARLIo dijo lo del audio que se desfasa etc.
Bueno . Mañana intento el audio y lo pego por aquí .
_________________
Linux user #358087
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Tue Oct 19, 2004 8:14 pm    Post subject: Reply with quote

Haber, vamos a trabajar todos a partir del de charlie OK ? creo qe esta muy diferenciado en funciones, y seria lo mas comodo, voy mirando eso qe he dixo, qe acabo de llegar :cry:

Ahora lo pego :)
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Tue Oct 19, 2004 8:48 pm    Post subject: Reply with quote

Bueno ya esta subido con los cambios,
os dejo la direccion aqui qe si lo pego se va a tomar por culo el foro, ademas de qe qeda incomodo ;)

http://sertinell.spymac.net/dir2dvd2.bash

Hay lo teneis, los cambios son, en la linea de comandos de mencoder, donde
el error era grave, en la linea de multiplexado, donde creo qe era leve, y en
la parte de los comentarios, qe si lo usa alguien qe no sepa como funciona en
us entrañas ahora, creo, le qedaria mas claro. Hay qe mirar con seria lo de
cambiar los FPS de entrada hacia un estandar sin qe se desincronice con el
audio, ahora qe somos ma, a ver si lo averiguamos.

Un saludo.


Last edited by Sertinell on Wed Oct 20, 2004 6:00 am; edited 1 time in total
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Tue Oct 19, 2004 9:24 pm    Post subject: Reply with quote

El link que pones no me funciona . Me lleva a www.spymac.com y nada mas .

Solucionado - es .net
_________________
Linux user #358087
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Wed Oct 20, 2004 6:01 am    Post subject: Reply with quote

Arreglado
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Sat Oct 23, 2004 8:10 pm    Post subject: Reply with quote

El script que está en vuestras paginas a mi no me funciona . Vete a saber porque .
Hace las cosas pero todo sale a cuadraditos - con una resolucion penosa .
Partiendo de la ultima modificacion de oCHARLIo he intentado hacer algo , pero hago una mezcla entre lo que tenia y el de charli ,
porque si no me hago un lio y no salgo ni patrás .
Lo siento , pero no soy capaz de ver ningun error que podria provocar la perdida de calidad en la imagen y tampoco puedo arreglar las cosas en el script como esta puesto en las paginas .
Cuelgo en mi pagina lo que he podido hacer .

P.D. La pagina de charli no me abre .
_________________
Linux user #358087
Back to top
View user's profile Send private message
krawek
Apprentice
Apprentice


Joined: 15 Oct 2003
Posts: 163
Location: Buga - Colombia

PostPosted: Sun Oct 24, 2004 3:01 am    Post subject: Reply with quote

hola

y es posible convertir un VCD a otro formato?
Back to top
View user's profile Send private message
oCHARLIEo
Guru
Guru


Joined: 06 Oct 2003
Posts: 303
Location: Madrid

PostPosted: Sun Oct 24, 2004 12:09 pm    Post subject: Reply with quote

pues efectivemente erflako... parece que es script estaba calculando mal el Bitrate de salida (creo que ha sido culpa mia ;-P) ya lo he solucionado y lo he preparado para que recoja la duracion del video en segundos de forma automatica...
http://nexusvi.no-ip.org/images/dir2dvd_23_10_2004.bash

Tambien he metido una nueva opcion para especificar si quieres DVD,SVCD o VCD en la salida, ajustando tb los tamaños de salida... parece que ahora hay problemas con los buffers underflows creo que habra que recalcular las variables BUFSIZE y MUXBUFSIZE...

Tb tengo pendiente el ajustar los FPS sin que suponga retardos en el video de salida... he visto que podemos usar algun filtro de telecine... pero no me gustan mucho por que suelen meter entrelazado...

krawek si es posible, pero no con este script... su filosofia en un principio seria pasar lo que sea a MPEG2 para poder reproducirlo en un DVD y VCD ya es MPEG2... pero claro la decision final en esto no me corresponde a mi (ya que solo colaboro), el autor es Sertinell.

PD:En enlace ya funciona... tenia el apache apagado ^_^
Un saludo
_________________
Las Mujeres son malvadas, retorcidas, perversas... pero huelen tan bien...

Por un foro ordenado y un buscador más útil:
[TEMA] Descripción problema (estado)
Back to top
View user's profile Send private message
erflako
Apprentice
Apprentice


Joined: 18 Apr 2004
Posts: 210
Location: Madrid , España

PostPosted: Sun Oct 24, 2004 3:29 pm    Post subject: Reply with quote

Desde anoche tengo una cosa parecida a la tuya - lo del vcd etc.
A mi me da error haciendo vcd . Lo hace , pero con error en ... buffer underrrun ...

Ahora al tajo - yo cojo el audio codec del fichero de entrada . Asi como tienes las cosas
puede que te salga mal la cosa - un avi con ac3 lo tienes que obligar para que te haga ac3 de salida .
Coje al audio del avi y tratalo segun el caso .
Lo mencioné antes - el script lo tengo colgado en mi pagina - "www" que esta al lado de "mp" .
El problema lo tengo en un avi con pcm en un canal (???)
Lo mejor que he conseguido es :
Code:

# transcode -i $FILE -o video -m audio -x divx,af6 -y mpeg2enc,wav
# transcode -i $FILE -o video -m audio -x divx,raw -y mpeg2enc,wav

Ambas cosas funcionan , pero , claro , uso transcode .
La idea original de Sertinell de usar solamente mplayer-mencoder no la puedo mantener .
Con transcode el video se puede hacer con null y el audio es decente ( segun se mire ) .
Por lo menos se escucha y no tiene ruido .
Si decidimos usar transcode creo que podriamos codificar casi cualquier audio a ac3 . Esta por comprobarlo .
La decision final es de Sertinell .
( Como dijo oCHARLIEo - yo solo colaboro )
Tambien intento poner un paramentro formato de audio de salida - asi podriamos obligar un audio segun se quiere en DVD .
En (S)VCD tiene que ir mp2 ¿no? Pero en dvd puedes dejar mp2 teniendo ac3/a52 en la entrada .
Ahora mismo no tenemos medios de tratar pcm ( sin contar con transcode ) y si te toca un fichero así
a lo mejor no se oye nada en la salida - lo tratarías como un "no-ac3" y vete a saber que saldría .
Con el que tengo yo - ruido .
Si mirais el script que tengo los nombres de funciones estan un poco cambiadas ( no te ofendas oCHARLIEo ,
así las tenia antes , así se quedaron )
La estructura del script sin embargo es la misma .
He añadido una funcion de comprobacion del espacio de disco - puede que en un momento dado no tengas
espacio para hacer la octava pelicula . No esta muy fino , pero ... ya lo arreglaré .

Lo de los FPS - por ahora los cojo del fichero de entrada .

Comentad como lo veis - lo del sonido de salida , el transcode y a ver como arreglamos los fps.

Saludos .
_________________
Linux user #358087
Back to top
View user's profile Send private message
oCHARLIEo
Guru
Guru


Joined: 06 Oct 2003
Posts: 303
Location: Madrid

PostPosted: Sun Oct 24, 2004 4:38 pm    Post subject: Reply with quote

erflako no encuentro tu script por ningun lado macho ^_^ ponme un link por que debo ser muy torpe...

Por otro lado, no te entiendo muy bien con lo del sonido, no lo puedes convertir a AC3, aunque si puedes conservar el sonido AC3 por defecto (si pones a "yes" la variable global lo hara por defecto).
Yo de momento no conozco ningun conversor a AC3 y aun asi el problema que tendrias es que tu fuente original deberia ser de 5 canales, y en un MP3 solo tienes dos...

El sonido en un VCD,SVCD solo puede ser PCM(2 canales) o MP2 y en un DVD ademas puede ser AC3 y PCM(5 canales), en el script tienes una opcion para conservar el sonido AC3 y podemos agregar otra para conservar el sonido PCM si ves que da problemas... (no lo he probado pero deberia funcionar bien con los PCMs de 2 o mas canales) de esa forma los (S)VCD saldrian con el sonido en PCM original y se deberia reproducir sin problemas en un DVD...

PD: tronko, edita tus post anteriores y elimina esos fragmentos de codigo porque descuadran todo el hilo y se lee fatal, anda hazme el favor ^_^
_________________
Las Mujeres son malvadas, retorcidas, perversas... pero huelen tan bien...

Por un foro ordenado y un buscador más útil:
[TEMA] Descripción problema (estado)


Last edited by oCHARLIEo on Sun Oct 24, 2004 4:53 pm; edited 1 time in total
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Sun Oct 24, 2004 4:50 pm    Post subject: Reply with quote

Perdonadme por el tiempo qe he estado desaparecido ;)

1º Me parece perfecto q qerais hacer VCD, pero un VCD es mpeg-1, no mpeg-2. Eso tambien habria qe cambiarlo.

2º Respecto a usar transcode ... Si es la unica forma qe has encontrado perfecto, pero yo he codificado de PCM Raw a PCM wav header con mplayer, sin nigun problema. Con la misma linea qe usamos dese el principio para sacar elmp3 a un wav.

Quote:
krawek si es posible, pero no con este script... su filosofia en un principio seria pasar lo que sea a MPEG2 para poder reproducirlo en un DVD y VCD ya es MPEG2... pero claro la decision final en esto no me corresponde a mi (ya que solo colaboro), el autor es Sertinell.
Krawek el script se trata de eso, de pasar un avi o lo qe sea a un mpeg reproducible en un DVD, si quieres pasar un VCD a DVD oSVCD ya te aviso qe vas a perder calidad, se pierde en toda codificacion, esto es como el tlefono roto ;)

4º La variable MUXBUFFSIZE para SVCD y VCD si tiene un valor concreto, el problema es qe mi documentacion la obtengode KVCD.net, y alli trabajan con windows y no multiplexan el DVD, ya se encarga elprograma de autoria. Ahora os pego el valor para SVCD y VCD. La variable BUFFSIZE SI tiene valor para los 3 ahora os lo pego.



Quote:
La decision final es de Sertinell .
( Como dijo oCHARLIEo - yo solo colaboro )

Vosotros ya habeis invertido casi mas tiempo q yo en el script;).
Back to top
View user's profile Send private message
Sertinell
Guru
Guru


Joined: 19 May 2004
Posts: 582

PostPosted: Sun Oct 24, 2004 5:06 pm    Post subject: Reply with quote

Code:
vrc_buf_size= the vbv buffer size (VCD=327, SVCD=917, DVD=1835)

Ahi teneis los valores de BUFSIZE. Respecto a MUXBUFSIZE mplex dice qe se debe poner el mismo valor con el qe secodifico el video. Pero segun los datos qe tengo y eso, sipara SVCD son 230 (eso es seguro) 937/4=~230 pues por regla de 3 salen el resto.

Respecto a las definiciones qe habeis escojido para el estandar, a mi personalmente me gusta elegir la resolucion segun el filme, el tamaño del qe dispongo etc. Me gustaria tener una opcion para poder habilitar la eleccion libre de las resoluciones. Antes era el autor ahora soy yo el qe colabora y aporta ideas ;)

P.E. Mis SVCD siempre los hago a 352x576 por qe aunqe no es standar mi DVD lo coje perfectamente y si quiero meterlo en un CD solo, 480*576 hay veces qe es demasiado grande y aparecen artefactos.

los FPs, hasta qe charlie no ocnsiga qe no se desincronice, es el qe mas cerca lo tiene ;), creo qe deberiamos dejar qe cojiera los valores del video original, para qe no haya desincronizaciones mientras lo solucionamos :)

Edito:No habia leido esto
Quote:
El sonido en un VCD,SVCD solo puede ser PCM(2 canales) o MP2 y en un DVD ademas puede ser AC3 y PCM(5 canales), en el script tienes una opcion para conservar el sonido AC3 y podemos agregar otra para conservar el sonido PCM si ves que da problemas... (no lo he probado pero deberia funcionar bien con los PCMs de 2 o mas canales) de esa forma los (S)VCD saldrian con el sonido en PCM original y se deberia reproducir sin problemas en un DVD...
Un SVCD con PCM !!! Con lo qe ocupa un PCM de 90 Min no nos qeda sistio para el video en un CD. Yo voto por pasar el PCM a mp2(tanto para DVD como SVCD), mis pruebas me dicen qe extrayendo el audio con la opcion de siempre mplayer lo extrae al wav y no hay problemas para codificarlo con toolame, pero si las preubas de erflako dicen lo contrario ...(mis prubeas fueron con un WAV a 44.100 Hz y stereo)

Un saludo
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Goto page Previous  1, 2, 3, 4 ... 14, 15, 16  Next
Page 3 of 16

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum