# [Colaboracion]Scripts. ANY2DVD,sin menus(030206 Up)

## Sertinell

Hola:

ES MUY RECOMENDABLE USAR LA ULTIMA SNAPSHOT DEL CVS DE MPLAYER DISPONIBLE EN PORTAGE

En windows solia pasar mis peliculas a KVCd con tmpgenc y al llegar a linux me puse como loco a buscar scripts, ninguno me convencia.  En mi busqeda descubri mencoder  Depues de analizar sus archivo de configuracion ,de aprender algo de BASH y sobre todo gracias a la ayuda de muxos de vosotros he conseguido terminar mi script. 

Y el resultado es este:

Modo de Uso

avi2mpeg.sh --help

Recomiendo encarecidamente la realizacion de DVD's o SVCD's mencoder trabaja mucho mejor en mpeg2 qe en mpeg1.

El script tiene una opcion de ayuda qe considero bastante completita.

El script lo podeis encontrar aqui.

http://webs.ono.com/usr020/sertinell/dir2dvd

Ahi una version "vieja" sin soporte para creacion de DVD en 

http://webs.ono.com/usr020/sertinell/dir2mpeg

Basicamente trabaja con cualquier cosa qe pueda reproducir mplayer, MOV's OGM y MKV tambien  :Very Happy: 

Tiene algunas opciones qe yo no encontre en nigun script de los muxos qe descargue y probe como pueden ser:

-Cambio de Framerate.

-Opcion de poner overscan. Son unas bandas negras a los lados qe no se perciben en el televisor pero qe si restan tamaño al video(en MB quiero decir) permitiendo destinar ese bitrate a partes mas comprometidas de la pelicula.

Editado: 4-10-04 actualizado el primer script y añadido el segundo, trabajando en la automatizacion de las variables  :Wink: 

Edito: 5-10-04 peqeña actualizacion, correccion de algunas cosas en los script, como la duracion del GOP en kvcd.sh, ahora el gop para ntsc es correcto. Yo siempre uso PAL

Edito: 15-09-05

Ahora el script vuelve a funcionar, ahora es bastante mas completo  :Wink: .

Edito: 02-10-05

Corregido un bug (de mencoder) en la generacion de audio a 48000 Hz

TODO List por orden de prioridad

¡¡Mejora de la Velocidad!!

Cambio de Frame rate cambiando la durancion del fichero.

Compatibilidad con NTSC.

Mejora del modo personalizado.

Eleccion de distintas matrices.

Codificacion directa desde un DVD.

Creacion de la estructura de ficheros del DVD. Esta es MUY poco prioritaria.  :Razz:  (Hecho) 

DO List por orden de llegada

Creacion de la estructura de ficheros del DVD.

Saludos y espero qe os sirva de algo.Last edited by Sertinell on Fri Feb 03, 2006 2:58 pm; edited 16 times in total

----------

## artic

yo un dia de estos he de probarlo,ya av las pelis no se miran en los dvd q leen xvid o divx,y alomejor pasandolos a otro formato se mirar.

Mas o menos cuanto tiempo tarda en cambiar el formato????? pq mi experiencia en estos menesteres me indica q bastante.

Salu2

----------

## Sertinell

Pues si lo haces funcionar a 1 pasada, alrededor de una razon de 1:1 (depende del pc vamos pala una peli de 2 h tardaria 2 horitas. Si haces doble pasada, pos el doble como quien dice. La doble psada, evidentemente da mayor calidad.

A mi con un pemtium 4 a 1.4 Ghz y 256 sdram me funciona a una razon de 0.72 a 3 horas +- por pelicula de 2 horas en una pasada.

----------

## oCHARLIEo

Yo publique en este foro un script parecido, aunque mucho menos funcional en su dia... tuve que desechar el utilizar el mplayer + mencoder por que en cuanto que metias mucha calidad se piraba de tiempo... ahora tengo otr script a medias mucho mas funcional con transcode... las ultimas versiones han mejorado mucho y la verdad que funciona muy bien.

El problema que es que nunca tengo tiempo para darlo por finalizado   :Laughing: 

Para convertir los FPS prueba con

```

--export_fps 25.000,3 -J modfps=clonetype=5

```

funciona perfecto, pero necesitara un poco mas de tiempo...

----------

## Sertinell

Mencoder a mi me funciona mas rapido qe transcode. Probe script ya hechos en base transcode, y al final acabe haciendome mi propio script en mencoder, los scripts no estan ni mucho menos finalizados pero son perfectanmente funcionales  :Very Happy: .

Creo haber leido sobre tu script, de avi a DVD era no ? , y segun lei er mucho mas lento qe el mio  :Razz:  . Si quieres podriamos colaborar y a ver qe sale  :Very Happy: 

Saludos

P.D No es qe me conecte a todas horas desde casa, esqe ahora tendria qe estar en clase ^^, es ams estoy con IE  :Sad:  en la ALA de mi uni

----------

## artic

Lo normal seria hacer doble pasada q si no se miran bastante mal,mi ekipo es xp 1,6 por lo q tardaria poco menos ,calculo entonces 4 horas por peli,poco mas descargo una de la red.Cuando hacia os divx del dvd con doble pasada tb tardaba una barbaridad.

Bueno pos a colaborar y sacar un script mas rapido   :Laughing:   ,aunque si no hay procesador de donde no hay no se puede sacar.

Salu2

----------

## oCHARLIEo

Sip, era bastante mas lento, pero el motivo de que fuera mas lento es porque yo lanzaba a la vez los procesos para comprimir el audio y el video... de esa forma conseguia no tener ningun temporal de trabajo pero por lo visto es bastante mas lento...   :Laughing: 

Con el transcode sigo sin utilizar ningun temporal y disminuyo bastante el tiempo...

Me parece buena idea lo de unificar esfuerzos ^_^ puedes localizarme por correo en la cuenta nexusviARROBAgmail.com, ultimamente no uso la mensajeria instantanea pero de vez en cuando me paso por el canal IRC de gentoo-es

----------

## Sertinell

Lo mas rapido es sin aplicar filtros, eso es con la opcion para DVD del 1º script, el 2º lo hice principalmente para anime, por lo qe omiti una opcion para DVD.

Saludos

----------

## Sertinell

 *Quote:*   

> Sip, era bastante mas lento, pero el motivo de que fuera mas lento es porque yo lanzaba a la vez los procesos para comprimir el audio y el video... de esa forma conseguia no tener ningun temporal de trabajo pero por lo visto es bastante mas lento...

 

Pues estaba yo pensando en lanzar todos los procesos a la vez, trabajando con fifos, pero si dices qe es mas lento, mejor me estoy quietecito  :Very Happy: . 

Gracias por la info  :Wink: 

----------

## oCHARLIEo

Eres HiperMega rapido respondiendo!!!

Por cierto, con lo del inter_matrix y lo del intra_matrix me has dejado completamente flaseado....  :Wink:  segun lo he visto me he ido de cabeza al man...

Y ya que estamos, os voy a poner por aki un script que utilizo para convertir los ogms a divxs para poderlos ver en el reproductor de la tele...

```

#!/bin/bash

# Este script pasa un video en formato ogm a formato avi

# Fecha: 01/09/2004

# Autor: Carlos Canelo

# Parametros:

# ogm2avi.bash <ogmfiles>

# Funcion de error en los parametros de entrada...

function func_echo_error_param

{

   echo "Uso:"

   echo "      ogm2avi.bash <ogmfiles>"

   exit 1

}

if [ $# -eq 0 ]; then

   func_echo_error_param

fi

for FILE in "$@"

do

   # Si el parametro es un fichero que existe...

   if [ -f $FILE ]; then

      ## Creando variables ##

      FILE_INPUT=$FILE

      base_file_input="`basename \"$FILE_INPUT\"`"

      FILE_OUTPUT=${base_file_input%.*}

      DIR=`pwd`

      TEMPFOLDER=/tmp/ogm2avi

      # INFO_MPLAYER="$TEMPFOLDER/info_mplayer"

      INFO_TCPROBE="$TEMPFOLDER/info_tcprobe"

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

         FILE_INPUT="$DIR/$FILE_INPUT"

      fi

      

      # Creamos directorio temporal

      mkdir $TEMPFOLDER 2>/dev/null

      

      # Leemos todo lo necesario del fichero de video

      echo "## Obteniendo informacion del fichero de video:"

      echo "## $FILE_INPUT"

      # Hay que lanzar asi el tcprobe porque la primera salida la hace como error

      tcprobe -i "$FILE_INPUT" > /dev/null 2> $INFO_TCPROBE

      tcprobe -i "$FILE_INPUT" >> $INFO_TCPROBE 2> /dev/null

      # mplayer puede ser util para obtener alguna info extra

      # mplayer -identify -vo null -ao null -frames 1 -quiet $FILE_INPUT > $INFO_MPLAYER 2>/dev/null

      

      # Si he podido obtener info de el ...

      # if [ -s $INFO_MPLAYER -a -s $INFO_TCPROBE ]; then

      if [ -s $INFO_TCPROBE ]; then

         # Analizando Entrada

         TYPE_VID=`grep '\[tcprobe\]' $INFO_TCPROBE | \

         perl -e ' $line=<STDIN> ; $line =~ /\[tcprobe\] (RIFF|MPEG|OGG|OGM)/ ;  print $1' `

         

         # Comprobamos que el formato del stream de video sea OGM

         if [ "$TYPE_VID" == "OGG" -o "$TYPE_VID" == "OGM" ]; then

            # Realizo la Conversion

            mencoder ${FILE_INPUT} -ovc copy -o ${FILE_OUTPUT}.avi -oac mp3lame -lameopts abr:br=128

         else

            echo "El fichero de entrada no tiene formato OGM. Formato del contenedor detectado: $TYPE_VID"

         fi

      else

         echo "No se ha podido obtener informacion del fichero de entrada: $FILE_INPUT"

      fi

      

      # Eliminamos Ficheros temporales

      echo -e "\n## Eliminando Temporal ... ##"

      

      # rm $TEMPFOLDER/info_mplayer 2>/dev/null

      rm $TEMPFOLDER/info_tcprobe 2>/dev/null

      rmdir $TEMPFOLDER 2>/dev/null

   else

      echo "El fichero $FILE no es accesible o no existe."

   fi

done

```

----------

## Sertinell

 *Quote:*   

> Por cierto, con lo del inter_matrix y lo del intra_matrix me has dejado completamente flaseado.... Wink segun lo he visto me he ido de cabeza al man... 

 No son mias:  :Rolling Eyes: 

aqui

aqui

aqui

Esos son script para mencoder en win, los autores me dieron permiso para cojerlos y copiarlos  :Very Happy: . Asi qe la parte de emncoder no es mia, mio solo es la parte referente a linux, la estructura de bash y demas. Te puedo decir qe no me he mirado las man de mencoder casi, solo para el comando de sacar el audio  :Very Happy: 

Saludos !!

----------

## Sertinell

La velocidad tambien depende, y parece qe mucho del HD donde se ejecute, ejecutandolo sobre mi HD nuevo, la veloscidad es de 22 fps frente a los 17 de mi hd viejo y sobre el qe corre toda mi gentoo...

----------

## artic

Hola he probado a ejecutar tu script y me escupe esto:

```

ID_VIDEO_FORMAT=XVID

ID_VIDEO_BITRATE=790784

ID_VIDEO_WIDTH=560

ID_VIDEO_HEIGHT=304

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=6347

el cambio de FPS NO esta SOPORTADO (falta  de pruebas), escribe los FPS ORIGINALES

FPS?: 

Pq narices me pide eso????????los frames per second........
```

----------

## Sertinell

 *artic wrote:*   

> Hola he probado a ejecutar tu script y me escupe esto:
> 
> ```
> 
> ID_VIDEO_FORMAT=XVID
> ...

 

ûes lo pide por qe aun no he sido cpaz de qe coja los valores de variables dependientes del fichero de entrada de forma automatica. De todas formas  tienes la respuesta arriba "23.976".

Saludos

----------

## artic

bueno voi a probar a ver q sale,gracias por la pronta respuesta.

Salu2

----------

## alexlm78

Me gustan los scripst seria de probarlos con alguna peli que valga la pena

----------

## oCHARLIEo

Sertinell, para adquirir automaticamente los parametros manda la salida del mplayer a un fichero temporal (en vez de a consola) y despues puedes asignar las variables con:

```

INPUT_V_FPS=`grep 'ID_VIDEO_FPS' /tem/datos_mplayer | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' `

INPUT_V_WIDTH=`grep 'ID_VIDEO_WIDTH' /temp/datos_mplayer | sed 's/ID_VIDEO_WIDTH=//' `

INPUT_V_HEIGHT=`grep 'ID_VIDEO_HEIGHT' /temp/datos_mplayer | sed 's/ID_VIDEO_HEIGHT=//' `

```

por ejemplo...

----------

## artic

Si la verdad con el grep no estariamos asi...........

```

ID_VIDEO_FORMAT=XVID

ID_VIDEO_BITRATE=790784

ID_VIDEO_WIDTH=560

ID_VIDEO_HEIGHT=304

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=6347

el cambio de FPS NO esta SOPORTADO (falta  de pruebas), escribe los FPS ORIGINALES

FPS?: 23,976

Resolucion original?¿(base altura)560 304

Resolucion destino?¿(base altura)

```

Me imagino q hasti estara bien pero en el formato al q estamos pasando hay q poner algo fijo o lo q sea..............o dejarlo = q seria lo q hubiese echo.........

despues en overscan q son .......

duracion en minutos hay q ver lo q dura la peli.......

combo filter audio o dvd   pa q es cada una........ aunque lo sospecho paso de estar 4 horas para fastidiarla....

Mira mejor sera q hagais una mini guia de uso XD ,pq "fozar" en algo de pocos minutos ya mira uno lo q sale ,pero con el tiempo q se tira esto mejor es ir a tiro fijo.Ademas asi queda pa todo el mundo.

Es una sugerencia  :Razz: 

Salu2

----------

## Sertinell

Probaste esto ?

```
kvcd.sh --help

Las resoluciones deben darse de la siguiente manera

BASE ALTURA ej: 352 288

Los FPS deben ser exactos ( 23.976 25 ó 29.976)

El overscan es un valor qe indica el grosor

de las bandas negras qe se aplicaran a izq y derecha

esto depende de tu televisor, pero se recomienda

1 Para resoluciones peqeñas, del orden de 352x288 ó 320x240

2 Para resollucioones algo mas grandes, del orden de 352x576 480x480 ...

3 Para resoluciones grades, 704x576 704x480...

Para PAL yo recomiendo una resolucion de 352x576

se recomienda comprobar la compatibilidad con tu DVD

en caso de desconocer la compatibilidad usar 480x576

La duracion en minutos debe ser EXACTA nada de decimales,

Lo recomendable es redondearlo al alza

 Personalmente recomiendo utilizar la doble pasada

Para la utilizacion de subtitulos

debe existir un archivo de subtitulos valido en el mismo directorio,

y con el mismo nombre qe la peli

El script es totalmente libre para uso y distribucion

y alteracion y todas esas cosas qe todos suponemos ^^

y nos encantan del SL

Special thanks to Prodater64 and Maurus from www.kvcd.net

```

 *Quote:*   

> ID_VIDEO_FORMAT=XVID
> 
> ID_VIDEO_BITRATE=790784
> 
> ID_VIDEO_WIDTH=560
> ...

 

ID_LENGTH es la duracion en segundos.  Cuando te pregunte el bitrate de audio 112 va bien  :Wink: 

Un saludo

----------

## Sertinell

 *oCHARLIEo wrote:*   

> Sertinell, para adquirir automaticamente los parametros manda la salida del mplayer a un fichero temporal (en vez de a consola) y despues puedes asignar las variables con:
> 
> ```
> 
> INPUT_V_FPS=`grep 'ID_VIDEO_FPS' /tem/datos_mplayer | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' `
> ...

 

No te habi leido aun en mi anterior post. Me pongo con ello esta tarde  :Wink: 

Saludos

----------

## artic

jeje no me habia quedado en q le habias metio --help al script ,pensaba q estaba mas verde aun,jeje av tenemos las cosas delantes y no las vemos.

Pos voi a probar a ver..........

Salu2

----------

## Sertinell

Actualizado el 1º, ahora pilla las resoluciones originales los FPs yla duracion automaticamente  :Wink: .

 Si veis qe el tamaño de archivo  se excede, comprobar qe la duracion en el $FILEdata.log es correcta. Ahi veces qe esto no esta reflejado de forma correcta en las cabeceras de los avi's por lo qe no se hasta qe punto es bueno cojer este dato de forma automatica... 

Un saludo

----------

## Sertinell

He encontrado un fallo en el primero qe no permite codificar directamente desde un DVD, el segundo claramente no es para codificar desde DVD. Esta perfectamente localizado asi qe supongo qe en breve (1 o 2 dias ) estara corregido.

Si qereis ver el fallo:

```
kvcd.sh dvd://
```

 :Wink: 

Un saludo

----------

## artic

Una "pereberegunta" ,el programa pide el mencoder,yo nunca he trabajado desde linux con avis,solo use el virtualdub en su dia.......lo debo descargar no .....

Siento mi desconocimiento en este tema.

Salu2

----------

## Sertinell

mencoder viene con mplayer, si no tienes -encoder en tus USE. Si tienes mplayer mencoder lo mas normales qe tambien este.

----------

## artic

Estas son las use con las q compile mi mplayer,ultimamente modifique la de fb para ver pelis desde la consola,pero lo verdad,el resto las deje como estaban.Para q disponer del mencoder no deberia estar las use con encoder,si le pongo el menos como tu dices me lo compilara sin esa opcion.

```

media-video/mplayer-1.0_pre4-r7  -3dfx +3dnow -3dnowex +X +aalib +alsa -(altivec) +arts -bidi -cdparanoia -debug -debug +directfb -divx4linux -dvb -dvd -dvdread -edl +encode +esd -fbcon -ggi +gif +gnome +gtk -ipv6 -joystick +jpeg -libcaca -lirc -live -lzo +mad -matroska -matrox +mmx -mmx2 +mpeg -mythtv -nas -network +nls +oggvorbis +opengl +oss +png -rtc -samba +sdl +sse -sse2 +svga -tga -theora +truetype -v4l -v4l2 -xinerama +xmms +xv -xvid

```

Salu2

----------

## Sertinell

Correcto tienes mencoder instalado en tu sistema  :Wink: 

----------

## artic

Carai pareces un chat,eso si q es online support.

 :Razz: 

Por cierto q uses le meterias al mplayer adicionalmente para un ath xp????

Salu2

----------

## Sertinell

```
[ebuild   R   ] media-video/mplayer-1.0_pre5-r3  -3dfx -3dnow -3dnowex +X -aalib +alsa (-altivec) +arts -bidi -cdparanoia -debug -directfb -divx4linux -doc -dvb +dvd +dvdread -edl +encode +esd +fbcon -ggi +gif +gtk -i8x0 -ipv6 -jack +joystick +jpeg -libcaca -lirc -live -lzo +mad +matroska -matrox +mmx +mmx2 +mpeg -mythtv -nas +network +nls -nvidia +oggvorbis +opengl +oss +png -rtc -samba +sdl +sse +sse2 +svga -tga -theora +truetype -v4l -v4l2 -xinerama +xmms +xv -xvid -xvmc
```

Yo te dejo las mias, no se si seran las mejores. No se si mi pentium4 1.4Ghz soporta el 3dnow y 3dnowex (creo qe son de amd) por eso no las tengo activas.

----------

## artic

No 3dnow es de amd,donde dudo es en las mmx2 , en las sse2,3dnowex.Q no se si estan integradas en mi cpu..........q me deberia dar verguenza haberme olvidado de esas cosas.Pero ya ire a la web del fabricante q alli han de estar especificadas.

Gracias y un salu2

----------

## oCHARLIEo

si haces un:

```

cat /proc/cpuinfo

```

en las flags tienes los juegos de instrucciones que soporta tu procesador

----------

## artic

Ya no me acordaba,asi fue como saque parte de mis use para el make.conf.

Gracias por el apunte.

Salu2

----------

## erflako

Ejem .

Como a mi siempre me gustó el sonido 5.1 ahí va la pregunta :

Al extraer el audio con 

....................

mplayer -nojoystick -nolirc -quiet -vo null -vc null -ao pcm -aofile "$FILE.wav" "$FILE" &> /dev/null & #extraemos el audio a un Wav

....................

¿Que pasa si ponemos una opción 

            -format 1024

(se supone ac3)

y , como consecuencia de esto , que driver hay que usar ?

Hm, pensándolo mejor ¿ a que fichero hay que escribir esto ?

----------

## Sertinell

Si extraes el audio desde DVD pra qe no recodifiqe, hay qe usar la opcion --audiodump (tengo entendido"man mplayer"), y ademas no usar toolame y editar el multiplexado apra q coja el audio qe directamente extrajo mplayer, de todas formas, como aun no he arreglado lo del DVD no me he puesto con el 5.1,y por qe no tengo medios donde probarlo ...

Saludos

P.D. Eso si la fuente es ac3, si no es ac3 es unasanta gilipoyez hacer ac3  :Wink: 

----------

## erflako

Sertinell

P.D. Eso si la fuente es ac3, si no es ac3 es unasanta gilipoyez hacer ac3 

Por supuesto .

Como mplayer no lo controlo nada ...

Bueno , comento mi experiencia y el script que utilizo para convertir los avis . No pego todo el script porque es muy cutre .

Con la secuencia :

transcode -i /mnt/amule/liga.avi -l on -o video -x divx -y yuv4mpeg

cat video | yuvscaler -M WIDE2STD -O DVD -n p | mpeg2enc -s -f 9 -F 3 -b 8000 -n p -o video1

tcextract -i /mnt/amule/liga.avi -a0 -x ac3 > audio

se extrae el video y , supuestamente , el audio ac3 en los ficheros video1 y audio . Luego :

mplex -f 8 audio video1 -o $1.out

y tengo el fichero de entrada con la extensión .out listo para grabar .

Casi .

Alguien sabe ¿ porque la imagen sale cabeza abajo ?

Si quito el parametro -l de transcode sale como si se mirara por detras . Es decir - peor .

Por lo demas - de calidad bastante bien , el sonido - ni idea , porque no tengo un fichero avi con el sonido ac3 , pero en general - decente .

Me parece que la combinacion yuvscaler - mpeg2enc no es lo mejor en tem a de velocidad porque en este caso :

 1100 frames se pasan con transcode en +- 30 segundos y el tandem tarda mas de cinco . Entonces para la peli entera (110000 frames) tardaría unas 10 horas . Desesperante .

Ahora el problema es dar vuelta a la imagen .

P.D. oCHARLIo , la misma peli con tu script se me quedó alargada . Creo que es porque tienes un "-M BICUBIC" en el yuvscaler . Esto valdría para una 4:3 pero esta es panoramica y queda mal .

----------

## alexlm78

Hasta ahora cool, sigamos adelante.

----------

## Sertinell

Bueno pue el bug de los DVD's sigue, tengo problemas con mi sistema, y no he podido dedicarle tiempo al script  :Sad: , ademas de las fiestas reglamentarias qe supone un puente  :Very Happy: 

 *Quote:*   

> Hasta ahora cool, sigamos adelante.

 Me alegra ver qe te funciona  :Very Happy: 

Saludos

----------

## erflako

Host..... 107 segundos para el mismo trozo de avi . Increible .

Solo una tonteria ¿ la imagen tiene que salir alargada ?

Es que no puedo grabarla en dvd+rw porque el reproductor de casa no lee rw . Y , claro , estropear un disco como que no apetece mucho .

Quero decir - si grabo esto , que con xine se ve alargado , luego se va a ver bien en la tele ¿ verdad ?

----------

## Sertinell

Qe resolucion pusiste ?, Todo depende de tu DVD ...

352x576 es alargada,y mucho, y en mi DVD va bien, 704x576 es menos alargada pero on llega a ser 4:3.  Ambas van bien en mi DVD, para probarlo, puedes hacer un:

```
mplayer -aspect 1.333 --zoom file.mpg
```

Si se ve bien se vera bien en el televisor  :Very Happy: .

El resize creo qe tiene un error de como mucho 8 pixeles por debajo, lo cual casi no se percibe, por lo menos yo no lo percibo  :Wink: 

 *Quote:*   

> Host..... 107 segundos para el mismo trozo de avi . Increible . 

 Comparado con qe? yo nunca he codificado en linux con otra cosa qe no sea mencoder  :Wink: 

Saludos

----------

## erflako

La resolucion es 352/480 , la que tienes en el script por defecto . En mplayer se ve casi cuadrada . Habrá que cambiarla .

Y la comparacion es con mi sistema que intento afinar . Mira mi post anterior .

----------

## Sertinell

352*480 es la por defecto para ntsc(es la qe utilizo en las raws de anime qe son NTSC), si estas haciendo pal 352*576 es la qe yo uso  :Wink:  ambas estan mas qe comprobadas y funcionan perfectamente  :Very Happy: 

----------

## erflako

Aquí os pego lo que he conseguido despues de unas horas . 

Intento seguir mi idea de script mas o menos funcional , respetando lo hecho por Sertinell y 

lo que he cojido de oCHARLIo de su script de conversion . Lo de ac3 es un empeño mio . 

Si alguien sabe como sacar el codec de audio del fichero avi al estilo de oCHARLIEo - se lo agradecería .

En fin - ahí va :

```

#!/bin/bash

# DEPENDENCIAS:

# mjpegtools ->> para disponer de mplex

# mplayer    ->> lo normal es que con el venga mencoder

# toolame    ->> con el codificaremos el audio

# special thanks to prodater64 and Maurus from www.kvcd.net

# MODO de ejecucion "dir2DVD (extension)" ej ogm ,avi ...

##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

clear

# mensaje de ayuda

help_msg () {

   echo "El script $PROPNAME codifica todos los ficheros"

   echo "con la misma extension dentro de un directorio ."

   echo "USO : $PROPNAME <opcion> ext"

   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"

}

# comprobamos las opciones de linea de comandos

until [ -z "$1" ] ; do

 case "$1" in

  "--pass") shift; VPASS="$1"; shift ;;

  "-p") shift; VPASS="$1" ; shift ;;

  "--ac3") shift; AC3="yes" ;;

  "avi") EXTENSION="avi" ; break ;;

  "ogm") EXTENSION="avi" ; break ;;   # sin comprobar

  "-help") help_msg; exit 0 ;;

  "--help") help_msg; exit 0 ;;

  "-h") help_msg; exit 0 ;;

  *) help_msg; exit 0 ;;

 esac

done

# esta es la funcion principal

# esta hecha aparte para hacer luego la opcion -d

avi_conversion () {

#######################################################################

#######################################################################

#################### N O  E D I T A R #################################

for var in *.${EXTENSION}

do

FILE="${var}"

OUTFILE="${FILE}.mpv"

INFO_FILE="${FILE}.info"

# por oCHARLIEo

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 '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 "fps - $FPS ; resh - $RESH ; resv - $RESV"

###########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 arriva

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

if [ $FPS = 25 ]

then

KEYINT=15

fi

if [ $FPS = 23.976 ]

then

KEYINT=18

fi

if [ $FPS = 29.970 ]

then

KEYINT=18

fi

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" &> /dev/null &

else

# salida ac3 - a un .mpa

   echo " AC3"

   tcextract -i "$FILE" -a0 -x ac3 > "$FILE.mpa"

fi

if [ $VPASS = 2 ]

then

# Dos pasadas , esta es la primera

YY=$YY+1   # un contador sin sentido

echo ""

echo "Pasada $YY - $FILE"

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"

fi

# Una sola pasada o la segunda

YY=$YY+1

echo ""

echo "Pasada $YY - $FILE"

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"

fi

mplex -f 9 -r 0 -v 1 -b 230 -V -p 1 -h -o "{$FILE}.mpg" "${OUTFILE}" "${FILE}.mpa"

# borramos los ficheros temporales

rm "${FILE}.mpa" "${OUTFILE}"

rm "divx2pass.log"   # creo que aqui es mejor

Y=$Y+1

done

echo "han sido codificados ${Y} archivos"

}

avi_conversion

```

----------

## Sertinell

Wow, tengo qe probarlo, ahora tambien depende de transcode, a ver si miro lo del ac3 con mplayer  :Wink: . Se agradecen las colaboraciones. *Quote:*   

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

 

Si la variable se asigna de forma correcta no tiene por qe dar error, de hecho el primer script, tras la ultima actualizacion, no da error y coje los FPS de forma automatica  :Wink:  Lo has dejado muxo mas limpito y estructurado de como estaba el mio  :Very Happy: .

Lo dicho, me has animado a mirar la codificacion directa (sin ripeos) desde el DVD y ha ponerme con el cambio de FPS, en ese link hay un script qe lo hace, pero no me gusta su estructura  :Rolling Eyes:  . El de los directorios lo hice sobre la marcha, me gustaria adaptar la parte de las preguntitas del 1º al segundo, me parece mas comodo qe te vaya preguntando (solo la primera vez,solo 3 preguntas) a tener qe editar el script cada vez qe lo use (sobre todo para copiarlo al path).

Bueno hasta aqui la declaracion de intenciones  :Wink: 

P.D. Por qe no lo subes a algun sitio?, y asi esto qeda limpito y ademas edito el primer post  :Smile: , ya lo voy yo subiendo.

----------

## erflako

No todo el monte es oregano . No he podido sacar el sonido ac3 con ningun otro programa.

Lo del FPS no lo entiendo , pero a mi me pasa .

Por cierto FPS es de la salida ¿ verdad ? Será por eso . Porque se aplica el mismo valor de la entrada.

Yo que se.

----------

## Sertinell

Tienes algun avi con ac3 por ahi ?, yo no  :Sad:  Podrias probar esto ?

```
-dumpaudio (MPLAYER solamente)

   Vuelca audio comprimido raw a ./stream.dump (útil con mpeg/ac3)
```

y ver si ese stream.dump es multiplexable con mplex ?

Edito:A mi lo FPS asi si me los coje, esto forma parte del 1ºscript (kvcd.sh)

```
FPS=`grep 'ID_VIDEO_FPS' "${FILE}data.log" | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' `

```

Editado: He cambiado en el script el codigo de obtencion de los valores por el qe puso oOCharlieOo en este mismo post  :Wink: , Los FPS deberian funcionar

Gracias

p.D. ya he editado el primer post  :Wink: 

----------

## Sertinell

Efectivamente el scipt ya pilla el valor de los FPSde forma automatica  :Very Happy: . A ver si miro lo de cambiarlos, por qe aunqe todos(o casi) los DVD's actuales pillan NTSC y PAL , el mio p.e. solo pilla NTSC estandar y a 25 FPS lo qe le heches(en resoluciones me refiero)

----------

## erflako

Mañana intento lo del "-dumpaudio" . Ahora no me da tiempo.

Y lo del FPS - no hay manera . Cambié todo del otro script (empezando por mplayer hasta SECS ) pero nada - mencoder peta. Y con la linea que pones :

FPS=`grep 'ID_VIDEO_FPS' "${FILE}data.log" | sed 's/ID_VIDEO_FPS=//' | sed 's/,/./' ` 

a mi no me funciona en absoluto - no devuelve valor. Tengo que poner :

#FPS=`grep 'VIDEO: ' $INFO_FILE | \

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

para que coja valor.

Cosas de los pequeños hombrecitos verdes que viven en la máquina .

----------

## oCHARLIEo

A ver, para extraer el sonido ac3 yo lo hago con el comando:

```

tcextract -i ${FILE_INPUT} -x ac3 -a 1 > ${DIR}/${FILE_OUTPUT}.ac3

```

En cuanto a los FPS, hay que convertirlos y no simplemente cambiarlos por que si los cambias corres el peligro de que se te desincronicen el audio y el video.

Tal y como esta en el script lo que se hace en marcar en la cabecera del video de salida que los frames por segundo son X pero ni se agregan ni se eliminan frames para conservar la duracion del video original, con lo que te puedes encontrar que al reproducir el vido con un FPs distinto a original la duracion tb sea distinta y e aki la descompensacion con el audio.

Hay que utilizar algun plugin de salida que te agrege o te elimine frames del video, yo lo hago en transcode con: --export_fps 25.000,3 -J modfps=clonetype=5

----------

## Sertinell

 *oCHARLIEo wrote:*   

> A ver, para extraer el sonido ac3 yo lo hago con el comando:
> 
> ```
> 
> tcextract -i ${FILE_INPUT} -x ac3 -a 1 > ${DIR}/${FILE_OUTPUT}.ac3
> ...

 

Eso es lo qe ha puesto erflako no? Me gustaria qe no dependiera de nada mas qe mplayer, pero por ahora lo he dejado  :Wink: , si encuentro como, lo cambio y si no, pues otra dependencia mas  :Smile: 

Respecto a lo FPS ya se qe es necesario convertirlos agregar frames y demas, de hecho es lo qe se supone qe hace -ofps,cambiar los FPs sin cambiar la duracion del archivo , pero al parecer no funciona  :Confused: . -fps Hace lo mismo pero sin agregar frames, simplemete cambia la velocidad a la qe estos se reproducen ...

Otra opcion seria, cambiar los fps tanto en mplayer al extraer el audio como en mencoder ...

Saludos

----------

## erflako

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 .

Os pego el fichero INFO por si alguien se entera de que puede ser el fallo en el audio :

MPlayer 1.0pre5-3.4.2 (C) 2000-2004 MPlayer Team

CPU: Intel Pentium 4/Xeon Willamette 1595 MHz (Family: 8, Stepping: 2)

Detected cache-line size is 64 bytes

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2

Reading config file /usr/share/mplayer/mplayer.conf

Reading config file /home/ug/.mplayer/config

Reading /home/ug/.mplayer/codecs.conf: Reading /usr/share/mplayer/codecs.conf: 73 audio & 180 video codecs

font: can't open file: /home/ug/.mplayer/font/font.desc

Font /usr/share/mplayer/font/font.desc loaded successfully! (206 chars)

Using usleep() timing

Input config file /usr/share/mplayer/input.conf parsed: 53 binds

Playing hackers2.avi.

AVI file format detected.

VIDEO:  [DIV3]  640x400  24bpp  25,000 fps  889,8 kbps (108,6 kbyte/s)

==========================================================================

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)

==========================================================================

==========================================================================

Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family

Selected video codec: [ffdivx] vfm:ffmpeg (FFmpeg DivX  :Wink:  (MS MPEG-4 v3))

==========================================================================

Checking audio filter chain for 22050Hz/1ch/8bit -> 22050Hz/2ch/8bit...

AF_pre: af format: 1 bps, 1 ch, 22050 hz, little endian unsigned int 

AF_pre: 22050Hz 1ch Unsigned 8-bit

AO: [null] 22050Hz 2ch Unsigned 8-bit (1 bps)

Building audio filter chain for 22050Hz/1ch/8bit -> 22050Hz/2ch/8bit...

Starting playback...

VDec: vo config request - 640 x 400 (preferred csp: Planar YV12)

VDec: using Planar YV12 as output csp (no 0)

Movie-Aspect is undefined - no prescaling applied.

VO: [null] 640x400 => 640x400 Planar YV12 

Exiting... (End of file)

Es mono etc , pero si en el avi se escucha ¿ porque no lo convierte bien ?

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 :

-------------------

tooLAME version 0.2l

 (http://toolame.sourceforge.net)

MPEG Audio Layer II encoder

USAGE: toolame [options] <infile> [outfile]

Try "toolame -h" for more information.

--------------------

Es decir - no tiene sentido extraer ac3 para manejarlo y codificarlo a mp3 .

Te vas a quedar con la tuya de usar solamente el mplayer .

Otra pregunta ¿ hasta que punto mplex maneja ac3 ? Porque si no - estamos en la misma .

----------

## Sertinell

 *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 .
> 
> ·····
> ...

 

Tiu de donde sacaste un avi con audio en PCM  :Confused: . Bueno creo qe se por qe es,

```
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  :Sad: 

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 Evil: 

···········································································································

 *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 .
> ...

 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 ...  :Rolling Eyes:  ) 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  :Wink: 

----------

## erflako

Aquí os pongo lo ultimo que he podido conseguir :

```

#!/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 :

```

#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 ?

----------

## Sertinell

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

```
# 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:

```
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  :Smile: (una mdk y mi gentoo) Es algo para qe puebes a ver si larga el valor de los FPS 

Respecto al audio:

```
# /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

```
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  :Wink: 

```
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  :Wink: .

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  :Wink: 

A otra cosa mariposa:

     No actualizaste a mi ultima modificacion  :Razz: 

 *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  :Wink: .

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.

```
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

----------

## Sertinell

lo actualizo con algunas cosas editadas y la opcion -svcd añadida  :Wink: 

```
#!/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

----------

## Sertinell

Actualizado error GORDO enla linea de comandos de mencoder  :Evil or Very Mad: 

Elflako actualiza tambien el tuyo qe el error lo has introducido tu  :Wink: 

----------

## erflako

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 :

```

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 :

```

# 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 :

```

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 .

----------

## Sertinell

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 Evil: 

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  :Wink: .

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.  :Smile:  mucho mas practico.

----------

## erflako

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 .

----------

## erflako

Modifico y añado lo siguiente :

```

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.

----------

## oCHARLIEo

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

----------

## erflako

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 :

```

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.

----------

## Sertinell

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  :Wink: 

Saludos

----------

## oCHARLIEo

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:

```

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

----------

## erflako

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í .

----------

## Sertinell

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   :Crying or Very sad: 

Ahora lo pego  :Smile: 

----------

## Sertinell

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  :Wink: 

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

----------

## erflako

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

Solucionado - es .net

----------

## Sertinell

Arreglado

----------

## erflako

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 .

----------

## krawek

hola

y es posible convertir un VCD a otro formato?

----------

## oCHARLIEo

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

----------

## erflako

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 :

```

# 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 .

----------

## oCHARLIEo

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 ^_^

----------

## Sertinell

Perdonadme por el tiempo qe he estado desaparecido  :Wink: 

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.

3º *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  :Wink: 

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.

5º 

 *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;).

----------

## Sertinell

```
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  :Wink: 

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  :Wink: , creo qe deberiamos dejar qe cojiera los valores del video original, para qe no haya desincronizaciones mientras lo solucionamos  :Smile: 

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

----------

## erflako

Jo , os ha dado tiempo a escribir . Vamos por partes :

oCHARLIEo - www.erflako.netfirms.com y pinchas "download avi2dvd" .

Lo del sonido - yo cojo el codec del avi y segun el codec trato el sonido . No se si tiene mucho sentido ,

pero en su momento me pareció bien . Si tienes un mp3 lo puedes codificar ( creo ) a ac3 , en dos canales ( tengo un avi con ac3 en dos canales )

y no vas a teber sonido envolvente , pero si será ac3 . 

¿ Que sentido tiene ? No lo se .

Ahora como tu tienes las cosas siempre codificas a mp2 , excepto el caso de tener ac3 en el avi , saberlo , y querer codificar a ac3 en la salida .

Si compruebas el codec y haces ac3 si lo tienes en el avi ya no tiene sentido el "-ac3" .

Ahora te interesaría hacer mp2 en un dvd teniendo ac3 en la entrada ( para ahorrar espacio )

Si haces vcd/svcd hay que dejarlo a mp2 . Como dice Sertinell - pcm en svcd no nos dejaría espacio para el video .

Y explicate ¿ que post hay que editar ? . Lo haría pero no me entero .

Sertinell - el fichero que te mandé ( no se si lo recibiste ) es un caso raro pero es avi con pcm en un canal . 

Alucina . Y este fichero no tiene sonido tratandolo como lo hacemos . La unica manera que he encontrado es la que puse ahí y repito :

```

transcode -i $FILE -o video -m audio -x null,raw -y null,wav 

```

A lo mejor es caso unico y no merece la pena dedicarle tiempo , pero quien sabe ...

Lo de la resolucion de salida - se podría poner una opcion , aunque yo no la veo mucho el sentido .

Quería hacer sobre todo dvd y cuanto mas calidad - mejor .

Nos hemos metido en svcd y vcd , así que hacer resoluciones raras tampoco sera de otro mundo .

Por mi - SI .

Y Sertinell , aunque haya invertido mas tiempo que tu ( esta por comprobar ) el script sigue siendo tuyo .

----------

## Sertinell

A donde enviaste elarchivo? Porq e yo no tengo nada  :Sad: 

----------

## erflako

Acabo de hacer una prueba con mp2enc ( es de mjpegtools que ya usamos ) :

```

mp2enc -b 112 -s -o $FILE.mpa < $FILE.wav

```

con el fichero con pcm va de miedo . Además he forzado la salida en dos canales , aunque no tiene sentido .

Con toolame no puedo codificarlo de ninguna manera .

Se supone que toolame es de mas calidad y mejor que mp2enc , pero este ultimo es de mjpegtools y toolame - no .

Vosotros vereis .

Con mp2enc podriamos hacer casi todo el sonido .

----------

## Sertinell

 *Quote:*   

> 
> 
> con el fichero con pcm va de miedo . Además he forzado la salida en dos canales , aunque no tiene sentido .
> 
> Con toolame no puedo codificarlo de ninguna manera .
> ...

 

pues si se supone qe toolame da mas calidad(lo pone en las man de mp2enc). Ahi qe probar con otros audios PCM, por qe el tuyo era algo raritu  :Razz: .  A ver si podemos hacer ams pruebas, de todas formas a mi me pareceria perfecto utiizar mp2enc, aunqe siguieramos usando toolame para el resto de archivos.

----------

## zorth

leyendoos me doy cuenta de lo poco que se...   :Confused: 

 :Shocked:  tengo que mirar ese script para pasar ogm a avi... tengo dos peliculas en ogm que necesito a toda urgencia tener en avi para poder verlas de una puñetera vez en el dvd sobremesa 

un saludo a todos

----------

## oCHARLIEo

Sertinell ya he incluido una opcion para salida en resolucion personalizada como querias ^_^ (a gusto del consumidor vamos)

Tambien tengo ya resuelto el dichoso ruidito que salia cuando usabamos toolame con el PCM misterioso de erflako, con lo que podemos seguir usando toolame sin problemas.

Estoy trabajando ahora en los FPS, ya os contare...

Erflako: si tienes un MP3 no tiene sentido pasarlo a AC3 ya que ocupa mas que un MP2 y no ganas calidad... el AC3 solo tiene sentido si tienes mas de 2 canales... y solo tienes mas de dos canales si tienes AC3 o PCM... 

Ahora estoy en el trabajo, asique luego actualizo el fichero colgado... y actualizo noticias pero esto promete!!

Un saludo

----------

## Sertinell

 *Quote:*   

> 
> 
> Tambien tengo ya resuelto el dichoso ruidito que salia cuando usabamos toolame con el PCM misterioso de erflako, con lo que podemos seguir usando toolame sin problemas. 

 Como lo has exo, por qe yo estuve haciendo pruebas y na de na... Hasta ripee anoxe el sonido de un DVD entero qe era PCM (2 canales,44.1 Khz), ahora probare a encodearlo con toolame a ver qe sale.

Esto se esta convirtiendo en algo serio ^^

Saludos

----------

## oCHARLIEo

Facil:

El problema estaba en que el dichoso pcm tenia un samplerate de 22050Hz asinke use el maravilloso mplayer para resamplear el audio a 44100 antes de pasarselo a toolame...

```

mplayer -nojoystick -nolirc -quiet -vc dummy -vo null -waveheader -af resample=$OUTPUT_A_SAMPLERATE:0:0 -ao pcm -aofile "$FILE_OUTPUT.wav" "$FILE_INPUT"

```

Ahora estoy con la descompensacion A/V al cambiar los fps... pero no estoy progresando mucho, la verdad... mplayer no incluye muchos plugins para esto y el telecine no me esta dando muy buenos resultados... asinke, exito=0

Esta noche os cuento

PD: En esta direccion http://www.delorenzo-caceres.com/videodisco.htm hay una tabla con todos los formatos PAL que existen frecuencias de muestreo y bitrates maximos... nos sera util... ^_^

----------

## Sertinell

Perfecto charlie, yo estab intentando resamplear ya dentro de toolame y no slaia como debe. Esto nos sera util ya qe si cambias de 48 Khz a 44.1 Khz con toolame, cambia tambien la duracion del audio, (supongo qe sera por aqello de qe la longitud de onda no cambia, yo solo tengo el bachiller  :Rolling Eyes:  )  Aunqe para DVD el standar es 48.000 hz (44.1 para VCD y SVCD )  ... otra variable mas para la saca segun formato   :Laughing:  .

Respecto a la pagina, muy buena, aunqe incompleta en lo qe a DVD respecta, A ver si lo encuentro y pego TODOS los estandares de DVD, pe 352*576 a 25 FPS en MPEG-2 forma parte del standar  :Wink:  .

Edito: Standard para DVD

Standard para SVCD

Standard VCD

El VCD es el mas restrictivo,aunqe el VBRno este contemplado se puede usar, ya e casi todos los reproductore lo leen, en SVCD aunq el standard contemple el audio variable, pocos DVD's lo soportan. 

Saludos

----------

## krawek

Sertinell serias tan amable de decirme como pasar un VCD a un avi o mpg? lo que necesito es que sea un solo archivo

----------

## erflako

Ya sospechaba yo que no era cosa de los pequeños hombrecitos verdes .

Así que tenemos el audio pcm .

Entonces , en tema de sonido , las cosas las veo así :

- sabemos codificar todo a mp2

- no sabemos codificar ogg

- el único que tiene sentido a ser ac3 es ac3 de entrada

¿ correcto ?

Sigamos :

creo que hay que hacer una comprobacion del codec de audio de la entrada y segun el codec dar valor a OUTPUT_A_AC3 . A ver si me explico - si tienes INPUT_A_CODEC mp3 , pcm 1 o 2 canales OUTPUT_A_AC3="no" , si tienes INPUT_A_CODEC ac3 o pcm de >2 canales  , OUTPUT_A_AC3 no se cambia . Un buen sitio es func_Adjust_var() . ¿ Que pasa ? Si el usuario pone opcion "-ac3" y no tiene ac3 en el avi , lo dejas a mp2 , si tiene ac3 , como ha puesto "-ac3" y nosotros no cambiamos OUTPUT_A_AC3 esta se quedará a "yes" . Y si el usuario no ha puesto "-ac3" ( es decir - no lo quiere ) se quedará a mp2 .

Y como codigo es mas o menos esto :

```

................................

# en las variables globales

OUTPUT_A_AC3="no" # por defecto no hacemos ac3

.......................................

............................................

func_Adjust_var(){

..............................................

case INPUT_A_CODEC in

   "ac3")

# nada - si se hace o no depende de lo que ha puesto como opcion

   ;;

   "mp3")

      OUTPUT_A_AC3="no"

# aunque se pida el ac3 no se va a hacer

   ;;

   "pcm")

      if[ INPUT_A_CANALES -le 2 ]; then

          OUTPUT_A_AC3="no"

# lo mismo que mp3

      else

# nada , lo mismo como si el codec fuese ac3

      fi

   ;;

   "ogg")

# no lo sabemos ( por ahora )

   ;;

esac

....................................................................

}

```

Por lo demás - cuando se codifica el audio , tambien se mira el INPUT_A_CODEC - si es pcm <= 2 canales - resampling , si es >2 canales - segun el flac AC3 - resampling o hacemos ac3 del pcm ( COMO ??? ) .

Y dijo Sertinell :

Esto se esta convirtiendo en algo serio ^^ 

¿ Lo dudabas ?

oCHARLIEo , me parece que la opcion "-info" no te hace mucho tilín , pero yo insistiría en ponerla . A veces solo quieres ver lo que hay , no codificar , así que ¿ por que no ponerla ? Te enteras de todos los datos del avi etc.

Otra cosilla - fijar OUTPUT_SIZE en 700 MB no me parece nada bien . Y si quiero hacer dvd con cuanta mas calidad ? Para (S)VCD es factible , pero para hacer DVD ( que es lo que a mi mas me interesa ) no vale . Nos limita a un fichero pequeñisimo y la calidad se nos irá a la ....

A ver si me pongo y edito el script . Luego lo subo .

P.D. Otra vez para oCHARLIEo - tienes anunciada tu pagina ( debajo de la firma ) - editala un poco y pon un link hacia el script . Asi todo quisqui lo tendra a mano . La informacion sobre tu maquina es interesante , pero poco util   :Cool: 

Edito :

A ver - 

```

function func_Multiplex() {

......................................

if [ $OUTPUT_A_AC3 = "no" ]; then

   mplex -f ${PLEX} -r 0 -v 1 -b ${MUXBUFSIZE} -V -p 1 -h -o "${FILE}.mpg" "${FILE}.mpv" "${FILE}.mpa"

  else

   mplex -f 9 -r 0 -v 1 -b 460 -V -p 1 -h -o "${FILE}.mpg" "${FILE}.mpv" "stream.dump"

   rm "stream.dump"

  fi

............................

```

¿ Por que al hacer ac3 b es 460 ( un valor fijo y al no hacerlo es variable - según el tipo de salida - vcd , svcd , dvd ?

¿ No debería de ser siempre "-b ${MUXBUFSIZE} ?

Y otra cosa , no se si es muy importante porque esto funciona y así - despues de la primera pasada no se borra el divx2pass.log . Antes Sertinell lo borraba al principio para que no se quedaran residuos , ahore creo que deberíamos de borrarlo despues del primer mencoder ( en el if ) .

----------

## oCHARLIEo

A ver, que hay mucho que comentar:

 *Quote:*   

> 
> 
> oCHARLIEo , me parece que la opcion "-info" no te hace mucho tilín , pero yo insistiría en ponerla . A veces solo quieres ver lo que hay , no codificar , así que ¿ por que no ponerla ? Te enteras de todos los datos del avi etc. 
> 
> 

 

Pues no es que no me haga mucho tilin... es que se me habia olvidado... en la nueva version que he colgado hoy ya esta contemplada esa opcion.

 *Quote:*   

> 
> 
> Otra cosilla - fijar OUTPUT_SIZE en 700 MB no me parece nada bien . Y si quiero hacer dvd con cuanta mas calidad ?
> 
> 

 

Pues efectivamente, era algo que ya tenia en mente... ^_^, tb he agregado una opcion para modificarlo...

 *Quote:*   

> 
> 
> P.D. Otra vez para oCHARLIEo - tienes anunciada tu pagina ( debajo de la firma ) - editala un poco y pon un link hacia el script . Asi todo quisqui lo tendra a mano . La informacion sobre tu maquina es interesante , pero poco util 
> 
> 

 

X-DDD De hecho yo en general soy bastante poco interesante.... esa pagina lleva asin como dos años, me falta tiempo... en fins ya esta cambiado

 *Quote:*   

> 
> 
> ¿ Por que al hacer ac3 b es 460 ( un valor fijo y al no hacerlo es variable - según el tipo de salida - vcd , svcd , dvd ? 
> 
> 

 

Si, de hecho b es 460 y f es 9. Esto es por que el sonido AC3 solo puede ir en un DVD y estas son las opciones por defecto de un DVD... de todas formas, si es verdad que tenemos que revisar todo el tema del audio en AC3. Tomo nota para mañana ^_^

 *Quote:*   

> 
> 
> Y otra cosa , no se si es muy importante porque esto funciona y así - despues de la primera pasada no se borra el divx2pass.log 
> 
> 

 

En mi script si que lo borra correctamente. Hago un rm "divx2pass.log" en la funcion func_Multiplex() pero sip, deberia ir despues del segundo mencoder... tomo nota.

 *Quote:*   

> 
> 
>    "ogg") 
> 
> # no lo sabemos ( por ahora ) 
> ...

 

Pues la verdad es que no lo he probado, pero deberia funcionar bien. Cogera el primer audio en caso de que tenga mas de uno, mas adelante deberiamos estudiar el tema para poder seleccionar cualquiera... lo transforma a MP2

En fin, en http://nexusvi.no-ip.org/images/dir2dvd.bash teneis la nueva version. Sertinell he estado mirando la doc y parece que BUFSIZE solo es un buffer temporal donde trabaja el mencoder, si hay memoria no deberia importarnos aumentar este valor... de hecho he tenido que aumentarla un poco por que me daba muchos buffers underflows y despues no multiplexaba bien... ahora funciona perfecto...

PD: gracias por los links

----------

## Sertinell

El audio ogg se codifica como si fuera mp3, se extrae a un wav y santas pascuas  :Very Happy: , para elegir pista de audio -aid <ID>  :Wink: 

El rm divx2pass.log debe borrarse despues del 2º mencoder, es ams , si lo borramos antes, mencoder da error al ejecutarse con vpass=2. Y si ejecutamos en el 2º mencoder con vpass=1 es como si no hicieramos 2ª pasada, solo hariamos una , y eso no es lo qe qeremos  :Wink: 

----------

## oCHARLIEo

Valeeeeeeeeee, ya tengo el tema de los FPS... esto me ha costado un huevo. El mencoder tiene muchas cositas por hay escondidas X-DD. El problema es que voy a necesitar mas espacio de disco... luego os cuento.

Quiero meter tb una opcion para convertir solo un fragmento del video del tipo --debug 20 y que coja solo 20 segundos de pelicula... para hacer pruebas y poder ver si queda bien antes de hacer convertir toda la peli

Tambien tengo por aki un OGG, hago pruebas a ver si funciona y os cuento...

----------

## erflako

He visto unas cosas y las voy comentando : 

1. En Variables Globales tenemos :

OUTPUT_A_SAMPLERATE=44100	# Samplerate del sonido en mp2, normalmente 44100, pero si el destino es un dvd seria deseable 48000

 Pero si por defecto hacemos dvd ¿ no ? Hay que ponerlo a 48000 .

2. En el mismo sitio :

OUTPUT_SIZE=700		# Tamaño de cada archivo en megas

Y lo mismo - si hacemos dvd , hay que ponerlo a 4,2 GB . En el case/esac de la comprobación de los parametros se le asignará valor 700 en caso de vcd o svcd .

Y , refleccionando un poco - si el Estimado Señor Usuario quiere hacer (s)vcd pero de un avi de bastante calidad - ¿ no deberíamos de dejarle elegir en hacer dos ( o mas ) cd's ? Tengo unas cuantas pelis en 2 cd's y , aun siendo vcd , se ven bastante bien .

3. En mi version tenia una opcion de aspecto - 4:3 o panoramico . Segun se desea . Por defecto 4:3 - una tele normal , pero si alguien quiere hacer un formato panoramico ...

4. Deberiamos de comprobar VPASS . Si el usuario pone "-p 14" que pasa ???

Llegaremos a "if [ VPASS = 2 ]" y como no es 2 hará una pasada . Quiero decir que es un poco engañoso lo de las pasadas .

5. Otra vez con el sonido ( no veas como estoy dando el coñazo) :

lo que dije ayer - el usuario puede intentar ac3 sin tenerlo en el avi con el parametro "--ac3" . Lo forzará y , en teoría , el script hará :

    mplayer "$FILE_INPUT" -dumpaudio

y no debería de pasar nada , pero ¿ y si pasa ? Si el mplayer peta ? O el mplex ? O vete a saber que ?

Si hacemos una comprobación de pcm > 2 canales , ac3 o a52 de entrada y no variamos el flag y por otro lado obligamos el flag a "no" si no hay posibilidad ( en la entrada ) de hacer ac3 , creo que evitaríamos confisiones .

6.Y otra de sonido . Otra reflección mia a lo largo de la jornada laboral :

¿ Que pasa si tenemos " ficheroConAC3.avi " y hacemos esto :

     # avi2dvd -of vcd --ac3 /ruta/al/ficheroConAC3.avi

???

La opcion "-of vcd" prohibe ac3 , pero "--ac3" la sobreescribe y tendremos vcd con ac3 . ¿ Se reproducirá ? ¿ No se reproducirá ?

Yo pondría un flag AC3_PRIHIBIDO , que por defecto estará a "off" ( hacemos dvd , esta permitido hacer ac3 ) . En el case/esac en las opciones vcd/svcd ponemos AC3_PROHIBIDO="on" .

Y ahora ¿ cuando se hace ac3 ?

```

if [ AC3_PROHIBIDO="off" & OUTPUT_A_AC3="yes" & ( INPUT_A_CODEC="ac3" | INPUT_A_CODEC="a52" | (INPUT_A_CODEC="pcm" & INPUT_A_CANALES -gt 2 )) ] ; then

     SI se hace ac3

else

    NO se hace ac3

fi

```

Tecnicamente significa :

- no está prohibido - se hace dvd y no svcd o vcd

- queremos hacerlo ( porque podriamos y no querer ac3 )

- lo tenemos en la entrada ( en el avi )

7. ¿ No os gusta la idea de comprobar el espacio de disco libre antes de codificar cada fichero ? Me parece prudente .

Me parezco al cascarrabias del barrio , pero si vemos los bugs antes de que los vea el usuario , hasta nos pareceremos a los profesionales . En fin , estoy intentando adelantarme a un usuario torpe y evitar algun fallito . A nadie se le ocurre hacer vcd con ac3 pero se podria dar el caso ¿ no ?

Comentad vuestras opiniones .

oCHARLIEo , espero que no te sienta mal de que no escribo casi nada de codigo , pero los fps eran cosa tuya y no nos comentaste como se iba a hacer  y , otra cosilla , para subir algo en el servidor tengo que arrancar un cliente ftp etc. Por cierto - lo de No-IP lo voy a mirar . A lo mejor me apunto .

P.D. Pensándolo mejor - lo dicho en el punto 6 soluciona tambien lo del punto 5 . Si . Con una comprobación ( bastante larga ) y dos lineas en case/esac mas otra para la variable en Variables Globales nos hemos quitado las posibles complicaciones .

Ooops, edito : 

SVCD tambien puede tener 5+1 . Es decir - flag AC3_PROHIBIDO solo en vcd .

----------

## Sertinell

 *Quote:*   

> SVCD tambien puede tener 5+1 . Es decir - flag AC3_PROHIBIDO solo en vcd .

 SVCD NO puede tener AC3, solo mpeg-Layer-II (mp2), ese 5.1, no es 5.1 real, es dolbyprologic, el cual se  basa en 2 canales de audio Totalmente diferenciados, qe se complementan mutuamente y qe reproducidos por un decodificador adecuado, es un 5.1, pero no deja de ser un mp2 en stereo, muy distinto del AC3, a ver si busco un codificador en dolbysurround en linux  :Wink: 

Respecto al resto de opciones, son muy utiles, quizas yo jamas pense en el usuario final, en los inicios el script era para mi uso, y a mi esas comprobaciones pues no me hacain falta, tras cierto tiempo haciendo las cosas a dedo ... No las necesitaba, pero tienes razon, para un usuario novel, son muy utiles.

Edito: He estado buscando, se puede hacer tambien audio 5.1 para un SVCD pero en MPEG-2 (mp2) codificando con una matriz dolby sourround, el problema es qe  no encuentro un codificador para linux

Saludos !!

P.D. Charlie, a ver ese codigo ....  :Wink: 

----------

## Sertinell

 *Quote:*   

> Paso 3 ( Audio )
> 
> Usaremos para este paso el programa Headac3he.
> 
> Si vamos a hacer KDVDs, podemos dejar el audio en AC3 y, por tanto, saltaremos este paso.
> ...

 Esto forma parte de una Guia para windows, aqui dejo otro enlace, headac3he es soft libre, creo, al igual qe beswet, pero ninguno tiene version linux  :Sad: 

Edito: no son libres, son simplemente gratuitos... yo juraria haber visto elsource de besweet al menos  :Sad: 

Edito2: Besweet si qe es GPL, aqui esta el source de las DLL's qe usa

Edito3: Cito las man de mplayer

 *Quote:*   

> -channels <número>
> 
> 	Cambia el número de canales reproducibles, por de- fecto '2' si no se especifica. Si el número de canales de salida es mayor que el número de canales de entrada se insertan canales vacíos (a menos que se mezcle de mono a estéreo, entonces el canal mono es repetido en ambos canales de salida). Si el número de canales de salida es menor que el número de canales de entrada, el resultado depende del de- codificador de audio (-afm). MPlayer pregunta al decodificador para decodificar el audio en tantos canales como se haya especificado. Ahora se coloca el decodificador hasta rellenar los requisitos. Si la salida del decodificador tiene más canales de los pedidos, los canales excedentes son truncados. Esto es normalmente importante solo cuando se re- producen videos con audio AC3 (como DVDs). En este caso liba52 decodifica por defecto y mezcla correc- tamente el audio en el número de canales requeri- dos.
> 
> NOTA: Esta opción es agradecida por los codecs (AC3 solo) filtros (surround) y controladores ao (al menos OSS).
> ...

 Si se hace un -channels 4 al extraer el audio sobre un archivo AC3 5.1 se supone qe nos dara un PCM stereo en surround no ?

Edito4: DEFINITIVAMENTE SOY GILIPOYAS !!!

cito las man de mplayer: *Quote:*   

> -af <plugin1[=opciones],plugin2,...>
> 
> surround[=d]
> 
> 	Decodificador para el surround de matriz de codificación, funciona en cualesquiera archivos de 2 canales.
> ...

 

Tanto buscar y lo tenia delante de mis narices  :Smile: . Para pasar ac3 a surround(lo mas parecido a 5.1compatible con SVCD) seria,

```
mplayer -nojoystick -nolirc -quiet -vc dummy -vo null -waveheader -af resample=$OUTPUT_A_SAMPLERATE:0:0,surround -ao pcm -aofile "$FILE_OUTPUT.wav" "$FILE_INPUT" 
```

Y listo, ya tenemos el audio en un wav con surround  :Very Happy: , ahora a pasarlo a mp2 con toolame, en dual channel, como siempre  :Smile: .

Ale ya teneis trabajito  :Razz: 

Siento no ponerme yo ocn todo el codigo, pero esqe ultimamente bastante codigo tengo con las practicas en ensamblador

Saludos !!!

----------

## oCHARLIEo

Perdonad que no os escriba nada antes pero es que hoy he tenido mucho jaleo, no tengo funcional todavia la nueva version... he estado haciendo muchas pruebas.

La verdad es que el mencoder/mplayer me tienen un poco quemao, hace lo que le sale de los mismisimos... en fin, os cuento. La opcion -ofps si la utilizas con -ovc lavc lo que hace es cambiar los fps en la cabecera del MPEG y a freir monas con lo que el video final no dura el mismo tiempo (se reproduce mas despacio o mas deprisa que el original) perooooooo (esto es curiosisimo) si lo usas con -ovc copy -oac copy funciona como deberia ser, es decir, agrega frames duplicados para mantener el el video resultante la duracion pero modificando los fps...

Total, que haciendo un:

```

mencoder $INTERVAL -oac copy -ovc copy -ofps $OUTPUT_V_FPS $FILE_INPUT -o $FILE_OUTPUT

```

se corrigen los fps sin incurrir en desfase A/V alguno ^_^ PROBLEMON del gordo: Necesitas mucho mas sitio ya que copias otra vez el fichero original...

Por otro lado he agregado una opcion --interval [pto_inicio]:frames que usa las opciones -ss y -frames de mplayer/mencoder respectivamente y he podido observar que genera unos bonitos errores del tipo:

```

MPlayer ha sido interrumpido por señal 11 en el módulo: seek

- MPlayer se detuvo por mal uso de CPU/FPU/RAM.

  Recompila MPlayer con la opción --enable-debug y hace un backtrace en

  'gdb' y un desensamblado. Para más detalles, vea

  DOCS/HTML/es/bugreports_what.html#bugreports_crash

- MPlayer se detuvo. Esto no debería haber pasado.

  Puede ser un defecto en el código de MPlayer _o_ en sus controladores

  _o_ en su versión de gcc. Si piensa que es la culpa de MPlayer, por

  favor lea DOCS/HTML/es/bugreports.html y siga las instrucciones que allí

  se encuentran. No podemos y no lo ayudaremos a menos que nos provea esa

  información cuando este reportando algún posible defecto.

```

Cuando le viene en gana, una cosa maravillosa tu...

En fin, que os pongo aki todo esto por que llevo toda la tarde liado con el P*%! mencoder sin progresar demasiado y necesitaba desahogarme... estas cosas con transcode no me pasaban X-DD

Sertinell, lo del audio %.1 para los SVCD ha estado mu bien... se estudiara...

erflako, me apunto lo de la relacion de aspecto que me ha gustado... las variables por defecto las cambiare en la proxima version. Lo del tema del sonido AC3 lo tengo pendiente... hoy no he podido hecharle un vistazo, pero lo mas probable es que retire la opcion --ac3 y la cambie por otra que sea --no_ac3 ^_^ es menos problematico porque el caso del sonido MP2 es mas compatible...

 *Quote:*   

> 
> 
> oCHARLIEo , espero que no te sienta mal de que no escribo casi nada de codigo , pero los fps eran cosa tuya y no nos comentaste como se iba a hacer
> 
> 

 

No os comente como hacerlo por que ni yo mismo lo sabia... en transcode existe un plugin que lo hace, pero en mplayer... no te puedes hacer una idea de la de cosas que he probado... se me ha pasado por la cabeza hasta programarme un plugin para mplayer ;-P imagina!!

No me molesta que no escribais codigo, cada uno colabora cuando puede y yo ultimamente tengo tiempo libre en el trabajo... Hay que aprobecharlo!!! que no siempre es asi...

Como podreis suponer hoy no subo nueva version... a ver si para mañana tengo ya una funcional...

----------

## Sertinell

 *Quote:*   

> 
> 
> La verdad es que el mencoder/mplayer me tienen un poco quemao, hace lo que le sale de los mismisimos... en fin, os cuento. La opcion -ofps si la utilizas con -ovc lavc lo que hace es cambiar los fps en la cabecera del MPEG y a freir monas con lo que el video final no dura el mismo tiempo (se reproduce mas despacio o mas deprisa que el original) perooooooo (esto es curiosisimo) si lo usas con -ovc copy -oac copy funciona como deberia ser, es decir, agrega frames duplicados para mantener el el video resultante la duracion pero modificando los fps...
> 
> Total, que haciendo un:
> ...

 

Problema ?¿ metemos una tuberia y listo, ya no tenemos qe escribir el archivo de nuevo por completo ^^

El audio lo sigo mirando, por qe mplayer creo qe solo DECDIFICA surround, no codifica  :Sad: 

----------

## erflako

YA LO TENGO .

El sonido ya esta . No es con el if ese tan largo que puse , tuve que hacerle unos apaños , pero solo con un flag añadido - finciona .

Charlie , deja el ac3 como esta , como mucho cambialo a "-ac3" . Hasta ahora lo teniamos "--ac3" .

Mañano lo subo . Se entiende ¿ verdad ?

----------

## Sertinell

He estado dando por saco en el canal de mplayer/mencoder para lo del surround en mp2, y bueno esto es lo qe he obtenido: *Quote:*   

> Sertinell>A dolby surround (dolby prologic 2 chanels) in mp2 is possible, I used  it in windoze, but i don't know how to create it under linux
> 
> <igla> acodec=mp2:abitrate=320
> 
> <Sertinell> Igla >acodec=mp2:abitrate=320, This only make a mp2 with a CBR of 320 Bits (very high for me), but ,generate this a dolby prologic audio(surround in 2 channels)?.
> ...

 

si es necesario unbitrate de 320, nose yo si compensara ocupar tanto tamaño para el audio en un SVCD, quizas si lohacemos para 2 SVCD... 

Se demuestra mi mal ingles, pero creo qe he sacado algo en claro, aunqe no estoy muy seguro, por ningun sitio de la documentacion veo qe las libvacodec generen dolby prologic en mp2 cuando el bitrate es >=320, si teneis el equipo adecuado podeis probar a ver si funciona. Yo solo tengo 2 altavoces estereo.

Saludos

----------

## erflako

Lo he subido . Esta noche sigo .

----------

## erflako

Charlie , nos tienes a dos velas .

Queremos ver código .

No se si te entiendo lo de "-no_ac3" . A ver - esta opcion será factible solo para dvd ( igual que la actual "--ac3" ) , porque vcd es mp2 y svcd tambien , aunque estamos en el surround ... Bueno , si quereis que por defecto el dvd coja ac3 ( si es posible segun el codec de entrada ) y que le prohibamos el ac3 en dvd con una opción - por mi ningun problema . Es practicamente lo mismo . Quedará mas o menos así :

- dvd -> por defecto ac3 si lo hay y si no lo hay - mp2 . Aquí vale "-no_ac3" que lo deja siempre a mp2 .

- svcd -> por defecto mp2 surround si lo hay y si no mp2 . "-no_ac3" obliga a mp2 .

- vcd -> mp2 por c.....s

Si os parece - lo hacemos .

No se si he pillado bien la intencion de Charlie . 

Sertinell , con un bitrate de 320 ¿ nos comemos mucho disco ? Porque si no nos queda CD - pa' que lo vamos a hacer .

Comentarios , chicos .

Sigo pensando .

Edito :

Lo del PROBLEMON GORDO - ¿ y si borramos el avi original con lo fps "malos" ? Lo duplicamos , borramos , quedamos en la misma y a codificar . O le pregunatmos en forma interactiva que quiere hacer con los fps tan raros en el principio y segun te dice el usuario - sigues con 25 fps o con los originales . Yo que se . Lo de hacer tuberia - a veces no sale bien . Ahora no puedo pero mañana lo intentaré .

----------

## oCHARLIEo

X-DDD ya se que os tengo a la espera... pero es que me hace cosas muy raras y me jode no saber por que... y ando aqui haciendo pruebas desesperado.

He averiguado varias cositas:

En primer lugar, he estado haciendo pruebas con:

```

mencoder -of mpeg -ovc frameno -oac lavc -lavcopts acodec=mp2:abitrate=$OUTPUT_A_BITRATE -o "${FILE_OUTPUT}.mpa" "$FILE_INPUT"

```

y el codificador MP2 de lavc es una KaKa de vaca ^_^, normal por que aun esta en desarrollo... la calidad del sonido deja mucho que desear.

Ya he averiguado por que la opcion -ofps no nos convierte los fps del video... necesita un flujo de audio para poder sincronizar y nosotros le tenemos puesta la opcion -nosound, de forma que me gusta mas la opcion de pasar el flujo de audio MP2 al mencoder a la hora de comprimir para que lo saque ya multiplexado con la opcion -oac copy, me explico:

```

mencoder -of mpeg -ovc lavc -oac copy -audiofile ${FILE_OUTPUT}.mpa -ofps $OUTPUT_V_FPS -lavcopts vcodec...etc

```

de esta forma pasamos el audio ya convertido por el toolame y mencoder puede sincronizar A/V mientras transforma el video y multiplexa ya todo en un fichero MPEG. Por supuesto nos ahorramos el mplex... y duplicar el fichero de origen...

Lo del sonido AC3 lo tengo aparcado de momento erflako, pero lo que he visto en tu script me ha gustado... cuando solucione esto hacemos un remix

Un saludo

Editado: He subido una pequeña modificacion de la anterior version donde ya se incluye la opcion de --interval para poder hacer una preview... lo siento erflako no he tenido tiempo de meter lo del AC3. De hecho lo voy a dejar por hoy porque estoy que me tiro de los pelos con el mencoder... o yo le pido cosas muy extrañas o el tiene un comportamiento muy irregular...

----------

## oCHARLIEo

Correccion, la forma de hacerlo que os contaba antes no nos vale... falla mas que una escopeta de feria. Es una maravilla de los misterios sin resolver... 

  - hay veces que funicona perfecto y es una gozada.... 

  - otras le da por decir que no reconoce el flujo de audio y que el video de salida saldra sin sonido, pero lo curioso es que ese mismo flujo de audio lo reproduces con mplayer... y, joder, si funciona perfecto!!!

  - Y otras veces, coje y te suelta una maravillosa Violacion de Segmento... maravilloso oiga

Estoy empezando a pensar que mencoder esta muy bien para tratar avis pero siquieres un mpeg estoy viendo que no va ha ser la mejor opcion... asique estaba pensando en eso de camino al trabajo y me he dicho... pos vamos a hacer unas pruebecillas y he sacado unas cifras de nuestro script con mencoder y de otro que tengo yo por aki con transcode. 

He hecho dos pruebas con dos videos distintos uno de 10seg (el que nos paso erflako) y otro de 46 segundos. El video final en todos los casos ha sido un MPEG2 720x576@25fps con un bitrate de 8000 el audio en todos los casos MP2 44100kHz con un bitrate de 112

```

Video 10 seg y 828,2 Kb

############################################

trans 1 paso      30,45 seg     942 Kb

trans 2 pasos     59 seg        942 Kb

menc 1 paso       15,13 seg     4,4 Mg

menc 2 pasos      30,01 seg     4,5 Mg

#############################################

Video 46 seg y 7,5 Mg

#############################################

trans 1 paso      2 min 33 seg     20,7 Mg

trans 2 pasos     4 min 53 seg     11,0 Mg

menc 1 paso       1 min 19 seg     42,8 Mg

menc 2 pasos      2 min 21 seg     23,3 Mg

#############################################

```

Tarda como el doble de tiempo el transcode que el mencoder pero ¿habeis visto los tamaños? digo yo que si todos los he comprimido con un bitrate de 8000 habra diferencias en tamaño aunque deberian dar tamaños similares.... pero esque estamos hablando de la mitad de espacio...

En cuanto al tiempo q tarda el transcode, yo no me he puesto ha optimizarlo, la verdad... es posible que se pueda reducir un poco el tiempo, pero tambien es posible que no podamos reducirlo mucho...

¿Que opinais? ¿merece la pena estudiar el tema del transcode?

----------

## Sertinell

 *Quote:*   

> 
> 
> Tarda como el doble de tiempo el transcode que el mencoder pero ¿habeis visto los tamaños? digo yo que si todos los he comprimido con un bitrate de 8000 habra diferencias en tamaño aunque deberian dar tamaños similares.... pero esque estamos hablando de la mitad de espacio... 

 

A un bitrate fijo de 8000 el video de 10 seg debe qedar en bastante mas grande qe esos 942 Ks, segun mis cuentas.

Charlie, los samples debe realizarlos de forma qe qeden en el mismo tamaño, para qe sea comparable, creo qe lo qe deberiamos comparar es la calidad en un mismo tamaño, mas qe su velocidad(qe si la calidad no es muxa dirferencia y tarda la mitad ... ). Con mencoder elegir el tamaño final del archivo es sencillo, y asi lo hace el script( a mi me da los tamaños clavados a como yo los elijo), yo nunca he usado transcode, pero supongo qe tendra una manera de codificar con AVB y utilizando 2 pasadas.

Eso es lo qe deberias comparar  :Wink: 

Tengo por aqui un video, bastante jodido, qe es el qe utilizo para mis samples, se trata de una secuencia de matrix, la lucha final de neo con el agente ese, con la lluvia y todo, se necesita un bitrate MUY alto pa qe salga como debe. Creo qe es elvideo idoneopara hacer pruebas  :Wink: . Postea la linea de comandos qe usas en transcode, para generar un archivo de un tamaño concreto, y me lio yo tambien ha hacer pruebas a ver cual de los 2 va mejor  :Smile: .

Lo de los FPS creo qe esta MUY verde aun en mencoder, lo qe podriamos estudiar es a qe si el usuario elije cambiar de FPS se use transcode, y si elije no cambiarlos tire de mencoder, total ya tenemos casi todo para mencoder echo...

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> A un bitrate fijo de 8000 el video de 10 seg debe qedar en bastante mas grande qe esos 942 Ks, segun mis cuentas. 
> 
> 

 

Tu te has quedado como yo X-DD pero te juro que ocupa eso, tiene 8000 kb y la calidad es igual a la que te genera mencoder... esta tarde te cuelgo el mpg para que lo veas por ti mismo ^_^

Ten en cuenta de todas formas que es el video que nos paso el erflako... que casi todo es negro y que el video MPEG es con bitrate variable... lo raro es que un video que es casi todo negro ocupe 4 megas!!! mas de 4 veces el tamaño original.... (y mas de 5)

 *Quote:*   

> 
> 
> Charlie, los samples debe realizarlos de forma qe qeden en el mismo tamaño, para qe sea comparable, creo qe lo qe deberiamos comparar es la calidad en un mismo tamaño, mas qe su velocidad(qe si la calidad no es muxa dirferencia y tarda la mitad ... )
> 
> 

 

Yo no creo que dos ficheros tengan que tener el mismo tamaño para ser comparables... porque modificando opciones de codificacion puedes variar mucho el tamaño del fichero pero no tanto la calidad (para el mismo bitrate). Lo que te mide la calidad de un video es su bitrate... y yo he codificado los dos videos con el mismo bitrate.

En el caso del video de 46 segundos con transcode 2 pasadas y bitrate 8000 me queda en 11 megas, lo mismo con mencoder se que queda en 23,3 megas. 

Si dices que para compararlos tienen que tener el mismo tamaño entonces ajusto el script mencoder para que se me quede el video en 11 megas, y me dice que el bitrate debe ser de 1846... Con una resolucion de 720x576 y con un bitrate de 1850 te aseguro que la calidad no es ni mucho menos igual que con un bitrate de 8000...

Si quieres mandame el sample ese que tienes a nexusARROBAgmail.com o cuelgalo y me lo bajo. Hago las pruebas con el y las publico por aqui ¿os parece?

Con transcode utilizo mpeg2enc para el video y mp2enc para el audio, tal vez la diferencia de tiempo este en que mpeg2enc sea bastante mas lento...

Los comandos que he utilizado para el segundo video han sido:

```

transcode -R1,stats.log -V -i /home/Avi_DVD/007_corto.avi --export_prof dvd-pal -x mplayer  -y mpeg2enc,null -F 8 --video_max_bitrate 8000  -o /dev/null

transcode -R2,stats.log -V -i /home/Avi_DVD/007_corto.avi --export_prof dvd-pal -x mplayer  -y mpeg2enc,mp2enc -F 8 --video_max_bitrate 8000  -E 44100 -b 112 -o /home/Avi_DVD/007_corto

```

A ver si tengo un hueco y esta noche te cuelgo los mpegs para que veas la calidad...

EDITO:

Cuando lanzas transcode con toolame para transformar el audio el lanza el comando:

```

sox -w -s -r 32000 -c 2 -t raw - -r 44100 -t wav - polyphase 2>/dev/null | toolame -s 44.100 -b 112 -m j - "007_corto.mp2" 2>/dev/null

```

----------

## Prodater64

@OT

Hola, como ven soy nuevo en el foro, y si bien no utilizo Linux sino WindowsXP como sistema operativo, conozco Mencoder bastante en profundidad, y de vez en cuando me daré una vuelta para ver si puedo aclarar algunas ideas.

Sertinell es un amigo y puede dar fe de mis palabras.

Encantado de conocerlos y gracias por su atención.

end OT

----------

## Prodater64

 *oCHARLIEo wrote:*   

> 
> 
> Yo no creo que dos ficheros tengan que tener el mismo tamaño para ser comparables... porque modificando opciones de codificacion puedes variar mucho el tamaño del fichero pero no tanto la calidad (para el mismo bitrate). Lo que te mide la calidad de un video es su bitrate... y yo he codificado los dos videos con el mismo bitrate.
> 
> En el caso del video de 46 segundos con transcode 2 pasadas y bitrate 8000 me queda en 11 megas, lo mismo con mencoder se que queda en 23,3 megas. 
> ...

 

Tienes que tener presente que cuando codificas, lo haces para un determinado tamaño, digamos 800 Mb.

Por eso es necesario poder comparar 2 videos con el mismo tamaño final, para ver cuál tiene más calidad. Esta calidad deberá medirse subjetivamente, viendo el resultado, y objetivamente, por ejemplo en W32 tenemos BitrateViewer.

Es evidente que cuando tu le dices al transcode que te codifique a 8000 kbps, el no hace eso realmente, sino que toma ese valor como máximo posible (esto lo digo sin conocer al transcode, simplemente desde la lógica). Ya que si fuera esa la tasa de bits promedio, tu obtendrías el tamaño final aproximado haciendo 8000 x tiempo en segundos, y estoy casi seguro que esa multiplicación superaría ampliamente el valor que has obtenido. El bitrate promedio que te dá el transcode debe ser mucho menor que el que te da el mencoder para tamaños tan disímiles.

Por supuesto que hay filtros que mejoran la compresibilidad del video, pero seguramente la diferencia no puede ser tanta.

En resumen lo que habría que hacer es codificar para obtener tamaños similares del archivo final, y luego analizar subjetiva y objetivamente los archivos resultantes.

Todo esto en mi humilde opinión.

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Tienes que tener presente que cuando codificas, lo haces para un determinado tamaño, digamos 800 Mb. 
> 
> Por eso es necesario poder comparar 2 videos con el mismo tamaño final
> ...

 

Efectivamente, pero los calculos de tamaño que realizas te devuelven un valor... y este valor es el bitrate que tu le pasas a mencoder para codificar... vale, pues yo les doy el mismo bitrate a los dos y el comportamiento no es el mismo.

Obviamente para este video http://nexusvi.no-ip.org/images/ha.avi que es casi todo con un fondo negro y con una imagen que se mueve a una velocidad siempre constante y de forma muy lenta... el valor de bitrate necesario para que la calidad sea buena es muy pequeño...

Por supuesto yo a transcode le doy un valor maximo de bitrate y hago dos pasadas para que el haga sus estadisticas y me ajuste el valor de bitrate de forma adecuada en la pelicula... pero con mencoder tb hago esto en teoria, hago dos pasadas y se deberia comportar de forma similar...

Con el script me lanza estos comandos

```

mencoder -of rawvideo -sws 9 -noskip -nosound -noaspect -noautoexpand -vf pp=hb:100:100/vb,scale=704:472:1:0:9,hqdn3d=10:12:8,noise=3th,expand=720:576:-1:-1:0 -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=0.01:vpass=1:vrc_buf_size=3000

:vbitrate=8000:vrc_maxrate=8000:aspect=1.3333:keyint=15: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 -fps 25.000 -ofps 25.000 "ha.avi" -o "/dev/null"

mencoder -of rawvideo -sws 9 -noskip -nosound -noaspect -noautoexpand -vf pp=hb:100:100/vb,scale=704:472:1:0:9,hqdn3d=10:12:8,noise=3th,expand=720:576:-1:-1:0 -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=0.01:vpass=2:vrc_buf_size=3000

:vbitrate=8000:vrc_maxrate=8000:aspect=1.3333:keyint=15: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 -fps 25.000 -ofps 25.000 "ha.avi" -o "ha.mpv"

```

y el resultado es este fichero http://nexusvi.no-ip.org/images/ha_mencoder.mpg de 4.5 Megas (el original es de 840 Kb)

y con  transcode lanzo estos comandos

```

transcode -R1,stats.log -V -i "ha.avi" --export_prof dvd-pal -x mplayer -y mpeg2enc,null -F 8 --video_max_bitrate 8000  -o /dev/null

transcode -R2,stats.log -V -i "ha.avi" --export_prof dvd-pal -x mplayer -y mpeg2enc,mp2enc -F 8 --video_max_bitrate 8000  -E 44100 -b 112 -o "ha"

```

y me sale el fichero http://nexusvi.no-ip.org/images/ha_transcode.mpg que suma 950 Kb...

Una de dos, o yo no estoy utilizando bien el mencoder o el no esta haciendo bien las estadisticas y por tanto usa un valor muy alto de bitrate a lo largo de toda la pelicula... para que me de un tamaño similar le tengo que decir explicitamente que quiero un bitrate maximo de 707, que luego hara el sus calculos internos...

http://nexusvi.no-ip.org/images/ha_menc_707.mpg

Si te fijas, los tres ficheros tienen una "calidad subjetiva" similar pero mencoder no es capaz de detectar que, aunque el bitrate que yo le pase sea MUY grande, tiene que utilizar un valor mucho menor y por lo que parece transcode si lo hace... 

en resumen, que aunque yo pueda tener un fichero de 800 megas y se vea bien, es posible que utilizando transcode ese fichero sea menor y se siga viendo bien...

Un saludo, y muchas gracias Prodater64, te agradezco cualquier ayuda porque ya me estoy volviendo loco con el mencoder... X-DD

----------

## Prodater64

 *oCHARLIEo wrote:*   

> 
> 
> Con el script me lanza estos comandos
> 
> ```
> ...

 

Te voy a indicar lo que mi experiencia me dice:

1 - Has posteado 2 veces el paso 1, no tiene importancia, simplemente es para no confundir a quienes no lo sepan.

2 - -sws 9 es mejor utilizarlo para fuentes DVDs y -sws 2 para AVIs.

3 - -vrc_eq=tex es una opción adecuada para codificación tipo CQ, para VBR a bitrates promedio inferiores a 1800 sería mejor -vrc_eq=tex^0.5 y superiores a 1800 -vrc_eq=tex^0.75 ya que dan una mejor distribución del bitrate en 2 pasadas.

4 - -lmin también tiene que ir en relación al bitrate promedio, y cuanto más bajo, más grande el archivo final

```
if %avgBitrate% GTR 800 set lmin=0.5

if %avgBitrate% GTR 1000 set lmin=0.4

if %avgBitrate% GTR 1800 set lmin=0.3

if %avgBitrate% GTR 3000 set lmin=0.1

if %avgBitrate% GTR 4000 set lmin=0.01
```

5 - -vrc_buf_size=3000 Este valor para mpeg2 debe ser 1835 para obtener un valor de vbv=224, acorde al estándar DVD (se admite también para SVCD)

6 - Los valores de intra e inter matrix, son los de KVCD? Estos son los que dan mayor compresibilidad. Si son los VCD estándar habría que cambiarlos.

7 - Este es el punto de tu pregunta original vbitrate=8000 Este es el valor de bitrate promedio que le estás pidiendo, y vrc_maxrate=8000 es el techo que le pones al encoder, para decirle que puede subir hasta ahí para evitar una excesiva quantización y que la peli se pixele. No le debes dar un valor de bitrate promedio igual al techo solicitado. 8000 es un valor adecuado, pero vbitrate debe obtenerse de la cuenta:

```
set /A audio=(%bitrateAudio%/8)*(%duracion%*60)

set /A video=(%tMedia%*%discos%)-%overhead%-%audio%

set /A avgBitrate=((%video%/(%duracion%*60))+%z%)*8
```

Creo que se entiende bien.

Haz lo siguiente, codifica un video con Transcode, haz luego los cálculos del bitrate promedio requerido según el cálculo previo (utiliza el valor para video y descarta overhead y audio) a ver si mencoder te da un archivo de tamaño similar.

Después analizaré los mpgs.Last edited by Prodater64 on Thu Oct 28, 2004 10:37 pm; edited 1 time in total

----------

## erflako

Pues , si que habeis escrito cosas hoy , si .

Me parece que mencoder es mas "chapucero" y transcode si es como mas serio , pero si nos agarramos a transcode mandamas al carajo la idea original de Sertinell de usar solo mplayer . Es que queremos hacer todo DPM con un reproductor multimedia que , segun me dijo Sertinell ( y lo comprobé ) no reproduce mp2 . En fin - donde no hay - no se puede sacar .

Pero lo peor que veo es que nos vamos de tamaño . Llevo todo el dia pensandolo - si tenemos un fichero de 700MB , para los FICHERO.mpa y FICHERO.mpv necesitamos otros 700MB y para el FICHERO.mpg - pues vete tu a saber ( 700MB , por decir algo ) . Al final recuperamos los 700MB de los ficheros temporales , pero en una particion pequeña puede que se te cotrte la conversion a medias . Vaya putada de esperar 3 horas pa'na' . Y si hacemos dvd - ya ni hablar . Nos podemos ir a 5GB para hacer una peli . Ya me gustaría tener un disco de 120 en una sola particion para datos , pero no se da el caso .

Es cosa aparte de lo que habeis hablado todo el dia , pero me parece que tenemos que meter dos opciones mas :

 "-temp /ruta/completa/al/directorio/existente" y ahí creamos /temp para los *.mpv y *.mpa que luego se borran . Eso por si no tienes espacio en la particion .

y la otra opción :

 "-output  /ruta/y/nombre/de/fichero.mpg" - por si quieres escribir el fichero final en otro sitio que no sea el de origen y de paso cambiar el nombre del fichero ( por si no te gusta los que ponen en aMule ) .

Charlie , los tamaños de ficheros ( por defecto 4200 ) en vcd ( y si me apuras en svcd tambien ) no servirian . ¿ Quen quiere hacer un vcd de 4GB ? Tienes la opcion "-os" , pero ¿ no será mejor , por lo menos para VCD ponerlo a 700M ? Porque si no :

   #avi2dvd -os 700 -of vcd -p 1 /ruta/file.avi

ya se parece a mencoder en el script .

Y si le pones "-temp /ruta/al/otro/sitio/para/temp -output /ruta/a/.../fichero.mpg" uno ya se aburre de escribir .

Bueno , lo de "-temp" y "-output" lo tenemos que estudiar . Se me ocurrió esta mañana y llevo todo el dia dandole vueltas .

Otra pregunta tonta . Todavia no he hecho ninguna peli entera con el script   :Embarassed:  , entonces ¿ el tamaño del fichero final es el valor de OUTPUT_SIZE ? ¿ Siempre ? Si esto es así en la funcion de comprobacion del espacio libre que tengo puesta no hago bien las cosas . Aclaradmelo , por favor .

Y , volviendo a lo de la velocidad y tamaño - el tandem transcode/mplayer es lentisimo . Y Charlie lo sabe mejor que nadie . Se va a las 10 horas facil . Cuando haces vcd sabes que mucha calidad no vas a tener . Si haces dvd - el tamaño no importa mucho ( tienes 4,3 GB ) . Lo malo es el svcd - es medianamente  bueno , pero no te quieres ir a 4,3GB porque entonces harias dvd y , claro , tampoco quieres un cd porque te quedará cutre .

Hay que estudiar un poco mas a fondo el mencoder a ver si le podemos sacar mas jugo .

Otra tonteria ¿ como puedo imprimir una man page ? Si hago

   #man mplayer>/file 

luego se ven cosas raras . Quiero imprimirlo para poder leer en papel .

----------

## Prodater64

@erflako

Tienes el manual en versión texto:

http://www.mplayerhq.hu/DOCS/man/es/mplayer.1.txt

y en un formato roff que creo que es para Linux pero no lo se bien:

http://www.mplayerhq.hu/DOCS/man/es/mplayer.1

----------

## Prodater64

Analizados los mpg con BitrateViewer:

ha_transcode.mpg:

http://fotos.ya.com/Prodater64/ph10990037032001.gif

Bitrate Average: 428

Q. level Average: 6

Nominal Bitrate (lo que muestra el header): 1800000 Bit/Sec

vbv: 112

Frames leidas: 251

dct precision: 9 (innecesario para este bitrate)

quantscale: Non linear

Scan Type: Alternate

La estructura del GOP es IPPPPPPPPPPPPPP, totalmente anómalo ya que faltan los frames B (bidireccionales).

Entrarían en un CD de 700 Mb dos pelis de 110 min., pero de tan mala calidad que te conviene no verlas.

ha_mencoder.mpg

http://fotos.ya.com/Prodater64/ph10990037039092.gif/

Bitrate Average: 2994

Q. level Average: -0,20

Nominal Bitrate (lo que muestra el header): 8000000 Bit/Sec

vbv: 184 (fuera de estándar, ya mencioné como corregirlo)

Frames leidas: 247

dct precision: 8 (debería ser 9 para este bitrate)

quantscale: Linear

Scan Type: ZigZag

Una peli de 110 min entraría más o menos en 2/3 DVD, con excelente calidad.

ha_menc_707.mpg

http://fotos.ya.com/Prodater64/ph10990037046643.gif

Bitrate Average: 599

Q. level Average: 0,91

Nominal Bitrate (lo que muestra el header): 8000000 Bit/Sec

vbv: 184 (fuera de estándar, ya mencioné como corregirlo)

Frames leidas: 248

dct precision: 8 (OK)

quantscale: Linear

Scan Type: ZigZag

Una peli de 110 min entraría sobrada en un CD de 700 Mb, pero con una calidad ruinosa.

Tus resultado "parecen buenos" por que es un video con un fondo de puro negro, y unas letras generadas por ordenador.

Editado: Agregados links a imágenes.

----------

## oCHARLIEo

Antes de nada, agredecer a Prodater64 todo el tiempo que pierde con nosotros ^_^ reconozco que en este materia aun estoy muy verde...

y paso a comentar algunas cositas:

 *Quote:*   

> 
> 
> 1 - Has posteado 2 veces el paso 1, no tiene importancia, simplemente es para no confundir a quienes no lo sepan. 
> 
> 

 

Po zi, efectivamente... no se puede estar con el portatil en las rodillas y la novia echandote la bronca porque no lo apagas ya...en fin, ahora lo edito para que no haya confusiones

 *Quote:*   

> 
> 
> 2 - -sws 9 es mejor utilizarlo para fuentes DVDs y -sws 2 para AVIs. 
> 
> 3 - -vrc_eq=tex es una opción adecuada para codificación tipo CQ, para VBR a bitrates promedio inferiores a 1800 sería mejor -vrc_eq=tex^0.5 y superiores a 1800 -vrc_eq=tex^0.75 ya que dan una mejor distribución del bitrate en 2 pasadas. 
> ...

 

Tomo buena nota de esto. La verdad es que el script original era de Sertinell y el tenia esto asi originalmente, despues el objetivo del script ha variado mucho, pero yo no he modificado esto por que realmente no sabia muy bien como podria afectar...

 *Quote:*   

> 
> 
> 4 - -lmin también tiene que ir en relación al bitrate promedio, y cuanto más bajo, más grande el archivo final 
> 
> 

 

Sertinel calcula el lmin como tu indicas aqui, pero como el bitrate para codificar era 8000 marcaba lmin a 0.01. ¿Puede ser sea esto lo que este afectando para que el primer fichero sea tan grande? porque cuando le indique explicitamente el bitrate de 700 el lmin paso a ser obviamente de 0.5 y el tamaño disminuyo considerablemente... pero ya no se si ha sido mas por la disminucion de bitrate o por el lmin...

 *Quote:*   

> 
> 
> 5 - -vrc_buf_size=3000 Este valor para mpeg2 debe ser 1835 para obtener un valor de vbv=224, acorde al estándar DVD (se admite también para SVCD) 
> 
> 

 

Aqui me pasa una cosa muy rara... se que deberia ser 1835, pero con ese valor de vrc_buf_size en la compresion me salen un monton de buffers underflows y luego no me multiplexa bien... la verdad es que supuse que esto solo era un buffer que utlizaba mencoder para trabajar, lo aumente, me dejo de dar problemas y lo deje asi... 

 *Quote:*   

> 
> 
> 7 - Este es el punto de tu pregunta original vbitrate=8000 Este es el valor de bitrate promedio que le estás pidiendo, y vrc_maxrate=8000 es el techo que le pones al encoder, para decirle que puede subir hasta ahí para evitar una excesiva quantización y que la peli se pixele. No le debes dar un valor de bitrate promedio igual al techo solicitado. 8000 es un valor adecuado, pero vbitrate debe obtenerse de la cuenta: 
> 
> 

 

nuestro vbitrate lo obtenemos de:

```
OUTPUT_V_BITRATE=`echo "$(((( $OUTPUT_SIZE * 1024 * 8 ) / ( $INPUT_TIME ))-$OUTPUT_A_BITRATE))" | bc -l`
```

con lo que normalmente no suele ser igual a vrc_maxrate, salvo en el ejemplo poco afortunado que he utilizado...dte todas formas aqui me gustaria preguntarte una cosa... me visto que hay varias formas de calcular el bitrate... ¿no es mas razonable calcular el bitrate en funcion de la resolucion final? o no influye para nada...

 *Quote:*   

> Creo que se entiende bien.

 

Cristalino, gracias

----------

## Sertinell

 *Quote:*   

> 
> 
> con lo que normalmente no suele ser igual a vrc_maxrate, salvo en el ejemplo poco afortunado que he utilizado...dte todas formas aqui me gustaria preguntarte una cosa... me visto que hay varias formas de calcular el bitrate... ¿no es mas razonable calcular el bitrate en funcion de la resolucion final? o no influye para nada... 

 

Ese bitrate qe obtenemos e el valor para:

```
vbitrate=${OUTPUT_V_BITRATE}
```

 Qe es el bitrate medio, qe no el maximo, el maximo se lo debemos dar segun formato, para qe sea legible. Elbitrate promedio no se deb elegir en funcion de la resolucion, se elige en funcion del tamaño final qe quieres (me gusta saber lo qe va a ocupar un video antes de tirar 2 o 3 horas codificando) , es la experiencia la qe te da la capacidad de elegir la resolucion mas adecuada para cada tamaño de archivo, (a MI por ejemplo MI experiencia me dice, qe 352*576 en SKVCD va MUY bien y ME gusta mas qe 480*576), si no tienes la experiencia, lo normal esqe tires de "standares"  :Wink: . Por supuesto qe si elijes una resolucion muy grande para un archivo "peqeño" tendras problemas ya q al encoder le faltara bitrate para llenar cada uno de los frames (cada frame es muxo mas grande qe si utilizas una resolucion mas peqeña).

Voy a facer esos samplecitos ^^

SaludosLast edited by Sertinell on Fri Oct 29, 2004 9:59 am; edited 1 time in total

----------

## ashtophet

Interesantísimo el thread entero y esta discusión final mencoder - transcode   :Wink: 

***

OT

 *erflako wrote:*   

> Otra tonteria ¿ como puedo imprimir una man page ? Si hago
> 
> #man mplayer>/file
> 
> luego se ven cosas raras . Quiero imprimirlo para poder leer en papel .

 

Existen varias posibilidades, las más inmediatas:

```
man2dvi /usr/share/man/man1/mplayer1.gz > mplayer_print.dvi
```

```
man2html /usr/share/man/man1/mplayer1.gz > mplayer_print.html
```

Además si utilizas kde o algunos programas kde entre los que se encuentre konqueror, podrás introducir un --> man:mplayer <-- en la barra de dirección, con lo que lo verás en un formato web que podrás imprimir, guardar, etc.

----------

## Sertinell

 *Quote:*   

> 
> 
> 2 - -sws 9 es mejor utilizarlo para fuentes DVDs y -sws 2 para AVIs. 

 No qedamos en qe lanczos (-sws 9) era apra avis y bicubic (-sws 2 ) era para DVD ?

Transcode falla mas qe una escopeta de feria !!! estoy intentando hacer los samples, y cada vez e hago un ls sobre el directorio de trabajo se rompe la tuberia :S y todo al traste  :Sad: 

de todas formas:

```
$ time transcode -R1,stats.log -V -i sample.avi --export_prof dvd-pal -x mplayer  -y mpeg2enc,null -F 8 --video_max_bitrate 8000  -o /dev/null

transcode v0.6.12 (C) 2001-2003 Thomas Oestreich, 2003-2004 T. Bitterberg

[transcode] (probe) suggested AV correction -D 0 (0 ms) | AV 0 ms | 0 ms

[transcode] auto-probing source sample.avi (ok)

[transcode] V: import format    | DivX5 RIFF data, AVI (V=mplayer|A=ac3)

[transcode] V: import frame     | 640x272  2.35:1

[transcode] V: pre clip frame   | 640x450 (-89,0,-89,0)

[transcode] V: zoom             | 720x576  2.07:1 (Lanczos3)

[transcode] V: bits/pixel       | 0.174

[transcode] V: decoding fps,frc | 25.000,3

[transcode] V: multi-pass       | (mode=1) writing data (pass 1) to stats.log

[transcode] V: Y'CbCr           | YV12/I420

[transcode] A: import format    | 0x2001  AC3/A52      [48000,16,2]  128 kbps

[transcode] A: export           | disabled

[transcode] V: encoding fps,frc | 25.000,3

[transcode] A: bytes per frame  | 7680 (7680.000000)

[transcode] A: adjustment       | 0@1000

[transcode] V: IA32 accel mode  | sse2 (sse2 sse mmxext mmx asm)

[transcode] V: video buffer     | 10 @ 720x576

[import_ac3.so] v0.3.2 (2002-02-15) (audio) AC3

[import_mplayer.so] v0.0.5 (2003-03-10) (video) rendered by mplayer | (audio) rendered by mplayer

[export_null.so] v0.1.2 (2001-08-17) (video) null | (audio) null

[export_mpeg2enc.so] v1.1.10 (2003-10-30) (video) MPEG 1/2

[import_ac3.so] A52->PCM

[import_ac3.so] tcextract -a 0 -i "sample.avi" -x a52 -d 0 | tcdecode -x a52 -d0 -A 0

[import_mplayer.so] mplayer -benchmark -noframedrop -nosound -vo yuv4mpeg "sample.avi" -osdlevel 0 > /dev/null 2>&1

[import_mplayer.so] tcextract -i stream.yuv -x yv12 -t yuv4mpeg

[export_mpeg2enc.so] *** init-v *** !

[export_mpeg2enc.so] cmd=mpeg2enc -v 0 -I 0 -f 8 -b 1800 -F 3 -n p  -a 2 -o "/dev/null"

No accelerated IMDCT transform found

[video_trans.c] warning: odd clip parameter invalid for Y'CbCr processing mode

encoding frames [000000-002312],   4.01 fps, EMT: 0:01:32, ( 0| 0| 0)

clean up | frame threads | unload modules | cancel signal | internal threads | done

[transcode] encoded 2313 frames (0 dropped, 0 cloned), clip length  92.52 s

real    9m43.659s

user    6m17.839s

sys     0m35.498s

```

9 min para un video de 1:30 mins en la primera pasada, vamosq e con las 2 pasadas 18 mins mas de 10 veces la duracion ... ya esta bien, eso no es ser lento, es ser cansao XD, ya puede dar calidad cuando haga la segunda pasada, si no por mi parte y para mi uso el transcode qeda descartado

----------

## Sertinell

Bueno ya tengo los samples exos, os dejo un resumen de los resultados:

Transcode: 20 Mb de tamaño, la calidad,parami gusto, deja muxo qe desear, aprecen pixeles, y unas manchas rojas por la imagen qe no se de donde puñetas se ha inventado.

```
$ transcode -R1,stats.log -V -i sample.avi --export_prof dvd-pal -x mplayer  -y mpeg2enc,null -F 8 --video_max_bitrate 8000  -o /dev/null

$ transcode -R2,stats.log -V -i "sample.avi" --export_prof dvd-pal -x mplayer -y mpeg2enc,null -F 8 --video_max_bitrate 8000  -E 44100 -o "sample"

```

 He hecho primero el sample de transcode por qe con el no se buscar un tamaño concreto, una vez qe transcode ha exo su trabajo he buscado el mismo tamaño con mencoder

Mencoder:

He utilizado el script original, para buscar el tamaño adecuado,utilizar la matriz KVCD, y ahorrarme tener qe definir TODAS las variables a mano.

Al limitar eltamaño a 20 Mb y AVB de 1700 bits, elbitrate no alcanza los valores idoneos para este video, por qe YO no le he dejado, por eso aparecen algunos pixeles, alrededor de las gotas de lluvia, pero ni comparacion con lo ocurrido en transcode, las manchas rojas han desaparecido, y a mi gusto luce mejor, y ha tardado la mitad(o la 4ª parte) de tiempo qe transcode.

Decir q la linea de comandos de mencoder es fruto de un trabajo de basatnte tiempo, y de una recopilacion de muxos sitios (Prodater lo sabe bien) y qe lo qe usamos para transcode es algo casi por defecto, creo qe  se le podria sacar mas punta a transcode, pero creo qe el futuro reside en nplayer/mencoder (libvacodec), no digo el presente por q aun hay cosas en las qe falla, p.e. los FPS    :Rolling Eyes: 

Mi opinion creo qe qeda clara y mi opcion, por ahora, es mencoder.

Saludos

EDITO: Lo 2 samples subidos. Estoy rehaciendo el de transcode, tambien tendre qe rehacer de mencoder, por qe el anterior lo hice con un bitrate maximo de 2500, yaunqe en el video hay pocos momentos para compensar las escenas de Bitrate alto con escenas de bajo, no es lo mismo un bitrate de 8000 qe de 2500Last edited by Sertinell on Fri Oct 29, 2004 2:01 pm; edited 1 time in total

----------

## Prodater64

 *Sertinell wrote:*   

>  *Quote:*   
> 
> 2 - -sws 9 es mejor utilizarlo para fuentes DVDs y -sws 2 para AVIs.  No qedamos en qe lanczos (-sws 9) era apra avis y bicubic (-sws 2 ) era para DVD ?
> 
> 

 

Es justamente al revés.

----------

## Prodater64

Disculpen, podrían explicarme cuál es el problema específico acerca de los fps?

----------

## oCHARLIEo

Sertinell, quitale la opcion -V a transcode y te desapareceran las manchas...

Te cuento el problema Prodater64 con los FPS... si el video de origen tiene un framerate distinto a 25.000 que en teoria es el estandar, nosotros intentamos convertirlo con la opcion -ofps de mencoder. El problema es que esto nos descompensa el audio y el video por que al comprimir el video utilizamos la opcion -nosound y no tiene flujo de audio con el que sincronizar y corregir... estuve haciendo varias pruebas y no consegui nada, y tampoco encontre muchas soluciones a este tema salvo comentarios hacerca de que de momento no se podia hacer nada...

Intente hacerlo de otra forma sacando directamente un mpeg al hacer la compresion de video pasando el fichero de audio ya comprimido en MP2 para que haga la sincronizacion con:

```

mencoder -of mpeg -ovc lavc -oac copy -audiofile ${FILE_OUTPUT}.mpa -ofps $OUTPUT_V_FPS -lavcopts vcodec...etc

```

Pero me daba bastantes errores... aunque a veces funcionaba bien. en la pagina anterior lo explico un poco mas... ^_^

Cualquier comentario al respecto tambien te lo agradecere mucho.

Por cierto, muy chula la aplicacion esta del Bitrate Viewer, no la conocia... ademas funciona muy bien en linux ;-P

EDITADO:

Por cierto un comentario sobre esto:

```

La estructura del GOP es IPPPPPPPPPPPPPP, totalmente anómalo ya que faltan los frames B (bidireccionales). 

```

Ya se que es mejor usar los frames B pero... ¿no son opcionales?, ya se que en VCD es necesario meter 2 entre I y P para cumplir el estandar pero en DVD no es asi... ¿o no?

En cualquier caso mpeg2enc (que es lo que uso en transcode para convertir el video) tiene una opcion para especificar los frames B que quieres...

----------

## Sertinell

 *Quote:*   

> Sertinell, quitale la opcion -V a transcode y te desapareceran las manchas... 

 

Ok rehago el sample, yo me limite a copiar tu linea,  :Wink: . a ver si los resultados no son tan malos  :Smile: 

----------

## Sertinell

 *Prodater64 wrote:*   

>  *Sertinell wrote:*    *Quote:*   
> 
> 2 - -sws 9 es mejor utilizarlo para fuentes DVDs y -sws 2 para AVIs.  No qedamos en qe lanczos (-sws 9) era apra avis y bicubic (-sws 2 ) era para DVD ?
> 
>  
> ...

 

Prodater, con avisinth siempre hemos usado lanczos para los avi, y bicubic para los DVD's 

LINK

si me equivoco, pues llevo siglos haciendolo al reves ...   :Laughing:   :Embarassed: 

----------

## Sertinell

Ya he rehecho los 2 samples, ahora no aparecen manchas rojas,pero igualmente mencoder me sigue pareciendo MUY superior, mirar sobre todo el final del video, donde mencoder le da una soberana paliza a transcode, es donde se nota qe mencoder ha repartido mejor el bitrate qe transcode. He rehecho los 2, quitando la -V en transcode yponiendo elbitrate maximo a 8000 en mencoder.

Los estoy subiendo, pa esta noxe los tendreis, ahora me voy a hacer algo de deporte  :Wink: 

----------

## erflako

Gracias a Prodater64 y a galiza_ceive por los links .

Nadie me responde a la preguntita si el fichero final tiene el tamaño según OUTPUT_SIZE . Es para no hacer una peli entera .

De lo que veo estais haciendo pruebas con el trozo de fichero tan cutre que tengo en el servidor . Pues , lo que dice Prodater64 - un fondo negro , etc. De poco sirve . En un principio era para el sonido . No para hacer el video . Par esto la mejor opcion me parece la de Sertinell - muchas hostias y lluvia es el escenario perfecto para buscar calidad .

El mencoder nos estaba dando resultados bastante aceptables , creo . Y , lo que dije antes - Sertinell queria usar solo mplayer ( aunque tenemos toolame ) , así que a ver si podemos hacerlo todo con mencoder .

Charlie ¿ estás progresando con los fps ?

Me pongo a leer el manual y a hacer pruebas .

----------

## Prodater64

 *Sertinell wrote:*   

> Prodater, con avisinth siempre hemos usado lanczos para los avi, y bicubic para los DVD's 
> 
> LINK
> 
> si me equivoco, pues llevo siglos haciendolo al reves ...   

 

Bueno, eso lo había entendido yo a partir de ciertas conversasiones que ahora no puedo encontrar. Pero esto me hizo pensar y en realidad es una cuestión de gusto, así como sucede con los filtros de avisynth. Lanczos da una imagen mas "sharp", afilada, y Bicubic mas "blur", suavizada. Sólo visualizar el resultado y comparar "subjetivamente" es lo que definirá cual es el filtro que cada uno elige.

----------

## Sertinell

Ya teneis los samples actualizados, y hechos de forma correcta. 

http://sertinell.spymac.net/menc.m2v

http://sertinell.spymac.net/transc.m2v

A ver qe os parecen  :Wink: 

----------

## Prodater64

 *Sertinell wrote:*   

> Ya teneis los samples actualizados, y hechos de forma correcta. 
> 
> http://sertinell.spymac.net/menc.m2v
> 
> http://sertinell.spymac.net/transc.m2v
> ...

 

Es evidente que la codificación de Mencoder es muy superior tanto subjetiva como objetivamente.

Mencoder:

http://fotos.ya.com/Prodater64/ph10990847673331.gif

Avg Bitrate: 1362

Q Level: 5.72 (no muy bueno)

Frames: 2309

Tamaño: 19288 Kb.

Transcode

http://fotos.ya.com/Prodater64/ph10990847678782.gif

Avg Bitrate: 1364 (Muy parecido, eh?)

Q Level: 13.47 (Horrendo)

Frames: 2313

Tamaño: 19424 Kb.

----------

## erflako

Ejem , he votado mencoder .

Dice Prodater que es muy superior . Es mejor . Le veo menos fallos que al otro ( bastante menos fallos ) y de eso se trata ¿no? Tambien tiene sus "cuadraditos" en algunos sitios , pero ... es mejor .

Por mi - nos quedamos con mencoder .

Edito :

Charlie , en la linea :

```

z=`echo "(($OUTPUT_V_HEIGHT*$y)/($BASE_SCALED/1.333))"| bc -l`

```

¿no debería ser ....BASE_SCALED/OUTPUT_V_ASPECT)).... ?

eso por si le ponemos opción "--aspect" o algo asi .

He cambiado un poco el mensaje de ayuda . Así lo veo mas "legible" .

----------

## Prodater64

Ojo, yo digo que es muy superior, no que sea bueno.

Fíjate el Q level de Transcode, da pena.

Te puedo asegurar que Transcode no puede competir con Mencoder en estas condiciones.

----------

## oCHARLIEo

Sertinell, estaria bien si me pudieras pasar el avi original para hacer pruebecillas aunque sea a titulo personal mio por curiosidad... por que ya ha quedado bastante claro que seguimos con mencoder...

 *Quote:*   

> 
> 
> Charlie , en la linea : 
> 
> Código:
> ...

 

Hombre, habria que cambiar eso, efectivemente y un huevo de cosas mas... por que la parte de reescalado habria que revisarla tb, que supongo que le afectara...

 *Quote:*   

> 
> 
> Nadie me responde a la preguntita si el fichero final tiene el tamaño según OUTPUT_SIZE 
> 
> 

 

Pues efectivemente, si

 *Quote:*   

> 
> 
> De lo que veo estais haciendo pruebas con el trozo de fichero tan cutre que tengo en el servidor . Pues , lo que dice Prodater64 - un fondo negro , etc. De poco sirve . En un principio era para el sonido . No para hacer el video . Par esto la mejor opcion me parece la de Sertinell - muchas hostias y lluvia es el escenario perfecto para buscar calidad .
> 
> 

 

Lo que yo intentaba resaltar es que mencoder me hacia cosas extrañas, y una de esas cosas es que no me ajustaba de forma correcta el bitrate medio que deberia salir para un video de esas caracteristicas (demas consideraciones aparte)... Obviamente para una prueba de calidad y de tiempo es mejor algo como lo que ha elegido Sertinel (yo tb lo habria hecho asi si hubiera querido medir la calidad)

 *Quote:*   

> 
> 
> El mencoder nos estaba dando resultados bastante aceptables , creo . Y , lo que dije antes - Sertinell queria usar solo mplayer ( aunque tenemos toolame ) , así que a ver si podemos hacerlo todo con mencoder . 
> 
> Charlie ¿ estás progresando con los fps ? 
> ...

 

X-DDD Tu no me lees, fijo... Pues no he progresado nada con mencoder (a raiz de eso viene todo esto) y por tanto mis resultados con mencoder no han sido aceptables... pero si todos estais de acuerdo en que funciona muy bien va ha ser que yo no lo uso correctamente...

----------

## Sertinell

Charlie, el video son 30 Mb, voy a ver si tengo espacio en el web y si no hgo otra cuenta. Lo qe me gustaria saber es como decirle a transcode qe busqe un tamaño determinado, creo qe para este video lo normal seria un tamaño de 30 MB(minimo) para una calidad decente, quiero hacer los samples buscando una calidad buena, en este la calidad de mencoder tampoco es buena, debido a la limitacion de tamaño.

Qe le pasa al resize ? El resize desde avi's funciona correctamente,originalmente, no lo habeis tocado no ?,recordar qe aunqe en el PC no se vea como debe, la TV hara un reescalado, desde DVD's me ha informado prodater de qe  falla, cuando le demos soporte al DVD tendre qe revisarlo.

Lo qe podemos hacer es qe si el usuario desea cambiar el Frame rate se use transcode ( si conseguimos qe nos de un fichero de un tamaño determinado), advirtiendole previamente de qe la calidad no sera la misma ( en pelis lentas casi qe se vera igual). Yo, pe , no cambiaria el frame rate, se nota qe no le tengo cariño a los standards... Como mi DVD se come el NTCS lo dejare en NTCS  :Very Happy: , el problema esqe 352*480 no me gusta tanto ^^.

Saludos

----------

## oCHARLIEo

Creo que le entendi a el erflako de meter una variable OUTPUT_V_ASPECT al inicio para poder elegir si quieres el video en 4:3 o en 16:9  y creo que preguntaba si tendriamos que meter la variable en el calculo de bitrate... es lo que he entendido (nos lo confirmara el)...

Y yo le decia que no se si tb deberiamos revisar la funcion de reescalado, si quiere sacar tb un 16:9 habra que meter la variable en esta linea:

```

z=`echo "(($OUTPUT_V_HEIGHT*$y)/($BASE_SCALED/$OUTPUT_V_ASPECT))"| bc -l`

```

El video muedes mandarmelo a mi cuenta de gmail (Hay hueco) ^_^ que ya lo cuelgo yo si quieres, que tengo mas sitio... X-D

----------

## erflako

Si , Charlie , esa era mi idea . No me habia percatado del escalado , pero si .

Y claro que te leo , hombre . Como no iba a leer . La pregunta era por si habias sacado algo en claro de toda la charla .

Nos habiamos metido ( nos u os ?) en una disputa sobre mencoder y transcode y , yo por lo menos , no veía nada claro en los fps .

Sigo leyendo el manual .

----------

## Sertinell

Ya esta subido:

http://sertinell.spymac.net/sample.avi

De hacer pruebas a titulo personal nada de nada, aqui se postea todo lo qe consigas  :Wink: 

Ah !! Pue el aspect ratio notiene nada qe ver con el bitrate, con el reescalado si. Esas pruebas dejarmelas a mi, no se si habria qe cambiar algo mas ademas del 1.333 ese ... 

De todas formas, creo qe es mejor codificar siempre a 4:3, simpleemente por una cosa, si codificas a 16:9, supongamos qe tu televisor es 16:9, cuando le dejas la pelicula a un compañero, qe tenga un televisor 4:3 la vera "amorfa perdia", y por ahora no todos tenemos un televisor 16:9 (yo tampoco), por otra parte si codificas a 4:3 en tu televisor 16:9 le podras decir qe corte las bandas negras y estire, creo qe casi todos llevan esa opcion... Asi qe vosotros direis ^_^

Saludos

----------

## erflako

Yo tampoco tengo tele panoramica , pero siendo esto opcional , ocupando solo dos lineas no nos hace daño tenerlo como opcion por si alguien quiere hacerse su peli personal en formato panoramico .

Lo que dice Sertinell - vosotros direis . 

Si no os gusta lo quito y ya 'sta .

Además - si poness la panoramica en una tele 4:3 no verás los laterales , pero ...

En fin - como querais . Todavia no he subido el script en el servidor .

Edito :

¿ A alguien se le ocurre como sacar solamente el nombre del fichero sin la ruta completa ?

Es para hacer las opciones "--temp" y --"output" . Ahí necesito el nombre del fichero sin la ruta . Un :

```

echo "$FILE" |grep ... |awk {print $...}

```

no sirve .

----------

## Prodater64

 *Sertinell wrote:*   

> Lo qe podemos hacer es qe si el usuario desea cambiar el Frame rate se use transcode ( si conseguimos qe nos de un fichero de un tamaño determinado), advirtiendole previamente de qe la calidad no sera la misma ( en pelis lentas casi qe se vera igual). Yo, pe , no cambiaria el frame rate, se nota qe no le tengo cariño a los standards... Como mi DVD se come el NTCS lo dejare en NTCS , el problema esqe 352*480 no me gusta tanto ^^.
> 
> Saludos

 

Le puedes decir a transcode el bitrate promedio y el máximo? Si se puede, entonces codificas un sample con mencoder y te fijas que bitrate promedio y que máximo utilizó, y transcoder debería obtener un resultado similar, o no?

Por otra parte, ya que parece que transcode te cambia los fps sin problemas, que tal usar transcode para obtnener el audio, en una sola pasada (implementalo como quieras o como se pueda para extraer el audio, no se si tiene una forma rápida) luego utilizas el mencoder para el video y multiplexas audio de uno con video del otro, según lo que se dice aquí, sería inclusive más rápido que con transcode sólo.

De todas formas estoy investigando, y si quieren pueden ayudar. Hagan una codificación con mencoder indicando -of avi (ya que leí que la opción -of mpg no es muy buena) -oac lavc -ovc lavc y todas las especificaciones para el video conocidas, incluyendo mpeg2codec, y para audio utilicen dentro de las opciones para lavc (-lavcopts) acodec=mp2, abitrate=128 (o lo que sea)	

Dentro de las opciones de Mencoder Demuxer/Stream utilicen -srate 44100.

Si todo sale bien obtendrán un mpeg2 envasado en un contenedor avi.

Si esto funcionó correctamente, con MPlayer dumpaudio, dumpvideo, se tendría que obtener un mpeg2 (esto ya lo he comprobado, pero por ejemplo el bbmpeg me dice que no es un verdadero mpeg2 al intentar multiplexar) y un mp2 (como no le indiqué que utilizara lavc como audio codec no era un stream válido)

Habría que encontrar la forma de destripar ese avi obteniendo los elementary streams en una forma correcta, que todavía no se cuál es.

Espero que se haya entendido algo.

 :Confused: 

Editado: No le encuentro la vuelta. Si puedo obtener audio mp2, pero el video me informa bbmpeg y TMPGEnc que no es un mpg válido.

Seguiré probando aunque sea con -of mpg

----------

## Prodater64

Hola, sigo buscando soluciones. Yo no se nada de Linux, pero si su sistema operativo soporta alguna de estas cosas:

 *Soundtouch Site------------------------------------------- wrote:*   

> 
> 
> Full source codes for the SoundTouch library & the SoundStretch example utility released under LGPL license.
> 
> Makefiles for building the library & the example utility from source codes for any platform supporting Visual C++ or GNU C compiler.
> ...

 

pueden compilar esta simple y fabulosa aplicación, que con un poco de trabajo, soluciona los problemas de cambio de bitrate.

Siento que esté en inglés, pero pueden traducirlo con Google u algún otro traductor online.

El link:

http://sky.prohosting.com/oparviai/soundtouch/index.html

----------

## erflako

Gracias por el link . No he instalado el paquete , pero he visto esto :

```

ug@PIV dvd $ emerge -s soundtouch

Searching...

[ Results for search key : soundtouch ]

[ Applications found : 1 ]

  

*  media-libs/libsoundtouch

      Latest version available: 1.2.1

      Latest version installed: [ Not Installed ]

      Size of downloaded files: 330 kB

      Homepage:    http://sky.prohosting.com/oparviai/soundtouch/

      Description: Audio processing library for changing the tempo, pitch and playback rates.

      License:     LGPL-2.1

 

 

ug@PIV dvd $

```

Se agradece mucho la ayudita .

Sertinell , se esta yendo la cosa del mplayer . Parece que solamente con mencoder , por muy bueno que sea , no vamos a poder hacerlo todo bien .

Una propuesta - que cada uno ponga su opinion sobre la linea que deberíamos seguir :

 - quedarnos solo con mencoder y buscar solucion ahí 

 - introducir mjpegtools ( que ya está ) y entre todo lo que hay solucionarlo

 - soundtouch - tambien puede ser la solucion

 - buscar otra cosa

etc.

A lo que voy - tenemos que ver una determinada maner y hacer un plan de trabajo , porque así estamos como dando palazos a ciegas ( que entiendo que se está buscando alguna solucion ) pero nos deberíamos centrar en algo concreto .

Sertinell ¿ te importaría empezar tu ? Eres el primero que empezó el script ...

P.D. Si alguien ha bajado lo que tengo en mi pagina que lo borre . Tiene un fallo tremendo y no coje todas las posibles variantes del sonido . Anoche lo solucioné y ahora lo subo .

----------

## Sertinell

Gracias prodater or el link, se nota e sabes por donde buscar  :Wink: 

 *Quote:*   

>  - quedarnos solo con mencoder y buscar solucion ahí
> 
> - introducir mjpegtools ( que ya está ) y entre todo lo que hay solucionarlo
> 
> - soundtouch - tambien puede ser la solucion
> ...

 A ver ... la idea de mencoder inicialmente esta claro qe ahora, con el problema de los FPs ha qedado limitada al video, el audio, he tenido claro desde el rincipio qe debemos tratarlo con otras herramientas, con mjpegtools, (mp2enc) yo no he visto por ningun sitio la opcion de cambiar los FPS, es mas , buscar sobre "mkxvcd.sh"(esta incluido enlos ports de BSD) y por ahora tampoco soporta el cambio de FPS, por lo menos el tiempo qe yo lo use. Soundtouch hay qe probarlo, pero creo qe funcionara bien ^^.

 Ademas la cosa era qe no qeria qe dependiera de grandes paqetes aparte de mplayer/mencoder sountouch toolame y mjpegtools, juntos no llegan al mega, transcode puede tener una eternidad de dependencias. Creo qe ha qedado claro q elusar mencoder para el video no es una simple cabezoneria mia, qe podria serlo  :Razz: 

Ahora no tengo tiempo para trastear con soundtouch, me estoy peleando por hacer funcionar el scummvm en mi gentoo  :Very Happy: 

Saludos.

----------

## Prodater64

 *Sertinell wrote:*   

> A ver ... la idea de mencoder inicialmente esta claro qe ahora, con el problema de los FPs ha qedado limitada al video, el audio, he tenido claro desde el rincipio qe debemos tratarlo con otras herramientas, con mjpegtools, (mp2enc) yo no he visto por ningun sitio la opcion de cambiar los FPS, es mas , buscar sobre "mkxvcd.sh"(esta incluido enlos ports de BSD) y por ahora tampoco soporta el cambio de FPS, por lo menos el tiempo qe yo lo use. Soundtouch hay qe probarlo, pero creo qe funcionara bien ^^.
> 
>  Ademas la cosa era qe no qeria qe dependiera de grandes paqetes aparte de mplayer/mencoder sountouch toolame y mjpegtools, juntos no llegan al mega, transcode puede tener una eternidad de dependencias. Creo qe ha qedado claro q elusar mencoder para el video no es una simple cabezoneria mia, qe podria serlo 
> 
> Ahora no tengo tiempo para trastear con soundtouch, me estoy peleando por hacer funcionar el scummvm en mi gentoo 
> ...

 

Hola: 

Si puedo aportar mi opinión, Mencoder es uno de los mejores encoders para video que hay. Yo creo que al respecto no les tiene que quedar duda.

Respecto al audio, las herramientas que hay para cambio de fps, que funcionan en la línea de comandos, sólo conozco 3 (y miren que he buscado)

1 - Besweet.

2 - SoundStretch.

Y adivinen! Besweet usa soundtouch, la librería de Soundstrech. Así que vayan pensando cuales son sus opciones, ya que por ejemplo Besweet también usa mp2enc, el cual no tiene ninguna opción para el cambio de fps, lo cual he comprobado ejecutando la ayuda del mp2enc desde CLI.

3 - La otra herramienta en W32 es Avisynth, vuelvan a adivinar, la dll es también de la misma factoría.

Con estas herramientas se cambian los fps sin cambiar el "pitch" o "tono". 

Yo mismo, que estoy creando un programa basado en CLI, inclusive antes de esta idea de Sertinell, utilizo Mencoder/MPlayer, Besweet (es mi equivalente de mp2enc) y SoundStretch.

Yo creo EMHO, que si logran compaginar Mencoder/MPlayer/SoundTouch/mp2enc obtendrán el mejor paquete de codificación que hay en la actualidad.

El único problema es que SoundStretch tabaja con archivos wav, y por lo tanto su paso sería MPlayer -> wav -> SoundStretch -> wav -> mp2enc -> mp2

Hasta pronto.

----------

## Sertinell

 *Quote:*   

> MPlayer -> wav -> SoundStretch -> wav -> mp2enc -> mp2 

  El tema de las conversiones serian 2 tuberias, y nos ahorramos todo el espacio temporal (la unica tuberiaqe he probado qe no funciona es de mplayer a toolame), en las propias paginas man de mp2enc dice qe toolame es mas rapido, mas estable y da mas calidad, pero a oido yo no noto diferencia alguna, no se si sera por la deficiencia de mi equipo o de mi oido , como veais, si mp2enc sí soporta codificar desde una tuberia es simple mandar el archivo de mplayer a traves de soundstretch y directamente a mp2enc, saldria justo como debe.

Estoy probando soundstretch en una cancio,para comprobar como afecta el cambio del tempo(es lo uncio qe hay qe cambiar no ?) al tono y demas (siempre qe habia hecho otras conversiones el tono bajaba) pero no noto diferencia alguna escepto qe va "algo" mas despacio, pero no mas qe si al grupo le da por cantar tranquilitos   :Surprised:  . En conclusion ME GUSTA. Ahora hare pruebas con un anime q tengo a 23.976 y otro qe tengo a 29.970 ...

Saludos

----------

## Sertinell

Os hago un reporte de mis pruebas qe no etsansaliendo como yo esperaba  :Confused: 

Veamos, yo extraigo el audio de un archivo a 23.976 FPS a un wav, despues le hago esto

```
$ soundstretch "FILE.wav" "FILE(25).wav" -tempo=+4.27

   SoundStretch v1.2.1 -  Written by Olli Parviainen 2001 - 2003

==================================================================

author e-mail: <oparviai@iki.fi> - WWW: http://www.iki.fi/oparviai/soundtouch

This program is subject to (L)GPL license. Run "soundstretch -license" for

more information.

Uses 32bit floating point sample type in processing.

Processing the file with the following changes:

  tempo change = +4.27 %

  pitch change = +0 semitones

  rate change  = +0 %

Working...Done!

```

Lo q lo deja para multiplexar con el mismo video peroa 25 FPS, bueno extraigo el video y le digo qe le cambiel frame rate con:

```
mencoder -nosound -ovc copy -ofps 25 -o FILE(25).avi FILE.avi
```

Bueno pues observo qe mencoder HA DUPLICADO LOS FRAMES DEBIDOS PARA NO ALTERAR LA DURACION !!! por lo eq este FILE(25).avi esta en sincronia con el wav original y no con el wav originado por soundstretch. 

Voy  probar si mencoder se comporta igual cuando tiene qe hacer todo el trabajo de las libavcodec. esto ya me esta mosqeando ¬¬

----------

## Sertinell

Pues efectivamente no se comporta igual al trabajar con las libavcodec, no duplica los frames necesarios por lo qe el fixero resultante esta en sincronia con el FILE(25).wav. De lo qe me resulta qe tenemos 2 metodos:

1º Generamos el fichero de video con libavcodec, y tratamos el audio con soundstretch. Esto es recomendable cuando hay qe incrementar el Frame rate , porqe de donde no hay no se puede sacar !!  :Smile:  yo no me fio de qe el encoder se invente frames (tampoco de qe los dupliqe)

esqemita ^^

 *Quote:*   

> 
> 
> VIDEO--> Libavcode                                                    -->mplex
> 
> AUDIO-->mplayer-->soundstretch-->toolame(o mp2enc)-->mplex

 

2º Generamos el fichero de video con el frame rate cambiado, mediante 

```
mencoder -nosound -ovc copy -ofps 25 -o FILE(25).avi FILE.avi
```

esto lo veo recomendable para cuando hay qe bajar el Frame rate, como es cosa de dropar frames no se vera alterada la calidad, extraemos el audio como emos exo siempre, despues obtendremos el fichero de video tratando el anterior como siempre, y ya lo tenemos listo para multiplexar

Esqemita ^^

 *Quote:*   

> VIDEO-->-ovc copy-->libavcodec           -->mplex
> 
> AUDIO-->mplayer-->toolame( mp2enc) --> mplex

 

Ambos procesos llevarian alrededor del mismo tiempo, e implementando tuberias (se deberia abandonar toolame para el sonido) el espacio temporal seria minimo en ambos.

Voy a probar el video a 29.970, pero espero se comporte igualqe a 23.976, espero ...   :Rolling Eyes:   :Rolling Eyes: 

Saludos

----------

## Prodater64

@Sertinel: Se tiene que comportar perfectamente. Te puedo asegurar que mi script lo rueda a la perfección.

Tienes que tener presente qué tipo de 29.976 tienes entre manos.

Puede ser telecined (un vob, procedente de un DVD o un avi al que no se le hizo telecine inverso, pero la reproducción de este último no sería suave, se verían saltitos). A este video le tienes que aplicar un filtro de telecine inverso y usar la opción -ofps 25 (será una conversión 23.976 -> 25).

Puede ser progresivo, con fps 29.970 verdadera, y es a este al que le tienes que aplicar el método.

Puede ser muchas otras cosas, inclusive mezclas, y hay diferentes formas de codificarlo.

Lee http://www.mplayerhq.hu/DOCS/HTML-single/es/MPlayer.html#menc-feat-telecine

Recomiendo utilizar la opción -pullup -softskip cuando sea necesario. (trabaja sobre fuentes sin/con mezcla de diferentes tipos de video.)

Yo como desentrelazador uso el kerndeint si quiero target desentrelazado, pero también puedes querer un target entrelazado (ya que la tele lo quiere así y si le das progresivo el SAP lo entrelaza igual). Para esto olvida el desentrelazador y utiliza las opciones ildct, ilme y mbd=2, alta calidad, lento, pero resultado excelente.

Y antes de que me olvide, cuando empiecen a trabajar con dvd, siempre extraigan el audio a wav de 2 canales aunque sea ac3 5.1 ya que el SoundStretch no soporta wavs de más de 2 canales.

Bueno, cualquier cosa en lo que les pueda ayudar me lo dicen.

----------

## Prodater64

 *Sertinell wrote:*   

> Charlie, el video son 30 Mb, voy a ver si tengo espacio en el web y si no hgo otra cuenta. Lo qe me gustaria saber es como decirle a transcode qe busqe un tamaño determinado, creo qe para este video lo normal seria un tamaño de 30 MB(minimo) para una calidad decente, quiero hacer los samples buscando una calidad buena, en este la calidad de mencoder tampoco es buena, debido a la limitacion de tamaño.
> 
> 

 

1 - Otra cuenta? Es que hay espacio gratis en algún lado?

2 - Hay va una codificación del sample de Sertinel, pero me quedó un poco corto según lo que quiere él, sólo 22.6 Mb. Espero que no les parezca mala la calidad.

avg bitrate: 1880. Más o menos para que una peli de 105/110 min entre en 2 CD80.

A dos pasadas con esta CL:

```
Mencoder.exe -of rawvideo -sws 2 -noskip -nosound -noaspect -noautoexpand -vf yuvcsp,pp=hb:100:100/vb,crop=640:262:-1:-1,scale=320:240::0:9,hqdn3d=10:12:8,noise=3th,expand=352:480:-1:-1 -ovc lavc -lavcopts vcodec=mpeg2video:dc=8::mbd=2:trell:vrc_eq=tex^0.75:vmax_b_frames=2:preme=2:precmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=0.3:vpass=1:vrc_buf_size=1835:vbitrate=1880:vrc_maxrate=2500:aspect=1.3333:keyint=15...
```

http://s10.yousendit.com/d.aspx?id=C7833387FA134683E3760CD8CF985C12

----------

## Prodater64

Aquí va otra prueba:

Un corte en avi de la película Equilibrium, de calidad regular baja, que codifiqué a 2300 de bitrate promedio. Fíjense como mejoró respecto al avi, este encoder es muy bueno.

Además este caso es un 23.976 a 25.000, utilizando SoundStretch (Soundtouch).

Por lo demás es la misma CL que en el post previo.

AVI:

http://s10.yousendit.com/d.aspx?id=C7882F0B41BF2B671A82BFAE26FA9CF9

MPG:

http://s10.yousendit.com/d.aspx?id=62BF621D09F123A3BF8D8C94848C62A2

----------

## erflako

No hay manera de emerger libsoundtouch .

Hice "emerge sync" , emerge -u portage , emerge libsoundtouch y despues de emerger y 

desemerger con los 4 compiladores que tengo ,

 siempre me da el mismo error :

```

ug@PIV ~ $ soundstretch

Violación de segmento

ug@PIV ~ $

```

Estoy desesperado . Como root - lo mismo .

Os pego el make file por si a alguien se le ocurre como solucionarlo :

 *Quote:*   

> 
> 
> USE="dvdr cdr vcd dvd mmx mmx2 sse sse2 x opengl vx fbcon directfbi gpm alsa esd gnome gtk bonobo gbm gtkhtml gif jpeg tiff png avi mpeg encode quicktime java perl pam ssl crypt spell truetype pdflib tcpd nls mozilla libg++ flash scanner apache2 audiofile cups divx4linux msn oggvorbis usb xvid"
> 
> CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer -fPIC"
> ...

 

Intenté tambien compilar de fuentes - tampoco .

Si no lo consigo estoy fuera de combate .

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Bueno pues observo qe mencoder HA DUPLICADO LOS FRAMES DEBIDOS PARA NO ALTERAR LA DURACION !!! por lo eq este FILE(25).avi esta en sincronia con el wav original y no con el wav originado por soundstretch. 
> 
> 

 

 *Quote:*   

> 
> 
> Pues efectivamente no se comporta igual al trabajar con las libavcodec, no duplica los frames necesarios por lo qe el fixero resultante esta en sincronia con el FILE(25).wav
> 
> 

 

Ahora ya si que estoy seguro de que no me leeis... ^_^ Esto es lo que yo estaba diciendo hace una semana, ¿no recordais que me quejaba del comportamiento irregular de mencoder?... pues era esto. 

Para cambiar los FPS de un video siempre hay dos opciones:

  - Agregar o eliminar Frames del Video para conseguir 25 frames por segundo sin modificar la duracion del mismo, sin tocar el audio para nada.

  - Modificar en la cabecera los fps del Video teniendo en cuenta que esto afectara a la duracion del video y ajustar el timing del audio para igualar la duracion de los dos flujos y no perder sincronia...

Yo intentaba Conseguir la primera opcion. En transcode se dispone de una libreria muy buena que se encarga de eliminar frames o de agregarlos interpolando para poder conseguir un flujo de video a 25 frames sin modificar la duracion. Mencoder tb lo hace de forma natural, pero de una forma un tanto irregular y a costa de sufrir "irregularidades"

Si vamos a utilizar mencoder, desde luego es mejor modificar el timing del audio con alguna libreria como la que mencionabais, pero yo nunca he usado este metodo por que me gusta conservar el tempo original de las peliculas... no se si os habeis parado a pensar que si no agregamos o quitamos frames vamos a cambiar la velocidad de reproduccion... con una a 24 a lo mejor no lo notas mucho... pero y con una a 30??

Este fin de semana no he tenido mucho tiempo, a ver si puedo hacer un hueco esta noche...

----------

## erflako

Charlie dijo :

no se si os habeis parado a pensar que si no agregamos o quitamos frames vamos a cambiar la velocidad de reproduccion... con una a 24 a lo mejor no lo notas mucho... pero y con una a 30?? 

Si , señor . Mil veces si . Tienes todala razón del mundo . Así cambiaremos la velocidad y ... en las pelis de 30fps tendremos efectos Matrix durante toda la peli .

Me parece que a las malas - malas tenemos que elejir las menos malas . No cambiar nada en el sonido e intentar arreglar solamente los fps en el video .

Te leemos, Charlie , pero se nos olvidan algunas cosillas , no caemos en las trampas , en fin - no es nada personal .

Dices que mencoder lo hace de forma irregular . No he probado nada . A ver si me queda algo de tiempo y lo intento yo tambien . Y si tenemos que usar transcode , lo siento Sertinell , lo usamos . Si no hay otra ...[/list]

----------

## Sertinell

 *Quote:*   

> 
> 
> 1 - Otra cuenta? Es que hay espacio gratis en algún lado? 

 Si en www.spymac.com cuenta mail pop3 de 1GB y espacio web de 100 Mb sin limite de visitas ni nada, va perfecto para esto de los samples ^^

 *Quote:*   

> 
> 
> Ahora ya si que estoy seguro de que no me leeis... ^_^ Esto es lo que yo estaba diciendo hace una semana, ¿no recordais que me quejaba del comportamiento irregular de mencoder?... pues era esto.
> 
> Para cambiar los FPS de un video siempre hay dos opciones: 

  Si qe te leo  :Wink:  lo qe pasa es qe estas cosas me gusta comprobarlas por mi mismo  :Wink: 

 *Quote:*   

> Si vamos a utilizar mencoder, desde luego es mejor modificar el timing del audio con alguna libreria como la que mencionabais, pero yo nunca he usado este metodo por que me gusta conservar el tempo original de las peliculas... no se si os habeis parado a pensar que si no agregamos o quitamos frames vamos a cambiar la velocidad de reproduccion... con una a 24 a lo mejor no lo notas mucho... pero y con una a 30?? 

 

Correcto, y no tan correcto, exale un ojo al link qe puso prodater, una peli a 29,970 pocas veces es a 29.970 de verdad, por lo menos lo qe yo deduje ^_^. Para 29.970 podemos hacer lo de copiar el video (o meterlopor una tuberia) con el Frame rate correcto y no cambiar el timing del audio, mi 2º ejemplo  :Wink: .

Erflako, prueba a emerger la version inestable, a mi me ha compilado a la primera  :Wink: 

Otra cosita, alguno teneis material NTSC entrelazado, progresivo o telecined ? yo es qe lo unico qe tengo a 29.970 son unos capitulos de anime, y no tienen nada de eso, creo, por qe han sido recodificaos unas cuantas veces 

Saludos

----------

## erflako

En el portage no me aparece ninguna version aparte de la 1.2.1 que es la que no compila .

Bueno , compila pero no va .

----------

## Sertinell

Ah!! Tienes razon. Prueba a compilarlo con estas flags:

```
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"
```

Son las mias, para un P4 tambien

----------

## Prodater64

 *Sertinell wrote:*   

> Otra cosita, alguno teneis material NTSC entrelazado, progresivo o telecined ? yo es qe lo unico qe tengo a 29.970 son unos capitulos de anime, y no tienen nada de eso, creo, por qe han sido recodificaos unas cuantas veces 
> 
> Saludos

 

http://s9.yousendit.com/d.aspx?id=AD4D68CC886A7B9372B41CA8E111FE52

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Si qe te leo  lo qe pasa es qe estas cosas me gusta comprobarlas por mi mismo  
> 
> 

 

Me parece MUY bien ;-P

 *Quote:*   

> 
> 
> Correcto, y no tan correcto, exale un ojo al link qe puso prodater, una peli a 29,970 pocas veces es a 29.970 de verdad, por lo menos lo qe yo deduje ^_^. Para 29.970 podemos hacer lo de copiar el video (o meterlopor una tuberia) con el Frame rate correcto y no cambiar el timing del audio, mi 2º ejemplo . 
> 
> 

 

Si te refieres a las que tienen telecine o entrelazado... normalmente son de 60 fps para obtener los 30 que necesitan para el estandar...

Por cierto... mencoder no funcionaba muy bien con tuberias no?? X-DD lo siento, lo siento... hare pruebas respecto a esto...

----------

## Sertinell

Por loqe yo se mencoder, si, el qe no funciona bien con pipes es toolame

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Por loqe yo se mencoder, si, el qe no funciona bien con pipes es toolame
> 
> 

 

Me habia parecido leer por aqui que alguien lo habia probado y no funcionaba bien, pero parece que asi funciona bien, corrige los fps y no ocupa mas espacio temporal y no veo por que no deberia funcionar con toolame... lo voy a probar tb...

```

mkfifo -m 660 "stream.avi"

mencoder -noskip -oac copy -ovc copy -ofps $OUTPUT_V_FPS $FILE_INPUT -o "stream.avi" &

mencoder -of rawvideo -sws $SWS -noskip -nosound -noaspect -noautoexpand -vf $VF -ovc lavc -lavcopts <churro_de_opciones> -fps $INPUT_V_FPS -ofps $OUTPUT_V_FPS "stream.avi" -o "${FILE_OUTPUT}.mpv"

```

Ya se que en el man de mp2enc dice que toolame es mejor... pero yo la verdad es que no noto diferencia (tal vez para cosas mas elaboradas...) y mp2enc permite usar pipes perfectamente y ademas nos permite cambiar el muestreo sin problemas... ademas de que recortamos dependencias del script, por que la verdad es que yo toolame no lo tenia instalado...

EDITO: Vale, confirmado. Toolame no rula con pipes...

EDITO 2º: Con el sample Entrelazado que ha pasado Prodater64 no rula bien... da mensajes de error diciendo que si hemos desentrelazado la fuente original y que utilizemos la opcion -ni. Supongo que aki deberemos usar un filtro de telecine inverso, pero esto no ralentizara?? y lo mas importante... no veo como saber si la fuente es entrelazada ANTES de empezar a codificar para no tenerlo que hacer siempre...

----------

## Prodater64

 *oCHARLIEo wrote:*   

> Con el sample Entrelazado que ha pasado Prodater64 no rula bien... da mensajes de error diciendo que si hemos desentrelazado la fuente original y que utilizemos la opcion -ni. Supongo que aki deberemos usar un filtro de telecine inverso, pero esto no ralentizara?? y lo mas importante... no veo como saber si la fuente es entrelazada ANTES de empezar a codificar para no tenerlo que hacer siempre...

 

1 - Puedes hacerlo sin desentrelazar, con las opciones que dicen en un post mío que apuntaba a la documentación. Tambien puedes desentrelazar, yo uso kerndeint, ya lo había dicho. Los mensajes de error puede ser por que el corte no está muy fino, es una parte de un vob al que tal vez le hayan quitado cabeceras, información o índice. Pero a mí me queda completamente en sincronía, mas lento pero no parece afectar a la visualización, y con soundstretch sin cambo en el tono de los actores.

2 - Lo que no tienes que hacer es telecine inverso, ya que no es un video pulled-down. Nunca a un verdadero 29.97 entrelazado.

3 - Para ver si es entrelazado, reprodúcelo en escenas de alta velocidad, verás el llamado "combing effect" que son unas rayitas horizontales que parecen un artefacto o interferencia, muy fugaces.

----------

## Prodater64

Bueno, a ver qué les parece.

Está codificado entrelazado a entrelazado, aunque no se vea mucho el efecto combing.

http://s13.yousendit.com/d.aspx?id=29D183A0C04D2F6C74255388691DE697

Pero por favor, respondan algo de los samples que subo, por lo menos para justificar el que los suba, gracias.

----------

## Sertinell

Perdona qe no te comentara nada, Llevo 2 dias mas liado de lo normal, y mi experiencia con el entrelazado es nula total, por eso no he dixo nada, cuando estudie, experimente y adquiera base para poder opinar lo ara, tu trankilo  :Wink: 

una cosilla, en la de equilibrium, el audio no, pero los subtitulos si se te han desincronizado. Pa qe veas qe si los miro  :Wink: 

Saludos

----------

## Prodater64

 *Sertinell wrote:*   

> Perdona qe no te comentara nada, Llevo 2 dias mas liado de lo normal, y mi experiencia con el entrelazado es nula total, por eso no he dixo nada, cuando estudie, experimente y adquiera base para poder opinar lo ara, tu trankilo 
> 
> una cosilla, en la de equilibrium, el audio no, pero los subtitulos si se te han desincronizado. Pa qe veas qe si los miro 
> 
> Saludos

 

Los subtítulos ya estaban puestos en la 23.976, al pasarla a 25 se desincronizaron. Sólo quería mostrar de que forma Mencoder mejoraba un avi regular bajo, y de paso subía esa escena que es una pasada.

----------

## Sertinell

correcto, desde qe vi esa escena estoy buscando la pelicula  :Smile:   :Wink: 

----------

## Prodater64

 *Sertinell wrote:*   

> correcto, desde qe vi esa escena estoy buscando la pelicula  

 

En España no fue comercializada.

----------

## erflako

Prodater , estas subiendo samples de 110 MB . Ten piedad . Es bueno tener un trozo grande para evaluar lo conseguido , pero aguantar una descarga de 100 MB con la conexion de 256 kB de m.....a que tengo es un verdadero coñazo . Se acaba de cortar tu ultimo ejemplo y se va a quedar para mas tarde .

Charlie ¿ que se supone que hace el trozo de codigo que has posteado ? Si es para tratar el audio aparte con soundstretch - vale , pero así , a secas , desincroniza . En un trozo de 90 s 23,976 fps se retrasó el audio con mas o menos 2 s ( lo justo según los calculos ) . No se que idea tenias cuando pusiste el codigo . O yo no lo he entendido .

Tambien Charlie comentó hace tiempo algo acerca de que mencoder insertaba o eliminaba frames . Creo que era mencoder . He repasado casi todo el manual y esto es lo que encontré :

FILTROS DE VIDEO

       Los filtros de video son plugins que permiten modificar el

       flujo de video y sus propiedades. .............

...............

Los filtros disponibles son:

...............

	filmdint[=opciones]

              Filtro  de  telecine  inverso,  similar  al  filtro

              pullup de arriba.  Está diseñado  para  manejar  un

              patrón  pulldown,  incluyendo mezcla por software y

              telecine por hard y limitado para soportar  pelícu­

              las que han sido ralentizadas o aceleradas desde su

              tasa de bits original para  TV. ..............

........................

[y esto aquí es una opción del filtro]

		io=ifps:ofps

                      Para  cada ifps marcos de imagen de entrada

                      el  filtro  proporciona  ofps  marcos.   La

                      razón ifps/ofps debe coincidir con la razón

                      -fps/-ofps.  Esto puede usarse para filtrar

                      películas de broadcast en una TV a la razón

                      de imágenes por segundo distinta a la orig­

                      inal.

Sirve , no sirve .¿ O he llegado tarde ?

----------

## Prodater64

 *erflako wrote:*   

> Prodater , estas subiendo samples de 110 MB . Ten piedad . Es bueno tener un trozo grande para evaluar lo conseguido , pero aguantar una descarga de 100 MB con la conexion de 256 kB de m.....a que tengo es un verdadero coñazo . Se acaba de cortar tu ultimo ejemplo y se va a quedar para mas tarde .

 

Bueno, disculpa.

Cuando necesiten algun sample, díganme de que tamaño lo quieren.

Disculpen las molestias.

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Charlie ¿ que se supone que hace el trozo de codigo que has posteado ?

 

Teoricamente, arreglaba el problema de la desincronizacion de A/V, yo lo he probado y me funciona bien... ¿por que no cuelgas el sample para que vea que pasa?

Por que la verdad es que no me extrañaria que no se comportara igual con distintos tipo de fuentes...

 *Quote:*   

> 
> 
> Bueno, disculpa. 
> 
> Cuando necesiten algun sample, díganme de que tamaño lo quieren. 
> ...

 

Pero no te disculpes por echar una mano, hombre. Ya es lo que faltaba... los samples que has puesto nos han venido muy bien. Muchas gracias

----------

## erflako

Jodeer , Prodater , no tenia intención de ofenderte , hombre . Por supuesto que se agradece muchisimo el esfuerzo y la ayuda . Me quejaba del tiempo de la descarga - 100 MB me tardan mas de dos horas y en una descarga directa es muy probable que se joda la coneccion . Y todo al carajo . No te lo tomes así . Perdona si te he ofendido .

Mañana intentaré subir un trozo de +-50 MB del fichero que me desincroniza . Voy a hacer una prueba con otro fichero porque parece que esto es un screener y , ya sabemos lo cutres que son .

Charlie , hazme un favor - enviame tu iptables y , si usas router , la tabla de enrutamiento . Intento hacer lo de no-ip redireccionando puerto 80 a 8080 y no entra en mi maquina . Si lo consigo no me hará falta subir etc. Todo lo tendré aquí . Si me lo mandas puedes hacerlo en un mensaje privado ( si no quieres que se vea lo que tienes ) .

Lo del manual no tiene ningun efecto . El filtro ese lo pongo en la vaariable VF ( que por ahí tiene que estar ) pero desincroniza igual .

Si Charlie lo ha conseguido - será que yo hago algo mal . Subelo en tu script .

----------

## Prodater64

 *erflako wrote:*   

> Jodeer , Prodater , no tenia intención de ofenderte , hombre. 

 

Si no lo tomé como una ofensa.

No pasa nada, está todo bien.

Simplemente que si necesitas algo me digas de que tamaño lo quieres y ya no habrá problemas, lo ajusto a eso y listo.

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Charlie , hazme un favor - enviame tu iptables y , si usas router , la tabla de enrutamiento . Intento hacer lo de no-ip redireccionando puerto 80 a 8080 y no entra en mi maquina . Si lo consigo no me hará falta subir etc. Todo lo tendré aquí . Si me lo mandas puedes hacerlo en un mensaje privado ( si no quieres que se vea lo que tienes ) . 
> 
> 

 

Perdona que haya tardado en contestar, ultimamente estoy liado en el trabajo. Entiendo que lo que quieres es redireccionar el puerto 80 de tu router al puerto 8080 de tu ordenador... y la verdad es que si es eso no hay nada que yo te pueda dar que te vaya a servir porque yo no lo tengo asi...

Yo no tengo router, tengo cablemodem (a todos los efectos se comporta como un bridge) y por tanto no he tenido que redireccionar el puerto para nada... Si me dices que modelo de router tienes busco por aqui uno como el tuyo y te intento decir como configurarlo... Por cierto, voy a suponer que has modificado la configuracion del apache para que escuche en el 8080... ten en cuenta que por defecto escucha en el 80...

Un saludo

----------

## erflako

El router es un USRobotics Sure Connect y el apache está bien configurado ( al 8080 ) . Hace tiempo lo hice pero ya no me acuerdo como cambié la tabla del enrutamiento . Tampoco tenia iptables en ese momento . Por eso te pedia la informacion .

Ahora al tajo - he intentado con otro fichero . Tampoco va . Parece que el fichero tiene algun fallo , porque en un trozo de 20 MB hace algo pero haciendolo a 30 MB salta esto :

AVI file format detected.

Cannot seek backward in linear streams!

Pos: 230,4s   5760f (99%) 1561fps Trem:   0min   0mb  A-V:0,042 [963:126]

Writing AVI index...

Fixing AVI header...

ODML: Aspect information not (yet?) available or unspecified, not writing vprp header.

AVI: Missing video stream!? Contact the author, it may be a bug  :Sad: 

============ Sorry, this file format is not recognized/supported =============

=== If this file is an AVI, ASF or MPEG stream, please contact the author! ===

Cannot open demuxer.

Exiting..

Y hasta ahí .

Otra cosa - lo que has puesto a mi me funciona solo con una pasada . ¿ O tengo que ponerlo en la primera tambien ?

No se . No me aclaro muy bien . Tampoco tengo ficheros de 29,97 fps. Hago todas las pruebas con 23,976 . Vaya suerte - cuando te hace falta - no tienes ninguno .

No me da tiempo de subir nada de ejemplos en la pagina .

Charlie , pon tu version del script , aunque sea de prueba .

----------

## Prodater64

Alguien sabe si puedo hacer pipes en WindowsXP?

Se puede redirigir las salidas por pantalla y los errores, pero no encuentro la forma de redirigir la salida al disco (el archivo codificado) para que lo utilice otra herramienta.

Además no puedo redirigir la salida (primer paso) a nul.

----------

## Sertinell

hola, por lo pronto he encontrado esto, nose si te servira, por lo qe yo he entendido, el codigo debe estar dentro del ejecutable, pero como sabes , mi ingles es mas bien pobre   :Embarassed: 

Saludos

----------

## Prodater64

 *Sertinell wrote:*   

> hola, por lo pronto he encontrado esto, nose si te servira, por lo qe yo he entendido, el codigo debe estar dentro del ejecutable, pero como sabes , mi ingles es mas bien pobre  
> 
> Saludos

 

Si es, no lo entiendo, aunque está hablando de C++, y lo que yo quiero es hacerlo desde CLI.

----------

## erflako

Se ve poco movimiento por aquí ultimamente .

Le sigo dando vueltas y vueltas al tema de los fps y no saco nada claro .

Tampoco consigo hacer bien la configuración del router para lo del no-ip y no puedo poner los samples que me pidió Charlie .

He probado una cosilla con transcode ( que no se ofenda Sertinell ) y os comento lo que pasó :

el fichero es xvid , resolucion 576X304 , bitrate 402664 y el audio mp3 , bitrate 32 85 . Los datos son del script .

Luego lo paso por transcode :

```

#transcode -i fichero.avi -f 23.976,1 --export_fps 25.000,3 -y xvid4 -o fichero_25.avi

```

El intento es de dejar los fps a 25 . Y lo conseguí , claro . Se tarda , ejem , relativamente - poco . A lo bruto - la mitad del tiempo de reproducción de la peli .

A la salida los datos que proporciona el script ( los interesantes ) son :

en el video cambia el bitrate a 361048 y el audio bitrate a 128 . No se si esto tendra mucha importancia .

Ahora viene lo peor - la imagen sale al reves . Como si se mirara por detras . El mismo problema lo tuve en el principio cuando trasteaba con transcode y lo comente aquí . No he conseguido darle la vuelta para que se vea bien .

No se me ocurre nada .

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Ahora viene lo peor - la imagen sale al reves . Como si se mirara por detras . El mismo problema lo tuve en el principio cuando trasteaba con transcode y lo comente aquí . No he conseguido darle la vuelta para que se vea bien . 
> 
> No se me ocurre nada
> ...

 

X-D De las man de transcode:

```

   -z     flip video frame upside down [off].

```

 *Quote:*   

> 
> 
> He probado una cosilla con transcode ( que no se ofenda Sertinell )
> 
> 

 

Es una opinion personal, pero yo la verdad es que no he visto la tremenda superioridad de mencoder sobre cualquier otro codificador... eso si, liblavc es de lo mejor que he visto comprimiendo mpeg... pero mencoder no es liblavc... de hecho liblavc es una libreria, y como tal se puede usar desde muchos sitios, por ejemplo desde ffmpeg (que ademas es de los creadores de liblavc) y estoy seguro que transcode tb puede usar liblavc... en fin, no quiero crear polemica, es solo que despues de pegarme durante dias con mencoder no me ha dejado buen sabor de boca... pero esto es solo una opinion personal, que conste!!

No he tenido mucho tiempo... he estado fuera, a ver si esta tarde cuelgo el script que pedias erflako ^_^

Un saludo

----------

## Sertinell

 *Quote:*   

> 
> 
> Es una opinion personal, pero yo la verdad es que no he visto la tremenda superioridad de mencoder sobre cualquier otro codificador... eso si, liblavc es de lo mejor que he visto comprimiendo mpeg... pero mencoder no es liblavc... de hecho liblavc es una libreria, y como tal se puede usar desde muchos sitios, por ejemplo desde ffmpeg (que ademas es de los creadores de liblavc) y estoy seguro que transcode tb puede usar liblavc... en fin, no quiero crear polemica, es solo que despues de pegarme durante dias con mencoder no me ha dejado buen sabor de boca... pero esto es solo una opinion personal, que conste!! 

  Vale..., ya parece qe esto es una mania mia, a mi me gusta mas mencoder qe transcode, pero no tengo ningun inconveniente en usar transcode, de hecho antes lo usaba , y lo uso cuando algo se le atraviesa a mencoder (creo qe todos sabemos qe no es perfecto)  :Rolling Eyes:  ...

No tengo ningun incoveniente en qe introduzcais una flag qe cambie entre mencoder y transcode, yo seguire usando mencoder, por qe me va mas rapido, por qe lo veo mejor y por qe, sencillamente, a mi me gusta mas.  :Twisted Evil:  . O podemos tambien hacer varios script, si vosotros preferis transcode y no os gusta la idea de una flag pues podemos hacer varias "versiones" del script, una con mencoder, otra con transcode, no veo por donde esta el problema  :Wink:  . Por supuesto en ese caso, yo seguire colaborando, e intercambiando ideas y codigo  :Wink: .

Por favor no pidais mas disculpas cada vez qe nombrais a transcode, qe parece qe estoy loco !! o qe me pagan los desarrolladores de mencoder !! 

FFmpeg, tengo qe probarlo, en su dia lo mire, al principio de usar linux, pero no llegue a entenderlo, si trabaja mejor qe mencoder con las libavcodec me parece qe ya se hacia donde desviare mis esfuerzos  :Smile: ...

Saludos

----------

## erflako

Charlie , gracias por la opcion "-z" . Funciona a la perfeccion . No me habia leido todo el manual .  :Embarassed: 

Sertinell , no se trata de cabezoneria ni de locuras . Nada de eso . Mi idea era usar transcode para los fps porque si con mencoder no progresamos hay que buscar otra solucion . La conversion puede quedarse así sin problemas . Ademas mencoder lo está haciendo bastante bien ( para mi gusto ) .

Ahora se plantea otra pregunta - si para los avi de 25.000 fps usamos mencoder todo está bien , pero para una peli de 23.97 o 29.976 fps hacemos una conversion con transcode para pasarla a 25.000 fps y luego le pasamos mencoder - tardamos bastante .

( Pido disculpas - el tiempo de la pasada de transcode es exactamente el tiempo que dura la pelicula mas algo para las cosillas que se hacen aparte . Es un error mio de anoche . )

A lo que voy - a alguien le podría parecr buena idea de poner directamente las opciones de codificacion a mpeg2 . Pero esto ya sería otro script usando solamente transcode .

Ya que estamos dando opiniones personales - daré la mia tambien :

yo dejaría el script como está . Mencoder lo veo mas rapido . Se añade una comprobación de los input_fps ( que ya la hay ) y si no son 25 se hace una pasadita con transcode y luego la conversión como la tenemos . Se perderá tiempo en la conversion de los fps , pero no veo otra . Lo que propuso Charlie a mi no me funcionó , y el mismo dijo que no era muy estable .

La idea de Charlie de poner opcion "no_ac3" me parece buena - se hace el mejor audio posible segun codec y tipo ( dvd , svcd ... ) y con "no_ac3" obligatoriamente dejamos mp2 . Tiene sentido sobre todo para dvd - si tienes ac3 pero no lo quieres - "--no_ac3" , si no - por defecto hace ac3 . En un svcd es mas util hacer mp2 por el tema de espacio .

Y hablando de espacio - deberiamos de buscar la manera de hacer dos ficheros de 700 MB - para los svcd de mas calidad . Pero esto hacerlo automaticamente en el script .

----------

## Prodater64

 *Sertinell wrote:*   

> Pues efectivamente no se comporta igual al trabajar con las libavcodec, no duplica los frames necesarios por lo qe el fixero resultante esta en sincronia con el FILE(25).wav.

 

Yo creo que en las pruebas has cometido un pequeño error, ya que aún utilizando libavcodec "salta" o "agrega" frames, según el caso para mantener el audio sincronizado.

Lo que debió haber pasado es que con la prueba sin utilizar libavcodec no usaste la opción -noskip, y en la prueba de libavcodec si.

Con estas pruebas que he hecho, más lo que llevo leido de toda la documentación, mailing list, etc., creo poder decirles sin equivocarme, que Mencoder no realiza ningún cambio de fps del audio, sino que agrega o quita cuadros para mantener el audio en sincronía, utilice o no libavcodec, a menos que usen la opción -noskip.

Mi opinión es que la mejor opción no puede pasar nunca por agregar o quitar frames, ya que seguramente se traducirá en saltos del video reproducido, por lo tanto, usen Mencoder con -noskip para el video, y SoundStretch para el audio.

Editado:

Ultimo momento, me costó pero les traigo otra solución.

Solo para 23.976 -> 25 y visceversa, ya que hay un pequeño cambio del pitch que no tiene ninguna importancia.

Codifiquen con Mencoder el Video.

Recodifiquen el audio con MPlayer con las opciones -ao pcm

y lo más importante:

utilicen la opción -speed x.xxxx

23.976 -> 25 x.xxxx = 1.0427

25 -> 23.976 x.xxxx = 0,9590

Obtendrán un wav, deberán convertirlo a mp2 y multiplexarlo con el video obtenido (recuerden utilizar la opción -noskip)

----------

## erflako

Prodater :

Mi opinión es que la mejor opción no puede pasar nunca por agregar o quitar frames, ya que seguramente se traducirá en saltos del video reproducido, por lo tanto, usen Mencoder con -noskip para el video, y SoundStretch para el audio. 

Siento discrepar pero no puedo esstar menos deacuerdo contigo .

Si tenemos un problema de video ( la diferencia en los fps ) no es logico intentar solucionarlo tratando el audio . Si el problema es del video - trata el video .

En fin , si te duele la cabeza no te haces daño al dedo para no sentir el dolor .

El problema de los posibles saltos ( que tambien pueden ser ralentizaciones , por lo menos en teoria ) esta por ver y comprobar . Pero insisto - el problema es del video . SoundTouch será lo mejor en tratamiento de audio , tendrá su aplicacion , pero en el caso - no .

Es mi opinion .

----------

## Prodater64

 *erflako wrote:*   

> Prodater :
> 
> Siento discrepar pero no puedo esstar menos deacuerdo contigo .
> 
> 

 

Cada uno puede tener su opinión...

Y su experiencia.

Si lo que dices fuera cierto, entonces acabas de descubrir que una gran cantidad de gente, super expertos, están equivocados.

 :Rolling Eyes: 

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Mi opinión es que la mejor opción no puede pasar nunca por agregar o quitar frames, ya que seguramente se traducirá en saltos del video reproducido
> 
> 

 

Eso no tiene por que ser asi, depende mucho de como insertes esos frames de mas... logicamente a la manera de mencoder, que suceda esto es mas que probable, a mi todavia me sorprende que funcione!!

Pero te garantizo que yo llevo unos 40 capitulos de Rurouni Kenshin convertidos a DVD PAL estandar y ese efecto saltito cuando hay un scroll es practicamente inexistente... basta con interpolar el/los frames que faltan a partir de los demas, pero claro, esto con mencoder es imposible.

 *Quote:*   

> 
> 
> usen Mencoder con -noskip para el video, y SoundStretch para el audio.
> 
> 

 

Yo aqui, lo siento mucho, pero tampoco estoy de acuerdo. 

Me gusta ver las peliculas con su tempo original, a lo mejor es una mania mia... pero los actores y directores gastan mucho tiempo y repiten muchas tomas para conseguir las escenas con el tempo que quieren/necesitan... a mi no me gusta cambiarlo.

 *Quote:*   

> 
> 
> Si lo que dices fuera cierto, entonces acabas de descubrir que una gran cantidad de gente, super expertos, están equivocados
> 
> 

 

Lo que digan los demas a mi personalmente no me importa mucho, por supuesto valoro la experiencia de cada uno y me dejo influenciar por sus conocimientos, pero en ultima instancia las cosas las debe experimentar cada uno, y cada persona tiene su forma de ver las cosas... sino seriamos como borregos y todavia creeriamos que la tierra es plana solo por que asi lo creian cantidad de gente, super expertos

----------

## Prodater64

 *oCHARLIEo wrote:*   

> 
> 
> Pero te garantizo que yo llevo unos 40 capitulos de Rurouni Kenshin convertidos a DVD PAL estandar y ese efecto saltito cuando hay un scroll es practicamente inexistente... basta con interpolar el/los frames que faltan a partir de los demas, pero claro, esto con mencoder es imposible.
> 
> 

 

Lógicamente que si te restringes a pensar que todas las codificaciones son de 23.976 a 25, no puedas ver que en el sentido inverso, el quitar frames y no duplicarlas, si puede hacer visible el efecto saltito.

A mi no me consta que mencoder inserte o quite frames de una mala manera. El hecho es que no hay forma de quitar frames de una buena manera.

 *Quote:*   

> 
> 
> Yo aqui, lo siento mucho, pero tampoco estoy de acuerdo. 
> 
> Me gusta ver las peliculas con su tempo original, a lo mejor es una mania mia... pero los actores y directores gastan mucho tiempo y repiten muchas tomas para conseguir las escenas con el tempo que quieren/necesitan... a mi no me gusta cambiarlo.
> ...

 

Preferible modificar el tiempo y no ver efecto saltito.

Yo te puedo asegurar que si te pongo mil películas con el tiempo cambiado de 23.976 a 25 o visceversa, te las comes como el mejor, y hasta terminarías alabando lo bien que lo hizo el director.

 *Quote:*   

> Lo que digan los demas a mi personalmente no me importa mucho, por supuesto valoro la experiencia de cada uno y me dejo influenciar por sus conocimientos, pero en ultima instancia las cosas las debe experimentar cada uno, y cada persona tiene su forma de ver las cosas... sino seriamos como borregos y todavia creeriamos que la tierra es plana solo por que asi lo creian cantidad de gente, super expertos

 

Estoy completamente de acuerdo, pero no veo que tu aqui me traigas una nueva idea de que la tierra es redonda. Antes de poder experimentar, tienes que saber experimentar. Y si empiezas por decir que lo que digan los demas... y valoro la experiencia y me dejo influenciar..., primero que es una contradicción, y segundo es que no te tienes que dejar influenciar, de eso se trata, tienes que comprobar que lo que te dicen es cierto. Y si no lo es, demostrarlo con hechos, no con palabras.

Al fin de todo, yo lo único que quiero hacer es facilitarles las cosas, yo no uso Linux, y por lo que veo, últimamente soy el único que postea posibles soluciones. A ver si en vez de decir no estoy de acuerdo, etc. etc., plantean alguna solución viable.

Por cierto, probaron AVIDemux?

----------

## erflako

1. Charlie , dices de 40 capitulos convertidos a pal dvd - lo hiciste tu ? como ?

2. Prodater , yo tambien propuse la solucion de transcode , que aunque aumenta el tiempo de conversion y es otra dependencia no deja de ser una solucion . ¿ Que no nos/os gusta ? Ya veremos . ¿ Que hay mejores soluciones ? Tambien veremos , evaluaremos , comprobaremos , optimizaremos y al final elegiremos la mas optima .

Ahora mismo os propongo una - un programita en cualquier ( C ) lenguaje compilado que lee el avi en trozos de 1 segundo , elige el frame con menos peso ( el criterio está por ver - el mas "negro" , el que se repite mas de dos veces seguidas , el que menos se repite , el ultimo ... ) y lo duplica . Si se elige bien un criterio no muy complicado ( el frame Nº24 , por ejemplo ) el retardo en la conversion será minimo - lo unico que se hace es leer el fichero y en pipe no se notará y contar frames . Para 29,97 -> 25 cosa parecida - se van quitando segun ... Y luego las fracciones que son otro bucle ...

¿ Que porque no lo he hecho ? No tengo tiempo , soy vago , no domino C ( es la verdad ) . ¿ Quereis mas excusas ?

Lo de los saltos - muy mal tiene que estar la cosa para apreciar unos saltos terribles . El ojo humano retiene la imagen 0,1 s despues de haber desaparecido esta y aun con 15 fps no ves fotogramas sino una imagen fluida . Si de 30 quitamos 5 no vas a ver trompicones . Menos si a 24 le añadimos 1 .

Y otra cosilla , Prodater . Te noto tenso . Sabemos que no eres usuario de Linux , que te estas tirando el rollo etc. Pero ultimamente cada vez que se menciona SoundTouch te pones como ofendido . No se trata de ofenderse ni de imponer la opinion o los gustos . En un foro , pensaba yo , era cuestion de opinar , compartir . En el caso concreto - buscabamos una solicion . Tu propones , yo propongo , el propone . Todos opinamos . Pero no me parece bien sentirse ofendido . No creo que te hayamos tratado como a uno de "fuera" . Simplemente no opinamos igual que tu . Sertinell no ha dicho casi nada , pero ya nos lo dirá . Y como dije antes - si te duele la cabeza buscas una pastilla , no la maceta pa' pegarte en el dedo .

Y no he probado avidemux . Me lo apunto .

----------

## Prodater64

Yo no trato de imponer nada, sólo aporto ideas y son ustedes, usuarios de linux, los que tienen que decidir.

Lo que me molesta es que no aporten una solución mejor en lugar de "yo con eso no estoy de acuerdo".

Editado: Pero bueno, haya paz. No pasa nada, los entiendo.

 :Wink: Last edited by Prodater64 on Sun Nov 14, 2004 1:00 am; edited 1 time in total

----------

## Sertinell

Creo qe estoesta degenerando muxo ... y eso no me gusta ... 

A ver ... voy a dar mi opinion respecto a os frames y el sonido. Yo siempre lo he hecho de la misma manera, para 23.976 ->25 cambio el audio , para 29.970-> 25 cambio el video...  Esto es cuestion de gustos y como tales creo qe podriamos dejar las 2 opciones al usuario, total, de una a otra opcion es una linea de codigo, un peqeño cambio de opciones y una (o dos) dependencias mas (Soundtouch o transcode,si no se pudiera tratar el video con mencoder ... ). 

Por favor charlie, podrias publicar lo q llevas, qe le heche un ojo,y empiece a implementar con lo frames ultimamente me veo con ganas de trabajar  :Wink: , y si a ti no te gusta mencoder, prefiero experimentar yo y no incomodarte  :Smile:  . 

Respecto a qe mencoder con las libavcodec no cambia los rames creo qe ha sido un error mio desde el principio, el problema es la opcion -noskip, qe figura en la linea de comandos de mencoder. *Quote:*   

> 	-noskip
> 
> 	No se salta imágenes.

 

Ni se salta, ni añade, ni nada ... Prometo repetir las pruebas  :Smile: 

 *Quote:*   

> Por cierto, probaron AVIDemux?

 

Si, al igual qe Fmpeg, al principio de mi andadura por linux ... La verdad no me convencio, para tareas de este estilo no me convencen casi nunca las gui's, ademas avidemux, es bastante inestable, tiende a cascar durante su uso. Y la idea de hacer un script, por lo menos por mi parte, es cojer escribir una sola linea, simple y llana y qe el se encargue de hacer todo el trabajo, nada de ir dandole a los botoncitos  :Smile: 

 *Quote:*   

> Preferible modificar el tiempo y no ver efecto saltito.
> 
> Yo te puedo asegurar que si te pongo mil películas con el tiempo cambiado de 23.976 a 25 o visceversa, te las comes como el mejor, y hasta terminarías alabando lo bien que lo hizo el director. 

 Estoooo.. Si me pones una peli qe a 29.97 FPS duraba 2 Horas y ahora dura 139 Mins pues como qe podria acabar asta las narices como la pelicula no sea MUY entretenida XD, Es solo una broma, no son ganas de chinchar  :Razz: 

No veo por qe enzarzarnos en una discusion acerca de qe es mejor, simplemente colaboremos, creemos la herramienta, y q cada uno haga lo qe le plazca  :Wink: 

Saludos y haya paz

----------

## Prodater64

Bueno, trabajando en aquello sobre lo que discutimos recientemente, y que estoy investigando en los foros que frecuento, se ve que muchas veces para los cambios desde 23.976 a 25 fps o visceversa, se utiliza la opción de no quitar frames y modificar (un 4%) la duración de la película. Y también modificar el audio (algunos con cambio y otros sin cambio de pitch).

Para la conversión de 29.97 entrelazado, primero separan los campos y lo llevan a 60 fps, para luego hacer un blend (funden 2 cuadros en 1 según se necesite) de cuadros con un filtro especial de avisynth (convertFPS). Esto es quitar cuadros, pero reemplazando con uno que tiene la información contenida en el cuadro quitado además de la propia.

Posteriormente restauran los campos a 25 fps.

Bien, entonces aquí hay otra posible solución, contemplando el hecho de que quieren mantener la duración de la película.

 *Quote:*   

> "D:\MPlayer\Mencoder.exe" -of mpeg -ffourcc MPG2 -sws 2 -noaspect -noautoexpand -vf crop=710:480:5:0,scale=320:432::0:9,expand=352:480:-1:-1 -ovc lavc -oac lavc -lavcopts acodec=mp2:abitrate=128:vcodec=mpeg2video:dc=8:vrc_eq=tex:vmax_b_frames=2:preme=2:precmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=.5:aspect=1.3333:vrc_buf_size=1835:vbitrate=1800:vrc_maxrate=2500:keyint=15:intra_matrix=notch matrix -ofps 25 "E:\29I25B.vob" -o "E:\29I25B.mpg"

 

Hay valores que tienen que modificar según los cálculos automáticos de sus scripts.

-ffourcc MPG2 le pondrá al archivo en la cabecera la información de que es un mpeg2.

-ffourcc MPG1 lo mismo pero mpeg1.

Esta línea de comandos les generará un mpg multiplexado.

Está hecha para un solo paso, para 2 deben poner las opciones vpass correspondientes. En la primera pasada puede especificarse -nosound y se evita la codificación del audio.

Hay otras opciones para usar del audio volume, channels, resample (esta es importante), etc.

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Por favor charlie, podrias publicar lo q llevas, qe le heche un ojo,y empiece a implementar con lo frames ultimamente me veo con ganas de trabajar , y si a ti no te gusta mencoder, prefiero experimentar yo y no incomodarte
> 
> 

 

Por favor Sertinell no me incomoda, no tengo ningun problema, los comentarios que hago sobre mencoder es porque me crispa que los programas no se comporten siempre de la misma forma, no por que me moleste que me digas cualquier cosa... 

Ya esta colgado el script con la variacion que hice para el cambio de fps, probadla y me contais. La parte del sonido no esta fina aun (sorry, no time) he metido el parametro --no_ac3 que me ha parecido mas logico pero aun no me he metido en profundidad en el sonido, ya que hay veces que falla al especificar un intervalo (peta el mplayer). Estoy trabajando en un workaround...

 *Quote:*   

> 
> 
> Por cierto, probaron AVIDemux?
> 
> 

 

pues si, lo uso a veces para cosas muy rapidas... pero no es demasiado fiable, aunque las ultimas versiones han mejorado mucho...

 *Quote:*   

> 
> 
> No veo por qe enzarzarnos en una discusion acerca de qe es mejor, simplemente colaboremos, creemos la herramienta, y q cada uno haga lo qe le plazca
> 
> 

 

Estoy de acuerdo contigo, pero creo que es importante establecer unas bases sobre las que trabajar por que sino cada uno acabariamos trabajando en una direccion y no habria forma de colaborar... estos tiras y aflojas son normales en proyectos conjuntos, todo el mundo cree que su opinion es la buena (me incluyo, por supuesto)...

Por favor no nos asustemos con estas cosas... son normales, solo es necesario tomarselas con filosofia y sin mosquearse, que aqui creo que lo que pretendemos todos es colaborar. Discutir es bueno si se avanza!! XD

No voy a contestar a la mayoria de las cosas que se han dicho por que entramos en un circulo vicioso que no viene a cuento (creo yo)...

Intentare convertir un video de 29.97 a 25 para comprobar si aparecen esos saltos que comenta Prodater y me gustaria investigar un poco como esta ffmpeg ultimamente. Intentare obtener resultados pronto, pero un poco de paciencia por favor, que tengo un trabajo, una novia y un gato y no doy a basto ^_^

 *Quote:*   

> 
> 
> 1. Charlie , dices de 40 capitulos convertidos a pal dvd - lo hiciste tu ? como ? 
> 
> 

 

Sip, con transcode... cuando publique en el foro el primer script, ¿recuerdas que te comente que estaba trabajando en otro? pues con este...

Venga, un saludo

----------

## erflako

Charlie , manda tus opciones de transcode para los fps . 

He intentado unas cosas que no me van , con lo que tienes tu para mencoder - tampoco .

Le he hecho un apaño ( con un fichero intermedio ) pero no va . 

En el mejor de los casos desincroniza menos pero solo con una pasada . 

En la segunda se va otra vez .

Estoy medio desesperado .

Tampoco consigo hacer bien lo del no-ip y no puedo poner ningun sample .

Saludos .

----------

## Sertinell

 *Quote:*   

> He intentado unas cosas que no me van , con lo que tienes tu para mencoder - tampoco . 

 

Charlie, en tu script hay un fallo al meter el archivo por la tuberia, si utilizas la opcion --noskip el avi qe lanza estara desincronizado, por lo menos en mis pruebas   :Rolling Eyes: 

```
mencoder -quiet $INTERVAL -noskip -oac copy -ovc copy -ofps $OUTPUT_V_FPS
```

El noskip ese es el qe sobra, mejor qe poner eso creo qe es quitar el noskip de nuestra linea de mencoder cuando haya qe cambiar los FPS, nos ahorramos un proceso.

Estoy trasteando con soundtouch, qe nombre os parece bien para una opcion qe active soundtouch ? he puesto --sountouch, original qe es uno  :Very Happy: 

Saludos

----------

## Sertinell

He actualizado el script, dentro he puesto los cambios, en la seccion chngelog, creo qe deberiamos ir añadiendolos ahi, para qe sea mas facil buscar lo qe cmbiamos cada uno   :Smile: 

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

Enseguida creo qe subire una actualizacioncon lo de -noskip qe comente, voy a hacer las pruebecillas  :Smile: 

Saludos

----------

## Prodater64

 *Sertinell wrote:*   

> He actualizado el script, dentro he puesto los cambios, en la seccion chngelog, creo qe deberiamos ir añadiendolos ahi, para qe sea mas facil buscar lo qe cmbiamos cada uno  
> 
> http://sertinell.spymac.net/dir2dvd_15_11_2004.bash
> 
> Enseguida creo qe subire una actualizacioncon lo de -noskip qe comente, voy a hacer las pruebecillas 
> ...

 

No te sirve la última línea de comandos que posteé, que saca un mpeg hecho y derecho?

La has leido, ya que en el script nuevo no la utilizas.

Bueno, luego me cuentas.

----------

## Sertinell

 *Prodater64 wrote:*   

>  *Sertinell wrote:*   He actualizado el script, dentro he puesto los cambios, en la seccion chngelog, creo qe deberiamos ir añadiendolos ahi, para qe sea mas facil buscar lo qe cmbiamos cada uno  
> 
> http://sertinell.spymac.net/dir2dvd_15_11_2004.bash
> 
> Enseguida creo qe subire una actualizacioncon lo de -noskip qe comente, voy a hacer las pruebecillas 
> ...

  Umm si la he leido , pero codifica mp2con las libavcodec, y mis pruebas con estas no fueron satisfactorias, quizas en la ultima version de libavcodec lo hayan mejorado, voy a mirar. Ya multiplexa en MPEG correctamente mencoder ?

Un saludo y gracias por el apunte  :Smile: 

----------

## Prodater64

Desde hace tiempo, por lo menos con la última versión oficial que tengo para W32.

Lo que pasa es que en ningún lugar te explican las opciones. Las que ves las he descubierto yo a pulmón.

Ya me dirás si te sirve.

----------

## Sertinell

 *Prodater64 wrote:*   

> Desde hace tiempo, por lo menos con la última versión oficial que tengo para W32.
> 
> Lo que pasa es que en ningún lugar te explican las opciones. Las que ves las he descubierto yo a pulmón.
> 
> Ya me dirás si te sirve.

 

Pues perfecto, acabas de eliminar las mjpegtools como dependencia, si no hace falta mplex para multiplexar ...  :Smile:  , la puñeta es qe toca rehacer gran parte del script, ademas de qe me siguen sin gustar las libavcodec para hacer mp2. 

El apartado de dependencias qeda asi:

Mencoder: Codificado y multiplexado del video

Toolame: codificado de el audio

Soundtouch: Para sincronizar el audio, solo si el usuario lo desea. Si el usuario no especifica el uso de sondtouch se codifica segun el metodo de Charlie y erflako, sin cambiar el tempo  :Wink:  y con mencoder  :Very Happy: 

Y listo  :Very Happy: 

Estoy con lo de soundtouch, si puedo esta misma noxe lo pongo.  :Wink: 

Gracias de nuevo.

P.D: Buenos pulmones los tuyos Prodater64 XD

----------

## Matei

Holasss, estoy siguiendo el tema pero se me esta poniendo muy muy tecnico,

mi duda es, este scriptin sirve para digamos "meter" un DVD de 9Gb en uno grabable de 4.7Gb? Digamos, que si yo le quiero backupear a un amigo su DVD comprado de U2 (siempre es un  amigo en estos casos, no?   :Wink:  ) tengo manera de "achicarlo" para meterlo en uno de 4.7? si fuera que no, conocen herramientas para ese proposito? 

Gracias por adelantado, espero sus comentarios y disculpen la "interrupcion"   :Rolling Eyes: 

----------

## Sertinell

 *Matei wrote:*   

> Holasss, estoy siguiendo el tema pero se me esta poniendo muy muy tecnico,
> 
> mi duda es, este scriptin sirve para digamos "meter" un DVD de 9Gb en uno grabable de 4.7Gb? Digamos, que si yo le quiero backupear a un amigo su DVD comprado de U2 (siempre es un  amigo en estos casos, no?   ) tengo manera de "achicarlo" para meterlo en uno de 4.7? si fuera que no, conocen herramientas para ese proposito? 
> 
> Gracias por adelantado, espero sus comentarios y disculpen la "interrupcion"  

 

Ahora mismo, estamso centrados en la codificacion desde avi, una codificacion desde DVD seria algo complicadillo ya qe tendrias qe crear una tuberia y qe el script leyera esa tuberia, vamos , qe no te sale practico  :Wink: 

Te cito a un compañero de aqui  :Wink: 

http://www.gnuinos.org/web/viewtopic.php?t=6381&start=0

 *Quote:*   

> 
> 
> 1) Para saber si la peli es DVD5 o DVD9, la abres y miras el tamaño que tiene, si es >4,5 GB es DVD9
> 
> 2) Para pasar de dvd9 a dvd5 yo lo hago en 2 pasos
> ...

 

Tambien puedes tirar de lxdvdrip o de DVD::RIP

Saludos

----------

## Sertinell

Actualizado con un par de cosillas  :Wink: 

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

Saludos

----------

## Prodater64

El equipo oficial de MPlayer tiene una nueva versión de MPlayer/Mencoder. El archivo changelog se refiere a ella como la versión pre6.

Lo importante para Uds. es que ahora codifica el audio a mp2 con toolame.   :Very Happy: 

 *Changelog file................................................... wrote:*   

> Player (1.0)
> 
>   pre6:
> 
>     Security:
> ...

 

La versión que tengo es para W32, pero en el CVS debe estar la versión para Linux.

http://www2.mplayerhq.hu/MPlayer/cvs/

----------

## Sertinell

Gracias por el aviso Prodater, he leido qe parece qe se deben alterar las opciones de mencoder, ya qe las qe usamos actualmente en la nueva version no dan el mismo resultado qe en anteriores. Agradeceria qe me hicieras llegar esos cambios, por aqui o por MP.

Por mi parte seguire usando la version anterior de mplayer/mencoder, simplemente por qe la ultima aun no ha llegado al portage, y la mayoria de gente no usa soft directamente desde las CVS, en la nueva version hay opciones nuevas, y si ademas las qe utilizabamos anteriormente no dan el resultado qe buscamos, yo seguire trabajando con la version actual del portage en ~x86 ( mplayer-1.0-pre5-r4), simplemente por compatibilidad, a no ser qe me informes de una mejora sustancial en velocidad y calidad sobre la version anterior  :Wink:  .

Saludos, y gracias de nuevo.

P.D. Aun tengo qe implementar el qe emencoder sea quien multiplexe el archivo para ahorrarnos el mplex , con la nueva version tambien nos ahorrariamos toolame  :Rolling Eyes:  .

----------

## Prodater64

 *Sertinell wrote:*   

> ... a no ser qe me informes de una mejora sustancial en velocidad y calidad sobre la version anterior  .
> 
> Saludos, y gracias de nuevo.
> 
> P.D. Aun tengo qe implementar el qe emencoder sea quien multiplexe el archivo para ahorrarnos el mplex , con la nueva version tambien nos ahorrariamos toolame  .

 

Creo que para tí no habrá ningún problema, ya que lo que sucedía era cuando se seleccionaba como scaler al sws 2 (bicubic precise), al que parece que le han dado nuevas opciones. Lo he solucionado utilizando para todo el sws 9 (lanczos, al final, he seguido tu corriente).

Siendo así puedes aprovechar el toolame incluido.

Saludos.

----------

## Yuanx

Gente yo he hecho un script para rippear peliculas, teneis la documentacion necesaria y el script en esta URL: http://www.canalgentoo.com/modules.php?name=rippea

Ejemplo del script:

 rippea.sh -b 192 -m 700000 -d /dev/hdc -o enemigos.avi

----------

## oCHARLIEo

Hola!!! he vuelto... ^_^

He estado de vacaciones, sorry. En fin, os traigo noticias. He estado probando lo que comento Prodater de utilizar el mencoder para codificar audio, video y multiplexar a la vez... efectivamente a mi no me funcionaba por que se me habia olvidado la opcion fourcc (muy buena idea Prodater).

Funciona de lujo, pero no me termina de convencer el tema del sonido. No he podido localizar como cambiar la frecuencia de muestreo, ya que con la opcion -af no consigo nada y en las opciones de libavc no encuentro nada...

Si consiguieramos solucionar el tema del audio, esta seria una buena opcion... tarda un poco menos y a mi me da muchos problemas menos, incluso con videos raros...

Por otro lado, he estado probando ffmpeg y la verdad es que me tiene encantado (de momento). La verdad es que esperaba obtener tiempos similares ya que no dejan de ser las librerias libavc y asi a sido, pero ffmpeg tiene mucho mejor soporte para los contenedores mpeg que mencoder. Por lo que he estado viendo, podemos convertir el script facilmente y todas las opciones que pasamos con el parametro -lavcopts a priori parece que estan soportadas en ffmpeg. Si os parece voy a hacer una beta del script con ffmpeg y hacemos unos samples...

Por otro lado, para poder editar facilmente el script desde el trabajo me he montado un wiki en el servidor de casa, y he pensado que podia ser interesante que editaramos el fichero todos directamente en el wiki... de esta forma trabajariamos siempre sobre el trabajo de los demas y no tendriamos que estar mezclando los trabajos ^_^ ¿Que os parece la idea?

Podemos trabajor todos sobre el wiki como si fuera un CVS y cuando tengamos versiones funcionales sacarlas a un fichero e irlas colgando aparte. Lo bueno del wiki es que permite ver cuales han sido los cambios realizados y permite volver a cualquier version anterior... asique podriamos tener el ChangeLog mucho mas controlado...

Un saludo

----------

## Prodater64

@oCHARLIEo

Para cambiar la frecuencia de muestreo en Mencoder, necesitas 2 comandos:

-af resample=44100 (o 48000, lo que necesites)

pero también has de poner la opción:

-srate 44100 (o 48000, lo que necesites)

las 2 son necesarias, por ejemplo así:

```
-af resample=44100 -srate 44100
```

No hace falta que estén una al lado de la otra.

Ya les dije también que se puede incorporar toolame para codificar mp2, ya que como está actualmente el mp2 obtenido es stéreo, y siempre se ha recomendado que sea "dual channel", pero en mi versión pre6 oficial, no está compilado y no se como hacerlo. Si alguien me lo pudiera compilar para W32 de modo que fuera la versión oficial más el toolame, se lo agradecería, ya que sería una pasada.

Por otra parte, estoy trabajando en un frontend, pero lo estoy haciendo en VisualBasic6, que el lo único que tengo y que conozco. Uds. tendrían la posibilidad de compilarlo para unix? La verdad que me gustaría que pudieran aprovecharlo.

Editado: El mencoder está basado completamente en el ffmpeg, por lo tanto no me resulta extraño que te de tan buenos resultados. No se respecto de la velocidad comparativa. De cualquier forma aconsejo compilarlos (cualquiera de los 2 o el que lo soporte, el mencoder si, el ffmpeg no se) con el toolame.

----------

## Sertinell

 *Quote:*   

> 
> 
> Por otra parte, estoy trabajando en un frontend, pero lo estoy haciendo en VisualBasic6, que el lo único que tengo y que conozco. Uds. tendrían la posibilidad de compilarlo para unix? La verdad que me gustaría que pudieran aprovecharlo.
> 
> Editado: El mencoder está basado completamente en el ffmpeg, por lo tanto no me resulta extraño que te de tan buenos resultados. No se respecto de la velocidad comparativa. De cualquier forma aconsejo compilarlos (cualquiera de los 2 o el que lo soporte, el mencoder si, el ffmpeg no se) con el toolame.

 

Respecto al frontend, me temo qe no hay forma de portarlo a UNIX/Linux  :Sad:  , creo qe erflako tambien estaba trabajando en algo parecido, pero no estoy seguro.

Voy a bajar ahora mismo las fuentes desde el CVS y a compilarlo con soporte para toolame. Creo qe con eso el script qedaria tan solo dependiente de mencoder, y de libsoundtouch ( de forma opcional).

Charlie, buenisima idea lo del wiki  :Very Happy: 

Saludos

Editado: Qe no se te olvide poner como version de inicio la ultima editada  :Wink: 

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Respecto al frontend, me temo qe no hay forma de portarlo a UNIX/Linux  , creo qe erflako tambien estaba trabajando en algo parecido, pero no estoy seguro. 
> 
> 

 

Incorrecto!! se puede portar a Linux dependiendo los OCX que se incluyan en el proyecto. Se puede portar casi todo, si no se usan controles muy extraños... En linux existe un proyecto muy bueno que se llama Gambas (http://gambas.sourceforge.net) que funciona muy bien, yo he portado algun programita sencillo que tenia por hay de mis tiempos con windows y funciona muy bien...

 *Quote:*   

> 
> 
> Charlie, buenisima idea lo del wiki  
> 
> 

 

Me alegro que te guste la idea, no sabia si os iba a hacer gracia... a ver si mañana tengo un hueco para subir la ultima version al wiki y crearos unos usuarios para poder editar...

----------

## Sertinell

 *Quote:*   

> 
> 
> Incorrecto!! se puede portar a Linux dependiendo los OCX que se incluyan en el proyecto. Se puede portar casi todo, si no se usan controles muy extraños... En linux existe un proyecto muy bueno que se llama Gambas (http://gambas.sourceforge.net) que funciona muy bien, yo he portado algun programita sencillo que tenia por hay de mis tiempos con windows y funciona muy bien... 

 Me alegro de equivocarme !! Tonces le gorronearemos el frontend a prodater  :Wink: 

Charlie, has conseguido compilar mencoder desde las CVS con soporte para toolame. Esqe  no hay manera, el autodetect no funicona, y parece qe necesita unas librerias de toolame, las cuales no encuentro por ningun sitio ...  :Sad: 

----------

## Prodater64

 *Sertinell wrote:*   

> Voy a bajar ahora mismo las fuentes desde el CVS y a compilarlo con soporte para toolame. Creo qe con eso el script qedaria tan solo dependiente de mencoder, y de libsoundtouch ( de forma opcional).
> 
> 

 

Espero que esto signifique que me compilarás una versión pre6 para Win32 también no?

 :Very Happy:   :Very Happy:   :Very Happy:   :Very Happy: 

----------

## Sertinell

Pues si me entero de como se compila con soporte para toolame, compilare la version de linux, y si me entero como se compila para windows desde linux pues te compilare la version de Win32  :Wink: 

----------

## erflako

MAY DAY MAY DAY tenemos un problema .

Por lo menos yo lo tengo . Esta mañana al intentar un avi->dvd me pasó esto :

```

## fichero de entrada   /mnt/dat/incoming/balto2.avi

## fichero de salida    /mnt/dat/incoming/balto2.mpg

ERROR: No se pudo recolectar informacion del fichero /mnt/dat/incoming/balto2.avi. ¿Es un fichero de Video?

```

Y ya lo tenía hecho , pero no me gustaba . Quería hacerlo otra vez . Y esto me pasa con todos los ficheros avi que tengo por aquí .

Esta es la salida de #emerge -s mplayer (entre otras cosas) :

```

*  media-video/mplayer

      Latest version available: 1.0_pre5-r4

      Latest version installed: 1.0_pre5-r3

      Size of downloaded files: 5,872 kB

      Homepage:    http://www.mplayerhq.hu/

      Description: Media Player for Linux

      License:     GPL-2

```

¿Que versión teneis vosotros? Hace dos dias hice 

```

#emerge -uD world

```

y me parece que va a ser de esto .Se ha estropeado el mplayer de alguna manera .

Sobre el frontend - yo lo hacía en java porque es lo unico que domino mas o menos bien como para hacer una cosa mas compleja  y además es portable . Si alguien se apunta en echar una manita que estoy pillado de tiempo funcionaría en Linux , Win y cualquier otra cosa . Cambiando el script , claro .

Hace tiempo que puse una opcion "-od/--output_dir" porque tenia una particion bastante pequeña y no me cabia el fichero de salida .

¿Os parece bien?

Y una funcion que comprueba la existencia de los programas vitales para el funcionamiento del script - mplayer , toolame etc. Si no los tienes es un poco tonto intentar ejecutar y que te salten errores ¿no?

Otra cosa rarisima que me paso antes de cascar el mplayer - un avi de 25fps - mp3 , es decir normal , al hacerlo se desincronizo el audio una burrada . Lo intenté con svcd y vcd - lo mismo .

Dos preguntas

¿A alguien le ha pasado?

¿Hay alguna manera de comprobar la cabecera del avi? Quiero decir ver si es correcta , el fichero de verdad es de 25fps etc.

Saludos .

----------

## Sertinell

 *erflako wrote:*   

> MAY DAY MAY DAY tenemos un problema .
> 
> Por lo menos yo lo tengo . Esta mañana al intentar un avi->dvd me pasó esto :
> 
> ```
> ...

 

Veamos si puedo ayudarte  :Wink: 

Por partes:

Prueba esto 

```
/usr/share/doc/mplayer-version/TOOLS/midentify balto.avi
```

Si eso funciona la funcion del script deberia funcionar, basicamente por qe es la misma ... Cuando dices qe mplayer casca, supongo qe seguira reproduciendo de forma normal.

Lo del directorio de salida, y la comprobacion de los programas lo veo muy bien  :Wink: .

Respecto a ese avi qe se te desincronizó, fue antes de qe suprimiera la opcion -noskip de la linea de mencoder ? esqe yo he tenido esos problemas, mencoder soltaba errores de frames drop, y claro al faltar esos frames si eran muxos (ej 125 ) se desincronizaba con el audio (ej 5 sec) con la opcion -noskip desactivada esos errores desaparecen, o deberian. El problema es cuando estos frames "rotos" no se encuentran al inicio,donde se ve claramente qe la desincronizacion se debe a eso, o a un retraso en el audio..., sin embargo si estan repartidos a lo largo de todo el filme el desfase es "progresivo" y encima no corresponde a nada de forma lineal ni analizable (como son los FPS).

Saludos

P.D. Estoy de examenes, por lo qe solo me vereis por las noches

----------

## erflako

La salida de la linea de codigo que me propones es esta 

```

PIV ug # /usr/share/doc/mplayer-1.0_pre5-r3/TOOLS/midentify balto.avi

PIV ug #

```

es decir - nada .

Y al ejecutar mplayer:

```

ug@PIV ~ $ mplayer

mplayer: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

ug@PIV ~ $

```

Tengo que arreglaer el emerge -uD world que hice . Algo falla .

Tambien se me ocurrió comprobar el espacio de disco en la particion - para no hacer el tonto codificando 6 horas para enterarte de que te faltan 100MB , pero no me funciona muy bien con el "-od" . Ya lo arreglaré .

Y el mencoder está con -noskip . Será por eso que desincronizaba .

A ver si me pongo mas serio . No tengo tiempo .

----------

## Sertinell

 *erflako wrote:*   

> La salida de la linea de codigo que me propones es esta 
> 
> ```
> 
> PIV ug # /usr/share/doc/mplayer-1.0_pre5-r3/TOOLS/midentify balto.avi
> ...

 

Un

```
gcc-config -l

gcc-config A #A es el perfil qe quieres usar

source /etc/profile

env-update
```

 Deberia ser la solucion atus problemas  :Wink: 

Saludos

P.D. Ya comento hasta los code del foro  :Very Happy: D

----------

## erflako

Gracias por las respuestas .

Estoy compilando con 3.3.3 porque 3.4.3 me dió problemas hace tiempo . (Ocurre que tengo 5 compiladores - estos dos , hardened , ***nopie y ***nospp . ¿Cual será el mejor?)

Ahora tengo que terminar el "emerge -uD world" y creo que ya estará bien .

Sertinell , pones primero "source /etc/profile" y "luego env-update" . Yo siempre lo he hecho al reves . ¿Tiene importancia o ...  ?

----------

## oCHARLIEo

Ya esta listo el Wiki: http://nexusvi.no-ip.org/phpwiki

Mandadme un mensaje privado con un nombre de usuario y una clave y os los creo para que podais editar...

El Layout del wiki en Konqueror se ve de vicio... pero en IE no se ve tan bien... ;-P si teneis algun problema en este sentido, comentadmelo.

Estoy completamente de acuerdo en hacer una funcion que compruebe el espacio libre y los programas necesarios, pero me gusta mas la idea de sacar el fichero de salida en el directorio actual, en vez de meter otra opcion... te ubicas en la localizacion donde quieres el fichero y lanzas el script. Listo.

Por otro lado, tambien estaria interesante que el script pudiera leer la configuracion personalizada de cada uno desde un fichero $HOME/.dirtoavi por ejemplo...

----------

## erflako

Charlie , lo que dices tiene logica - sacar el fichero en el directorio actual , es mas cd /... etc , pero está bien . Lo que ocurre es que en el directorio actual se crean los ficheros temporales que tambien ocupan espacio . La opcion "-od" la puse por problemas de espacio - tengo una particion de 10GB y si tienes 5 avis = 4GB , mas el de salida 4,2GB mas los temporales ... Puede que te quedes corto . Y con "-od" puedes mandar los mpg siempre en el mismo sitio .

En fin - hay que decidirlo .

Y la configuracion personalizada - bien . Un config no estaría demas .

----------

## Prodater64

También se podrían borrar los temporales una vez que no se necesitan.

----------

## Sertinell

 *Prodater64 wrote:*   

> También se podrían borrar los temporales una vez que no se necesitan.

 

Es lo qe actualmente hace, pero con la estructura actual, necesitaria 8.4 Gb de minimo para generar un DVD, 4.2 para los temporales y 4.2 para el archivo final. Si lo dejamos solo en mencoder ya es otra cosa.

Aun no he conseguido saber como se compila mplayer con soporte para toolame  :Sad: 

Saludos

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> pero con la estructura actual, necesitaria 8.4 Gb de minimo para generar un DVD, 4.2 para los temporales y 4.2 para el archivo final. Si lo dejamos solo en mencoder ya es otra cosa.
> 
> 

 

Eso no es correcto ^_^ (lo siento Sertinell, soy un pesao)

En la ultima modificacion que realize, es cierto que lanzo dos mencoder: uno para corregir los fps y otro para comprimir, pero no se genera un fichero temporal... deberia ir todo a traves de pipes, si no es asi decidmelo por favor!!! que habria que arreglarlo.

EDITADO: Ahhhhhh, vale, que hay que multiplexar.... jeje. Sip, vale es cierto, 8.4 Gb. Perdon, por que soy un capullo!!! ^_^

 *Quote:*   

> 
> 
> Aun no he conseguido saber como se compila mplayer con soporte para toolame
> 
> 

 

Pues yo la verdad es que no tengo mucho tiempo para ponerme... pero creo que tengo menos ganas ;-P

----------

## Prodater64

 *Sertinell wrote:*   

> 
> 
> Es lo qe actualmente hace, pero con la estructura actual, necesitaria 8.4 Gb de minimo para generar un DVD, 4.2 para los temporales y 4.2 para el archivo final. Si lo dejamos solo en mencoder ya es otra cosa.
> 
> Aun no he conseguido saber como se compila mplayer con soporte para toolame 
> ...

 

No entiendo bien, si a cada paso va borrando el temporal, por ejemplo, si para obtener un mp2, primero necesitas un wav, una vez obtenido el mp2, el wav se borra. Lo mismo para el video, una vez multiplexado, el mpv se borra y además el mp2. Si por cualquier causa necesitas de nuevo los streams, se demultiplexa y listo.

De dónde salen los 4.2 GB?

Para compilar toolame, debes apuntar cuando haces ./configure, a la carpeta donde se haya la librería, no lo se bien, me lo han explicado pero no lo logro, además obtengo unos ejecutables de tamaño irrisorio, pero la idea es --with-toolamedir=DIR path to Toolame library and include file. Y creo que esta carpeta se llama libmp... algo, que no me acuerdo ahora, por que no estoy en casa, pero creo que tu te darás cuenta fácilmente.

Yo lo que quisiera son unos ejecutables con todas las opciones habilitadas, se puede hacer esto con una línea de comandos fácil para el msys?

Gracias.

----------

## Sertinell

 *Prodater64 wrote:*   

>  *Sertinell wrote:*   
> 
> Es lo qe actualmente hace, pero con la estructura actual, necesitaria 8.4 Gb de minimo para generar un DVD, 4.2 para los temporales y 4.2 para el archivo final. Si lo dejamos solo en mencoder ya es otra cosa.
> 
> Aun no he conseguido saber como se compila mplayer con soporte para toolame 
> ...

 

Los 4.2 Gb es lo qe cabe dentro de un DVD de video, se qe el objetivo normalemnte no es crear un archivo de 4.2 Gb con este script, lo normal es crear varios mpg's y meterlos todos dentro del mismo DVD ... Pero supongamos qe qeremos crer un MPG de 4.2 Gb para meterlo en un DVD, necesitamos 4.2 para el m2v + mp2 y 4.2 para el archivo multiplexado.

El problema esqe no se cual es esa libreria, tengo toolame instaldo, y en el paqete de toolame no viene con ninguna libreria  :Sad: . Voy a buscar todas las qe empiecen por esa cadena, pero creo qe tendre varias ^^. He revisado las listas de correo y no encuentro nada.

Saludos

----------

## Prodater64

Creo que es: libmpcodecs.

http://www1.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/libmpcodecs/

----------

## erflako

Grcias Charlie , el usuario funciona .

A ver si me lo aclarais un poco - se supone que edito directamente en la pagina ? y si a alguien no le hace gracia lo mio ? y si a mi no me gusta lo que hace el otro ? Yo no me pondria a borrar lo de los demaś pero ... no deberíamos de consultar los cambios antes de hacerlos ?

Voy a mirar lo que tengo acerca de la comprobacion de espacio de disco , programas necesarios y "-od" (que a mi me sigue gustando) y a ver si mañana lo pongo ( despues de aclararme como vamos a trabajar)

Sertinell , sigo sin mplayer . Es del "emerge -uD world" que hice . Ahora estoy compilando mplayer de nuevo a ver si me funciona .

Tu quieres compilarlo con soporte para toolame , pero estas obligando al usuario a tener una cosa muy concreta . Ya de por si puede que le falte toolame , como para pedirle compilar mplayer con soporte ... Lo auyo sería usar mplayer y mencoder a secas - segun vienen por defecto que será el caso mas comun de usuario .

----------

## Sertinell

Si compilamos mencoder con soporte para toolame, yo estaria a favor de poner unos binarios en la pagina del wiki, con toolame dentro, con varias versiones, una para i686, otra para i386, y una contodas las extensiones de los pentiums. 

Pero aun no he conseguido compilarlo, no era esa libreria, en el configure.log, me dice qe no encuentra toolame.h , se lo he indicado por activa y por pasiva, he copiado el archivo a libmpcodecs, a el directorio donde se compila el mplayer, lo he indicado con ---with-toolamedir=~/soft/toolame/ , ahi tengo las sources de toolame. Esto me tiene mosqeado, todas las noches me paso por el canal del IRC del mplayer y pregunto, pero nadie me responde :'(

Erflako, lo qe tu edites en el script qeda ahi, y si a mi, por decir un ejemplo, no me gusta, pues vuelvo a la version anterior y listo. De todas formas creo qe asi es mejor, por qe ha habido veces en las qe charlie tomaba un camino y yo otro, para las mismas cosas, por ejemplo, en el ultimo paso, él opto por poner una tuberia y lanzar 2 mencoder, sin embargo yo quite la opcion -noskip, el resultado es el mismo y se utilizan menos procesos  :Wink:  .

Siempre podemos seguir discutiendo cositas por aqui  :Smile:  , o poner un forito en el mismo sitio qe el wiki  :Twisted Evil: , esto ultimo depende de charlie.

La gran ventaja esqe no tienes qe andar subiendolo a ningun server ( cosa qe me apsa a mi) y ademas siempre trabajamos con lo ultimo qe ha editado el otro, qe eso es una gran ventaja  :Very Happy: 

Saludos

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> A ver si me lo aclarais un poco - se supone que edito directamente en la pagina ? y si a alguien no le hace gracia lo mio ? y si a mi no me gusta lo que hace el otro ? Yo no me pondria a borrar lo de los dema? pero ... no deberíamos de consultar los cambios antes de hacerlos ? 
> 
> 

 

Pues yo creo que viene siendo un poco lo que hemos venido haciendo hasta ahora... se comenta que nos parece una modificacion y se hace, pero con la salvedad de que ya no hay que andar adaptando nada, por que todos trabajamos sobre el mismo fichero... 

En cualquier momento se puede volver a una version anterior sin problemas, si hay alguna modificacion que no gusta o no funciona como debe, y se puede ver un diff respecto a la version anterior para ver que se ha modificado... Yo lo veo muy comodo, la verdad...

Si veis que no es comodo podemos seguir trabajando como hasta ahora, no hay problema, yo en un principio me lo instale porque me es mas sencillo trabajar desde el trabajo de esta forma...

 *Quote:*   

> 
> 
> Erflako, lo qe tu edites en el script qeda ahi, y si a mi, por decir un ejemplo, no me gusta, pues vuelvo a la version anterior y listo. De todas formas creo qe asi es mejor, por qe ha habido veces en las qe charlie tomaba un camino y yo otro, para las mismas cosas, por ejemplo, en el ultimo paso, él opto por poner una tuberia y lanzar 2 mencoder, sin embargo yo quite la opcion -noskip, el resultado es el mismo y se utilizan menos procesos  . 
> 
> 

 

El problema es que hay veces que te olvidas de comentar que has hecho un cambio en el script, y con los tamaños de codigo que estamos empezando a manejar ya es imposible darte cuenta de todo lo que se toca. Yo personalmente, erflako, si metes una opcion nueva (por que la necesitas) no te la voy a quitar, en todo caso te la modifique para mejorarla (o lo que sea ^_^). De todas formas respecto a esto, para mi, la ultima palabra la tiene Sertinell

 *Quote:*   

> 
> 
> Siempre podemos seguir discutiendo cositas por aqui  , o poner un forito en el mismo sitio qe el wiki , esto ultimo depende de charlie. 
> 
> 

 

X-D

Si quereis un foro solo teneis que pedirlo, pero personalmente me gustaria mas seguir comentandolo por aki para que todo el mundo lo pueda leer facilmente si quiere...

----------

## Prodater64

Si bien yo no voy a modificar nada, me gustaría seguir la evolución del script.

Charlie, podrías enviarme un usuario por PM?

Gracias.

----------

## erflako

Lo de hacerlo todos en el mismo fichero/sitio a mi me parece bien . Lo que me queria aclarar era el problema de me gusta / no me gusta lo que hacen los demás . Creo que está bien de seguir comentando los progresos ( si lo son ) aquí , en este foro para que la gente lo pueda ver y colaborar si quiere . No hace falta saturar la maquina de Charlie con un foro que vamos a usar solamente nosotros .

Estaría bien tener un sitio en el script donde poner las modificaciones ( como lo estaba haciendo Sertinell ) despues de los comentarios o donde sea .

Prodater , por favor , modifica . Sigue haciendolo como hasta ahora . Aunque no eres usuario de linux en el tema de mplayer y mencoder las opciones serán las mismas ¿no? Así que tu a lo tuyo .

 *Quote:*   

> 
> 
> Si compilamos mencoder con soporte para toolame, yo estaria a favor de poner unos binarios en la pagina del wiki, con toolame dentro, con varias versiones, una para i686, otra para i386, y una contodas las extensiones de los pentiums.
> 
> 

 

Sertinell , nos estamos yendo ??? Así nos van a pedir ebuilds para Gentoo , rpm para RedHat y el monton y deb para Debian . Aunque , ya puestos ... si alguien se atreve de hacer un ebuild ... a mi no me importaría . Si les estás poniendo los binarios compilados para 686 , 386 etc ya es un repositorio . En la maquina de Charlie se puede poner , pero lo mejor sería poner una pagina en alguin hosting con todos los binarios y el script aparte . Ahora , alguien se tiene que tirar el rollo con Debian ( tengo un Guadalinex ) , RH y los demas sistemas para comprobarlo .

Y lo peor - puedes compilar en tu maquina para 386 , pero ¿ se comportará el binario como es debido ? Yo no tengo un 386 para comprobarlo .

De todas formas , esto estaría bien cuando el script esté bien y muy depurado . Por ahora nos quedamos con seguir haciendolo . Creo .

No me pongo mas pesado .

Saludos .

----------

## Prodater64

En la siguiente línea:

 *Quote:*   

> # Filtros de Salida
> 
> VF="pp=hb:100:100/vb,scale=$BASE_SCALED:$ALTURA_SCALED:1:0:9,hqdn3d=10:12:8,noise=3th,expand=$OUTPUT_V_WIDTH:$OUTPUT_V_HEIGHT:-1:-1:0"

 

el 1 remarcado está indicando que scale está tomando a la fuente como entrelazada. El valor default es 0.

No se que problemas acarrea un aplicar un escalado de entrelazado a una fuente progresiva, pero...

En mi script el valor varía condicionalmente, pero para eso hay que decir al principio si la fuente es entrelazada o no.

La siguiente línea da un fichero multiplexado, por qué además está la función mplex?

 *Quote:*   

> mencoder -of mpeg -ffourcc MPG2...

 Last edited by Prodater64 on Sun Dec 05, 2004 10:36 pm; edited 1 time in total

----------

## Sertinell

Voy a editar esas cositas, por qe parece qe alguien a metido la pata  :Razz: 

Charlie, se qe has sido tu  :Wink: . Si pones la linea del mencoder paqe salga un mpeg ya multiplexado no hace falta  el mplex, por qe codificas el audio 2 veces ?. Le voy a meter un poquito de mano  :Smile: 

Prodater, gracias por el aviso del reescalado  :Smile: . El script aun no soporta entrelazado, asi qe lo pondre a 0.

Saludos

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> La siguiente línea da un fichero multiplexado, por qué además está la función mplex? 
> 
> Cita:
> ...

 

La culpa es mia, en el wiki no esta la ultima version que colgo Sertinell, debi de copiar el contenido de otro script por error... el que estaba colgado es la variante que estaba probando... lo modifico para que quede con la ultima version de Sertinell...

Sorry por el error ^_^

----------

## Prodater64

Si no pasa nada, yo solo aviso.

----------

## Sertinell

charlie, aguanta un segundo, qe lo estoy editando yo  :Cool:  . Le doy a actualizar y lo vuelves a mirar, creo qe ya estara corregido  :Wink: . Las variacione comentarlas antes, para qe no nos pasen estas cosas  :Wink: 

----------

## oCHARLIEo

OK ya lo he visto, voy a hecharle un ojo al codigo nuevo...

Yo voy a hacer una sugerencia. ¿que tal si hacemos una pagina aparte en el Wiki para el changelog? mas que nada por no abultar el script...

Tengo quitado el acceso anonimo al wiki por que he detectado algun problema en la autentificacion, y mientras lo investigo asi es mas seguro... ¿Vosotros habeis notado algo raro?

Editado:

Si quereis testear la edicion y probar cosas en el wiki, en la pagina principal hay un enlace a una pagina que se llama Caja de Arena. Hay podeis probar lo que querais que para eso esta... ^_^

----------

## Sertinell

 *Quote:*   

> 
> 
> Tengo quitado el acceso anonimo al wiki por que he detectado algun problema en la autentificacion, y mientras lo investigo asi es mas seguro... ¿Vosotros habeis notado algo raro?

 

Respecto a la autentificacion no he notado nada. Me va muy bien. si q hace cosas raras con el Diff, despue de editarlo le he dado, y me decia qe habia cambiado todo...

Lo q no me qeda a mi muy claro es la cosa del salto de linea, he escrito el comentario y pulsado "enter" y luego al previsualizar no salia, luego he hecho caso al wiki y he puesto las  %%% y ahora salen las %%% y el salto de linea.

Con esto tengo una duda, el script hace una alineacion automatica de la linea de mencoder, introduciendo saltos de linea, eso despues al copiar, ¿qeda todo en la misma linea no ?

El changelog lo veo bien, quizas tambien podriamos utilizar, el primer post de este hilo e ir poniendo ahi el changelog, cada uno avisais con un post y yo lo pongo en el primero. Darmelo ya formateadito con quote, pa ahorrarme trabajo  :Wink: 

Algo asi como

 *Quote:*   

> Charlie 04-12-04
> 
> Añadido soporte para entrelazado, y compilacion de mencoder con toolame

 esto es solo un cruel ejemplo...

Saludos

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> si q hace cosas raras con el Diff, despue de editarlo le he dado, y me decia qe habia cambiado todo... 
> 
> 

 

Efectivamente, por que te esta sacando el diff de la version 6 con la version 3, que son las dos grandes modificaciones que hay.... el resto de modificaciones las hemos hecho con la casilla de "esta es una pequeña modificacion" activada... de todas formas puedes sacar el ultimo diff en el enlace que pone: Other diffs: Versión archivada

 *Quote:*   

> 
> 
> Lo q no me qeda a mi muy claro es la cosa del salto de linea, he escrito el comentario y pulsado "enter" y luego al previsualizar no salia, luego he hecho caso al wiki y he puesto las %%% y ahora salen las %%% y el salto de linea. 
> 
> 

 

Deberia funcionar bien el salto de linea... lo he editado yo, mira si es eso lo que querias hacer... lo he hecho con Firefox, que es lo que utilizas tu para ver si me daba algun error...

En la pagina del codigo no utilizeis la reglas de formato de texto del wiki por que no funcionan dentro del plugin de PhpHighLight, podeis usarlos en cualquier otra pagina... ^_^

 *Quote:*   

> 
> 
> Con esto tengo una duda, el script hace una alineacion automatica de la linea de mencoder, introduciendo saltos de linea, eso despues al copiar, ¿qeda todo en la misma linea no ? 
> 
> 

 

En teoria si... todavia tengo que verlo, por que el wiki permite un enlace para descargar el contenido de la pagina en un fichero comprimido...

 *Quote:*   

> 
> 
> Algo asi como 
> 
> Cita:
> ...

 

ejem ejem.... X-D

----------

## Sertinell

Acabo de encontra un ¿bug de mplayer?

La opcion -vc dummy, acaba de dejar de funcionarme (me suelta qe lo recompile con debug activado, y comprueb multitud de cosas), voy a editarlo en el script? Haced pruebas por qe si es un fallo solo mio lo dejo asi como esta, pero por lo pronto voy a cambiarlo en miscript personal por un -vc null ...

He encontrado otro fallito, pero no consigo localizarlo, OUTPUT_A_SAMPLERATE no qeda definido al hacer SVCD, no se donde estara el error, pero supongo qe en la comprobacion de las opciones, echarle un ojo vosotros, qe yo lo qe es de bash controlo algo menos  :Wink: 

----------

## Sertinell

Teneis qe revisar el procesado de las opciones,hay algo qe falla ...

Mirar lo qe me hace  :Sad:  :

```
$./dir2dvd --soundtouch -os 807 -of SVCD file.avi

# dir2dvd Version: 0.3.4  -- 16-11-2004

## fichero: 807

ERROR: El fichero 807 no es accesible o no existe

## fichero: /mnt/almacen/Peliculas/file.avi

############################################

# Video: 

#     Codec:      XVID

#     Resolución:   608x256

#     Fps:      23.976

#     Bitrate:      788680

############################################

# Audio: 

#     Codec:      mp3

#     SampleRate:   44100

#     Bitrate:      128 (85)

#     Canales:      2

############################################

#     Duracion:   6302 segundos

############################################

# Escalando Video -> Width:464 Height:320

# Video Bitrate: 2500

# Detectado 2 canales o menos. Se fuerza salida a MP2

mkfifo: no se puede crear el fichero `fifo' «/mnt/almacen/Peliculas/File.wav»: El fichero existe

MPlayer 1.0pre5-3.4.3 (C) 2000-2004 MPlayer Team

CPU: Intel  1415 MHz (Family: 8, Stepping: 7)

Detected cache-line size is 64 bytes

CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1

Compilado para CPU x86 con extensiones: MMX MMX2 SSE SSE2

Reading config file /usr/share/mplayer/mplayer.conf

Reading config file /home/sergio/.mplayer/config

Reading /home/sergio/.mplayer/codecs.conf: Can't open '/home/sergio/.mplayer/codecs.conf': No existe el fichero o el directorio

Reading /usr/share/mplayer/codecs.conf: 73 audio & 180 video codecs

Font /home/sergio/.mplayer/font/font.desc loaded successfully! (206 chars)

Using usleep() timing

Can't open input config file /home/sergio/.mplayer/input.conf: No existe el fichero o el directorio

Input config file /usr/share/mplayer/input.conf parsed: 53 binds

Reproduciendo /mnt/almacen/Peliculas/file.avi.

Detectado formato de archivo AVI.

VIDEO:  [XVID]  608x256  24bpp  23,976 fps  788,7 kbps (96,3 kbyte/s)

==========================================================================

Abriendo descodificador de audio: [mp3lib] MPEG layer-2, layer-3.

MP3lib: init layer2&3 finished, tables done

AUDIO: 44100 Hz, 2 ch, 16 bit (0x10), ratio: 16000->176400 (128,0 kbit)

Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)

==========================================================================

==========================================================================

Forzado el codec de vídeo: null.

Abriendo descodificador de vídeo: [null] Null video decoder.

VDec: vo solicitud de config - 608 x 256 (csp preferida: BGR 24-bit).

VDec: using Planar YV12 as output csp (no 0)

Aspecto de película no es definido - no se ha aplicado prescalado.

VO: [null] 608x256 => 608x256 Planar YV12 

Selected video codec: [null] vfm:null (NULL codec (no decoding!))

==========================================================================

Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...

AF_pre: af format: 0 bps, 2 ch, 0 hz, big endian signed int 

AF_pre: 0Hz 2ch Unknown

PCM: File: /mnt/almacen/Peliculas/file.wav (WAVE)

PCM: Samplerate: 0Hz Channels: Stereo Format Signed 16-bit (Little-Endian)

PCM: Info: fastest dumping is achieved with -vc dummy -vo null

PCM: Info: to write WAVE files use -waveheader (default); for RAW PCM -nowaveheader.

AO: [pcm] 0Hz 2ch Signed 16-bit (Little-Endian) (2 bps)

Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...

Empezando reproducción...

   SoundStretch v1.2.1 -  Written by Olli Parviainen 2001 - 2003

==================================================================

author e-mail: <oparviai@iki.fi> - WWW: http://www.iki.fi/oparviai/soundtouch

This program is subject to (L)GPL license. Run "soundstretch -license" for

more information.

Uses 32bit floating point sample type in processing.

Processing the file with the following changes:

  tempo change = +4.096 %

  pitch change = +0 semitones

  rate change  = +0 %

Working...

MPlayer ha sido interrumpido por señal 2 en el módulo: play_audio 

```

Los errores qe noto son: *Quote:*   

> ## fichero: 807
> 
> ERROR: El fichero 807 no es accesible o no existe

  *Quote:*   

> Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
> 
> AF_pre: af format: 0 bps, 2 ch, 0 hz, big endian signed int 
> 
> AF_pre: 0Hz 2ch Unknown

 

Todos ocurren en mplayer y todos son culpa de la parte de el filtrado de opciones ... Yo lo estoy mirando, pero a mi parecer esta bien 

 :Embarassed: 

----------

## Sertinell

Parece qe todos los bichos me salen hoy a mi :@ , si quito la opcion resample del audio y dejo la de los channels me lo hace bien :S. Creoqe habia qe añadir otra opcion mas no ?

Exarle un ojo a lo del paso de opciones please

----------

## oCHARLIEo

El problema esta en la condicion del parametro soundtouch, debe ser:

```

"--soundtouch")

   SOUNDTOUCH="on"

   shift

   ;;

```

elimina el shift que sobra y todo te ira como la seda ;-P

He editado el wiki pero al hacerlo desde konqueror me ha modificado todo el texto. Parece que no se lleva muy bien con las tabulaciones... mañana editare todo el texto para sustituir los identados tabulados por espacios en blanco...

----------

## Sertinell

La frecuencia del sonido me la sigue poniendo a 0 por lo qe el audio no es valido ...

Vale creo qe ya he encontrado el error, si el Samplerate de entrada es igual al de salida y le metes la funcion samplerate, te pone la frecuencia a 0  :Evil or Very Mad: 

Pues nada, voy poniendo otro if mas por el camino ^_^

Ya esta, ahora ya va fino  :Smile:  . Esta noxe lo dejo codificando, mñn os cuento   :Twisted Evil: 

Bueno os cuento qe ahora mismo, toma la opcion soundtouch por defecto, charlie echale otro ojo  :Wink: . A mi me da iguakl por qe quiero usarla, peor a vosotros creo qe no os gusta tanto ...Como se nota qe esa funcioncilla la implemente yo ...  :Embarassed: 

----------

## oCHARLIEo

Ya he visto donde estan los problemas, termino de modificar unas cosas y lo subo. He modificado el script para que evalue primero todos los parametros antes de empezar a trabajar, incluso si pasas alguno despues del nombre de un fichero...

Y he creado una funcion que agrupa todas las variables dependientes del formato de salida... asi se ve mas claro.

Tb he sacado por pipes la conversion del audio. El soundtouch ahora pasa por dos pipes... wav->sync.wav->mpa  ^_^ comprobad si funciona bien que yo no lo tengo instalado... sino es facil volver atras...

EDITADO

He cambiado la primera fase de mencoder para que no reproduzca sonido con -nosound, aqui no es necesario ya que solo saca unas estadiscas, la segunda pasada no la he tocado. 

He cambiado tb la parte del Intervalo para que genere un fichero temporal a parte y he limpiado un poco la funcion de Video... quitando el -noskip ya no es necesario hacer la historia de las tuberias que haciamos....

El problema Sertinell estaba en las comparaciones que haces:

```

if [ ${SOUNDTOUCH}="on" ]; then

```

no es una comparacion es una asignacion para comparar se usa ==

```

if [ "${SOUNDTOUCH}"=="on" ]; then

```

Y tienes que poner las dobles comillas en los dos extremos por que on no es lo mismo que "on" ^_^

EDITADO2

Tengo un problema con el sonido. En el fichero MPEG final no tengo audio, tb me pasaba con la version anterior, pero no soy capaz de solucionarlo...

El problema lo tengo cuando comprimo en MP2. El paso a Wav me lo hace bien, el fichero wav lo puedo reproducir con mplayer sin problemas... pero el fichero MP2 mplayer no me lo reproduce, me dice "Fin de Fichero".

El problema es que como le hemos dicho a Mencoder que coja ese fichero de audio, a mi me dice que no puede leerlo y me deja sin sonido...

¿Podeis ver si os pasa lo mismo, o soy yo?

----------

## oCHARLIEo

Sertinel agrega en la pagina principal:

```

#Changelog:

######################

#15-11-04

#Sertinell:  Corregido, codec para VCD

#  Añadido qe el overscan varie en funcion del destino

#  un overscan de 3 en VCD produce bandas negras visibles

#  Corregido erro leve en el resize,

#  el valor para el overscan son 16 pixeles or cada punto, 8 por cada lado

#16-11-04

#Sertinell: Añadido soporte a soundtouch :)

#04-12-04

#Sertinell: Ya no es necesario mplex, mencoder crea una archivo multiplexado y con el audio dentro

#(pendiente de testear)

######################

```

y tambien:

```

05-12-04

Charlie: 

  Arreglado bug en Soundtouch. Agregado Pipe en proceso de audio (pendiente de testear)

  Agregada funcion func_Establece_Output_Format() para unificar/aclarar criterios

  Modificado chequeo de parametros de entrada, ahora procesa los ficheros al final

```

----------

## Prodater64

Tanta cosa me estoy volviendo loco.

El problema es el cambio de sistema NTSC -> PAL o visceversa.

Voy a postear algunos conceptos a ver si todos pensamos igual:

1 - Cuando se pasa de 23.976 a 25 fps.Mantener tiempo de reproducción y quitar frames: No usar la opción de mencoder -noskip, no usar SoundStretch, no usar audio externo (-audiofile), permitir que mencoder utilice el audio del archivo fuente con las opciones -of mpeg -ffourcc MPG2 y -oac lavc, con todas las lavcoptions correspondientes, especialmente acodec=mp2 (o ac3), resample (-srate obligatorio también), abitrate, etc.Cambiar tiempo de reproducción y mantener frames: Usar la opción de mencoder -noskip, usar SoundStretch, usar audio externo, pero este audio externo debe ser el wav obtenido por la función soundtouch, permitir que mencoder utilice el audio (wav) procesado por soundtouch con las opciones -of mpeg -ffourcc MPG2 y -oac lavc, con todas las lavcoptions correspondientes, especialmente acodec=mp2 (o ac3), resample (-srate obligatorio también), abitrate, etc.

1 - Cuando se pasa de 29.97 a 25 fps.He de rectificarme de lo que dije anteriormente, ahora pienso que es mejor mantener el tiempo de reproducción y quitar frames: No usar la opción de mencoder -noskip, no usar SoundStretch, no usar audio externo (-audiofile), permitir que mencoder utilice el audio del archivo fuente con las opciones -of mpeg -ffourcc MPG2 y -oac lavc, con todas las lavcoptions correspondientes, especialmente acodec=mp2 (o ac3), resample (-srate obligatorio también), abitrate, etc., siempre y cuando el resultado no se reproduzca a los saltos.Si la reproducción fuera a los saltos cambiar tiempo de reproducción y mantener frames: Usar la opción de mencoder -noskip, usar SoundStretch, usar audio externo, pero este audio externo debe ser el wav obtenido por la función soundtouch, permitir que mencoder utilice el audio (wav) procesado por soundtouch con las opciones -of mpeg -ffourcc MPG2 y -oac lavc, con todas las lavcoptions correspondientes, especialmente acodec=mp2 (o ac3), resample (-srate obligatorio también), abitrate, etc.Recordar que si la fuente es entrelazada, hay que agregar filtros de desentrelazado, de los que hay varios, kerndeint, lavcdeint y los de postprocesado que algunos hacen blend y otros interpolación, uds. ya verán (yo uso kerndeint por que así lo aprendí, no por haber testeado, cada uno puede probar los desentrelazadores y ver cual va mejor, pero como kerndeint funciona muy bien.

Me parece que los errores de mpg sin audio, se debe a que le dan un audiofile externo mp2, y esto no puede ser:

 *Quote:*   

> -audiofile <nombredearchivo>	
> 
> Reproduce audio desde un archivo externo (WAV, MP3 u Ogg Vorbis) mientras visualiza una película.

 

----------

## oCHARLIEo

Sertinell agrega en la pagina principal:

```

05-12-04 

er Flako: 

  Añadido -od para especificar Directorio de Salida

  Agregada funcion para comprobar espacio libre suficiente

  Agregada funcion para comprobacion de las dependencias

```

----------

## Sertinell

Prodater, ha mejorado la codificacion en mp2 con las libavcodec ? El problema de qe el fichero de salida no tenga audio seguroqe es eso, a mencoder no le sirve un mp2 como entrada en -audiofile, creo qe tendremos qe codificarlo con libavcodec. O necesitaremos nuevamente mplex ... Mejor codificamos el audio con libavcodec no ?

Si lo dejamos con la ultima opcion hay qe cambiar la opcion de codificacion del audio, dejarlo en la generacion del Wav sincronizado cuando se usa soundtouch ( y poner el -audiofile *.sync.wav pa qe mencoder haga el sonido tambien), o no hacer nada, si el audio es el original no necesitamos nisiquiera extraerlo a wav. 

Edito: lo ultimo qe habeis editado no lo habeis hecho sobre el wiki verdad ?  Lo digo por qe anoxe subi unas modificiones en la parte de la asignacion de variables, y la parte del audio qe ya no estan. Me acabo de volver loco buscandolas, menos mal qe tengo una version de lo ultimo qe subi en mi HD. Pero si edito sobre lo qe yo tengo los ultimos cambios qe habeis hecho vosotros no estaran reflejados. Voy a ver si con DIFF me entero de qe es lo qe habies tocado me lo copio al HD y subo con algunos cambios. La codificacion del audio pasa a mencoder.

Saludos

P.D. Primer post actualizado

----------

## Sertinell

Ya esta, creo qe ya lo tengo, no, no esqe me lo hayais modificado, esqe se me olvido subirlo  :Embarassed:  o eso dice el wiki.

Bueno qedaria asi

```
function func_Convert_Video() {

    # Parametros de entrada:

    # $1 -> es el nombre del video a convertir

    # $2 -> es el nombre del video de salida

    #ahora esta funcion tambien codifica elaudio y multiplexa

    local FILE_INPUT=$1

    local FILE_OUTPUT=$2

    if [ $VPASS == 2 ]; then

        # Dos pasadas , esta es la primera

        echo -e "\n# Sacando Estadisticas del fichero de Video $FILE_INPUT"

        mencoder -of mpeg -ffourcc MPG2 ${SKIP} -nosound -sws $SWS -noaspect -noautoexpand -vf $VF -ovc lavc -lavcopts vcodec=${OUTPUT_V_CODEC}:OpcionesDeVideo -fps $INPUT_V_FPS -ofps $OUTPUT_V_FPS "$FILE_INPUT" -o "/dev/null"

    fi

    echo -e "\n# Codificando el Video ${FILE_OUTPUT}.mpg"

    mencoder -of mpeg -ffourcc MPG2 ${SKIP} -sws $SWS -noaspect -noautoexpand -vf $VF ${OUTPUT_A_CODEC} ${OUTPUT_A_FILTERS} -ovc lavc -lavcopts vcodec=${OUTPUT_V_CODEC}:OpcionesDeVideo${OUTPUT_A_OPTS} -fps $INPUT_V_FPS -ofps $OUTPUT_V_FPS "$FILE_INPUT" -o "${FILE_OUTPUT}.mpg"

    rm -f "${FILE_OUTPUT}.sync.wav" 2>/dev/null

    rm -f "divx2pass.log" 2>/dev/null

}

```

```
function func_Convert_Audio() {

    # Parametros de entrada:

    # $1 -> es el nombre del video a convertir

    # $2 -> es el nombre del video de salida

    local FILE_INPUT=$1

    local FILE_OUTPUT=$2

    if [ "$INPUT_V_FPS" != "$OUTPUT_V_FPS" ] && [ "${SOUNDTOUCH}" == "on" ]; then

        echo -e "\n# Cambiando el Tempo del audio y Extrayendo a formato MP2"

        mkfifo -m 660 "${FILE_OUTPUT}.wav"

        mkfifo -m 660 "${FILE_OUTPUT}.sync.wav"

        mplayer $INTERVAL -nojoystick -nolirc -quiet -vc null -vo null -waveheader -af channels=2"${RESAMPLE}" -ao pcm -aofile "$FILE_OUTPUT.wav" "$FILE_INPUT" &

      

        soundstretch "${FILE_OUTPUT}.wav" "${FILE_OUTPUT}.sync.wav" -tempo=${TEMPO} &

        rm "${FILE_OUTPUT}.wav"

   

       OUTPUT_A_CODEC="-oac lavc"

       OUTPUT_A_OPTS=":acodec=mp2:abitrate=${OUTPUT_A_BITRATE}"

       OUTPUT_A_FILTERS="-audiofile "${FILE_OUTPUT}.sync.wav" -srate ${OUTPUT_A_SAMPLERATE} -af channels=2,${RESAMPLE}"

    else

        if [ $OUTPUT_A_AC3 == "no" ]; then

            echo -e "\n# El audio sera codificado por mencoder a MP2"

       OUTPUT_A_CODEC="-oac lavc"

       OUTPUT_A_OPTS=":acodec=mp2:abitrate=${OUTPUT_A_BITRATE}"

       OUTPUT_A_FILTERS="-srate ${OUTPUT_A_SAMPLERATE} -af channels=2,${RESAMPLE}"

        else

       OUTPUT_A_CODEC="-oac copy"

       OUTPUT_A_OPTS=" "

       OUTPUT_A_FILTERS=" "

        fi

    fi

}
```

Creo qe con eso qeda todo en manos de mencoder y soundtouch (si se elige). En la version anterior habia varios fallos  qe he detectado mientras editaba estas 2 funciones, entre otras cosas os habiais cargado el ${SKIP} de la linea de mencoder. Y el resultado era un fichero sin audio. El resto de funciones, no las he tocado. Comprobar si hay algo por ahi que no este como debe  :Wink: 

Voy a ponerlo en el wiki

Edito: ya he corregido el error de bash qe he vuelto a tener

Saludos

----------

## erflako

Charlie , has cambiado la funcion del espacio de disco y esto esta bien - usar herramientas del sistema en vez de awk , que es cosa aparte , es mejor .

Ahora lo malo - 

```

FREE_DISK_SPACE=`df $FILE | grep /dev | tr -s ' ' ' ' | cut -d' ' -f4`

```

coje toda la salida de df . Es decir el espacio de todas las particiones , no solamente de la del fichero . Así no se hace ninguna comprobacion porque 

```

if [ $FREE_DISK_SPACE -lt $MAX_FILE_SIZE ]; then

```

compara unas cuantas lineas no solamente un valor . Sale algo como :

```

# El fichero /mnt/amule/dvd/hack.avi es de 2.63 MB

# Necesario: 9587.54 MB

# Disponible: 5450312

127652

3505960

1014240

5042.10 MB

/mnt/dat/scr/eavi2dvdlast: line 153: [: too many arguments

 

```

He cambiado en la linea :

```

echo -e "\n# El fichero $FILE_INPUT es de `echo "scale=2; $FILE_INPUT_SIZE/1048576"| bc -l` MB"

```

el valor de la division era 1024 pero no sale en MB . Ademas este es un valor inferior al real (???)

Charlie , mira ,por favor , como hacer bien lo de FREE_DISK_SPACE porque me cuesta hacer bien lo de los delimitadores . Creo que es de ahí .

Otra cosa - segun esta el script ahora mismo NO tiene sonido . Lo que comentaba Charlie antes . Y lo que comenta Sertinell . Me sale :

```

AVI file format detected.

AVI_NI: No audio stream found -> no sound.

VIDEO:  [DIV3]  640x400  24bpp  25,000 fps  389,9 kbps (47,6 kbyte/s)

XMMS: found plugin: libwav.so (Wave Player 1.2.10)

XMMS: found plugin: libmpg123.so (MPEG Layer 1/2/3 Player 1.2.10)

XMMS: found plugin: libmikmod.so (MikMod Player 1.2.10)

XMMS: found plugin: libcdaudio.so (CD Audio Player 1.2.10)

XMMS: found plugin: libtonegen.so (Tone Generator 1.2.10)

XMMS: found plugin: libvorbis.so (Ogg Vorbis Player 1.2.10)

XMMS: found plugin: libxmms-flac.so (Reference FLAC Player v1.1.1)

XMMS: found plugin: libmp4.so (MP4 & MPEG2/4-AAC audio player - 1.2.x)

XMMS: found plugin: libxmmsmad.so (MAD MPEG Decoder plugin 0.5.6)

Waiting for the XMMS plugin to start playback of '/mnt/amule/dvd/hack.mpa'...

Audio file detected.

[V] filefmt:65536  fourcc:0x33564944  size:640x400  fps:25,00  ftime:=0,0400

input fps will be interpreted as 25,00 instead

 

No audio encoder (-oac) selected. Select one (see -oac help) or use -nosound.

Exiting...

```

Y , claro , no codifico nada . No hay peli .

Sertinell , codificar con libavcodec o usar nuevamente mplex depende de como lo veamos . ¿Que es mas probable que esté en un sistema - mplex o libavcodec ? Por cierto ¿ de donde es libavcodec ? Yo no lo encuentro por ningun lado .

EDITO :

En el WIKI no hay nada !!!

¿Que le ha pasado?

No va a ser que lo hemos estado editando Sertinell y yo al mismo tiempo ???

Supongo que Sertinell ha subido las modificaciones del audio y yo cambie el valor de la division nada mas .

----------

## Prodater64

Yo tampoco veo nada en el wiki.

libavcodec se compila con mencoder y es lo que permite, entre otras cosas, codificar el video.

----------

## erflako

Ya lo capto , Prodater . Lo que comentaban antes Sertinell y Charlie . Lo que no entiendo es como comprobar si tengo libavcodec o no ? Y , me parece que lo dije , si el usuario n o ha compilado mplayer con soporte libavcodec ¿ que le decimos ? 

"Anda, guapo , que te den y a compilar ."

Si le obligamos a usar muchas cosas demasiado concretas (como es toolame) a lo mejor perdemos flexibilidad . La idea de Sertinell era de usar solamente mplayer para no liarte con las dependencias de tcextract . Pero quitar tcextract ( que si que tiene dependenciass para aburrir) y meter mplayer compilado con libavcodec ... no se yo . Si viene por defecto en el paquete que se descarga de la pagina oficial - bien , pero si es una cosa muy especifica que se tiene que retocar mucho , lo que dije - perdemos flexibilidad .

EDITO :

Si codifico con mencoder (mplayer) es que tengo libavcodec ¿no? Porque codificamos con mencoder .

----------

## oCHARLIEo

Como dice el Diff del Wiki:

```

@@ -1,11 +1,5 @@  

  <?plugin Comment 

  - !!!! Esto es un Comentario Oculto. No quitar.  

  - El plugin PhpHighlight es necesario para que el wiki no formatee el codigo segun sus propios criterios,  

  - y aunque el resaltado del texto es segun los keywords de PHP, se parece lo suficiente para no quedar mal del todo ;-)  

  - ?>  

  - 

  - <?plugin PhpHighlight  

  #!/bin/bash 

  # 

  # Autor: Sertinell 

  # Colaboradores: er Flako, oCHARLIEo 

```

Alguien habia borrado sin querer la marca <?plugin PhpHighlight que marca el comienzo del Codigo del script.... con lo que todo aparecia como un GRAN comentario... es decir, no aparecia ^_^

Sertinell, se que has sido tu.... ;-P

Er Flako, lo que comentabas ya deberia funcionar bien, se me habia olvidado cambiar el nombre de una variable... sorry. Espero que no te moleste que le haya metido mano a la modificacion que has hecho pero asi tiene todo el script un aspecto mucho mas uniforme y queda mas claro (creo yo)   :Wink: 

 *Quote:*   

> 
> 
> Si codifico con mencoder (mplayer) es que tengo libavcodec ¿no? Porque codificamos con mencoder .
> 
> 

 

Si señor, Mencoder normalmente usa de las librerias libavcodec, que se instalan aparte y son independientes... el problema que teniamos es que estas librerias tienen un soporte limitado para la codificacion de audio en MP2 (esta en desarrollo) y segun apunta Prodater64, en la nueva version se ha incluido dentro del proyecto mplayer el uso de toolame (que no tiene nada que ver con las libavcodec) con lo que podriamos usarlo para sacar el sonido MP2...

Yo soy de la misma opinion que Er flako, creo que tener que compilar todo un mplayer para poder trabajar no compensa, pero tal y como esta ahora a mi me gusta, y seria muy comodo meter una opcion mas para utilizar el soporte toolame de mencoder, en el caso de que logremos compilarlo ;-P

Ale, me voy ha hechar una partidita al Ragnarok Online, que hoy me lo he ganado ^_^

----------

## erflako

```

# Disponible: 5450172

127652

3442040

1014240

5042.10 MB

/mnt/dat/scr/eavi2dvdlast: line 152: [: too many arguments

 

```

Esto sigue sin estar bien . Mañana intento meterle mano .

Saludos .

----------

## Prodater64

Lo que sucede es que si no agregan las librerías de toolame entonces tendrán que agregar:

toolame u mpg2enc para codificar el audio.

mplex para multiplexar.

Cuál sería el problema, si cada uno se tiene que compilar su propia versión, se indica cuál es el comando para que compile con toolame y listo. Si está en el CVS y cuando lo sincronizas ya se te baja la librería.

Pero si se decide compilar con libavcodec yo creo que irá bien, tiene fama de no ser bueno, pero a mi no me consta. La única pega es que el audio será stereo y no dual channel como se suele recomendar.

----------

## Prodater64

Hay algo que no entiendo sobre la sección de codificación de video:

 *Quote:*   

> # Funcion de Codificacion del Video
> 
> #######################################################################
> 
> function func_Convert_Video() {
> ...

 

En esta función sólo veo lo que sucede si vpass=2. No veo lo que sucede si vpass=1, es decir, lo que tendría que venir despues de un else.

Recuerdo que para la codificación en una sola pasada, no tiene que estar la opción vpass=1, ya que los resultados no son los mismos según tengo entendido.

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> 127652 
> 
> 3442040 
> ...

 

Tu salida no coincide con la mia er flako... ¿Has cogido el script del wiki? A mi me funciona bien... He corregido otra cosa, pero solo afectaba si no especificabas directorio de salida.

 *Quote:*   

> 
> 
> Recuerdo que para la codificación en una sola pasada, no tiene que estar la opción vpass=1
> 
> 

 

Vale, pos efectivamente habria que correguir eso... ya lo miro mañana que el Ragnarok me ha dejado agotado ^_^

----------

## Sertinell

 *Quote:*   

> Recuerdo que para la codificación en una sola pasada, no tiene que estar la opción vpass=1, ya que los resultados no son los mismos según tengo entendido.

 Pues no tenia ni idea respecto a eso. Es ams si no se especifica vpass=1 mencoder genera el mismo archivo de log qe con vpass=1 por lo qe pense qe actuaria de la misma manera.

Saludos

----------

## Prodater64

 *Sertinell wrote:*   

> Pues no tenia ni idea respecto a eso.

 

Y para qué estoy yo.  :Very Happy:   :Very Happy:   :Very Happy: 

 *Sertinell wrote:*   

> Es ams si no se especifica vpass=1 mencoder genera el mismo archivo de log qe con vpass=1 por lo qe pense qe actuaria de la misma manera.
> 
> Saludos

 

 *Quote:*   

> vpass=<1-2>	
> 
> Activa el modo interno de dos pasadas, solo especificado si desea usar codificación en dos pasadas.

 

Ahora, inclusive, pueden usarse 3 pasadas.

Pero no me responden, yo no veo el else, con que línea va a codificar si se selecciona una pasada?

----------

## Sertinell

Bueno acabo de terminar de codificar una pelicula de 23.976 a 25 (sin soundtouch) con of SVCD y el audio con las libavcodec(mencoder) y el resultado es muy bueno, falta visionarlo en la TV, cuando ocmpre CD's la vere. La calidad del audio no he notado qe decaiga, tampoco tengo el equipo correspondiente, ni en el PC ni en la TV, solo un par de stereos de lo mas gitano. El video sigue teniendo la misma calidad de siempre y el tiempo es notablemente menor.

Voy a actualizar el changelog del principio  :Wink: 

----------

## Sertinell

 *Prodater64 wrote:*   

>  *Sertinell wrote:*   Pues no tenia ni idea respecto a eso. 
> 
> Y para qué estoy yo.   
> 
>  *Sertinell wrote:*   Es ams si no se especifica vpass=1 mencoder genera el mismo archivo de log qe con vpass=1 por lo qe pense qe actuaria de la misma manera.
> ...

 

Te me colaste, creo qe es un cambio peqeño, se mete como esta actualmente todo dentro del if---else y entre el else y el fi metemos la misma linea solo qe sin la opcion vpass=1

Algo asi no?:

```
if [ $VPASS == 2 ]; then

        # Dos pasadas , esta es la primera

        echo -e "\n# Sacando Estadisticas del fichero de Video $FILE_INPUT"

        mencoder -of mpeg -ffourcc ${OUTPUT_F_TYPE} ${SKIP} -nosound -sws $SWS -noaspect -noautoexpand -vf $VF -ovc lavc -lavcopts vcodec=${OUTPUT_V_CODEC}: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:ChorreoDeOpciones -fps $INPUT_V_FPS -ofps $OUTPUT_V_FPS "$FILE_INPUT" -o "/dev/null"

    

echo -e "\n# Codificando el Video ${FILE_OUTPUT}.mpg"

    mencoder -of mpeg -ffourcc ${OUTPUT_F_TYPE} ${SKIP} -sws $SWS -noaspect -noautoexpand -vf $VF ${OUTPUT_A_CODEC} ${OUTPUT_A_FILTERS} -ovc lavc -lavcopts vcodec=${OUTPUT_V_CODEC}: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=2:ChorroDeOpciones${OUTPUT_A_OPTS} -fps $INPUT_V_FPS -ofps $OUTPUT_V_FPS "$FILE_INPUT" -o "${FILE_OUTPUT}.mpg"

else

echo -e "\n# Codificando el Video ${FILE_OUTPUT}.mpg"

mencoder -of mpeg -ffourcc ${OUTPUT_F_TYPE} ${SKIP} -sws $SWS -noaspect -noautoexpand -vf $VF ${OUTPUT_A_CODEC} ${OUTPUT_A_FILTERS} -ovc lavc -lavcopts vcodec=${OUTPUT_V_CODEC}: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}:ChorroDeOpciones${OUTPUT_A_OPTS} -fps $INPUT_V_FPS -ofps $OUTPUT_V_FPS "$FILE_INPUT" -o "${FILE_OUTPUT}.mpg"

fi
```

Ahora añado la variable OUTPUT_F_TYPE qe se me ha pasado qe debe variar a MPG1 para VCD   :Embarassed: 

Saludos

----------

## Sertinell

```
665M Peliculas/El.Mito.De.Bourne.mpg
```

Le han faltado 140 Mb y eso es bastante. No habeis tocado la opcion del avrate no? Nunca me habia dado un erro tan amplio mencoder ...

JODER !! me acabo de dar cuenta, me ha dejado el audio en MP3 por eso me qedo tan peqeño el fichero... A ver por qe ha hecho un copy en vez de coger las opciones qe le paso ...  :Confused: 

----------

## Prodater64

 *Quote:*   

> # Funcion que Establece las Variables para el Formato de Salida
> 
> #######################################################################
> 
> function func_Establece_Output_Format() {
> ...

 

El width en DVD ponedlo a 704. Con 720 estamos asignando bitrate a una parte de imagen que nunca se va a ver en la TV, por más grande que sea esta, es una especie de overscan interno. Creanme, no me hagan explicarlo que es un tema complicadísimo, que yo leí en inglés, relacionado con el resize. A los 704 agréguenle el overscan acorde a su TV (2 o 3).

 *Sertinell wrote:*   

> Algo asi no?

 

Si.

----------

## oCHARLIEo

Ya esta arreglado el problemas con las pasadas. Solucion sencilla y elegante, como yo...   :Wink: 

 *Quote:*   

> 
> 
> Le han faltado 140 Mb y eso es bastante. No habeis tocado la opcion del avrate no?
> 
> 

 

Sertinell, en esa parte no se ha tocado nada, pcreo que ya te lo comente hace algun tiempo... tal y como se hace el calculo no se tiene en cuenta la resolucion final del fichero (el redimensionamiento que sufre) si la resolucion varia mucho del original al final...  el tamaño final tambien lo hace. Tu calculo funciona muy bien, siempre que no varie mucho la resolucion...

 *Quote:*   

> 
> 
> Ahora, inclusive, pueden usarse 3 pasadas.
> 
> 

 

3 pasadas era lo que haciamos antes... Audio, Video 1ª pasada y Video 2ª Pasada. Se hace asi para tener el tamaño final del Audio antes de empezar a codificar el Video y asi poder ajustar mas el bitrate...

 *Quote:*   

> 
> 
> El width en DVD ponedlo a 704. Con 720 estamos asignando bitrate a una parte de imagen que nunca se va a ver en la TV, por más grande que sea esta, es una especie de overscan interno. Creanme, no me hagan explicarlo que es un tema complicadísimo, que yo leí en inglés, relacionado con el resize
> 
> 

 

Siento discrepar, Yo creo que el Formato DVD debe ser estandar PAL por que sino queremos el formato estandar, tb podiamos dejar los FPS como vengan... muchos reproductores se lo tragan...

De todas formas, si lo leiste en ingles... no se estaria refiriendo al formato NTSC??? Aun asi, yo creo que para eso tenemos el formato USER...

Es una opinion personal... como siempre, claro  :Rolling Eyes: 

----------

## Sertinell

 *oCHARLIEo wrote:*   

> 
> 
>  *Quote:*   
> 
> Le han faltado 140 Mb y eso es bastante. No habeis tocado la opcion del avrate no?
> ...

 

El AVRATE, en bits no tiene qe ver absolutamente nada qe ver con la resolcuion del archivo. Tienes razon en qe no se ha tocado nada, ha sido cosa de mencoder, en la linea de comandos ponia avrate=797 y el fichero de salida tenia 765, ahi y en qe no me ha cambiado el audio a mp2(cosa qe aun no doy con el fallo) estan los megas qe faltan.

Charlie, 704 para DVD esta dentro del standar PAL (igual qe 352x576). Yo tambien soy de la opinion de Prodater, pero como no hago DVD casi nunca, os lo dejo a vosotros  :Wink: .

RECTIFICO: SI codifica el audio como debe, la cosa era qe estaba comprobando el codec de salida con mplayer, qe usa la misma libreria para mp2 qe para mp3, de ahi mi confusion .  :Embarassed: 

----------

## Prodater64

 *oCHARLIEo wrote:*   

> 
> 
> 3 pasadas era lo que haciamos antes... Audio, Video 1ª pasada y Video 2ª Pasada. Se hace asi para tener el tamaño final del Audio antes de empezar a codificar el Video y asi poder ajustar mas el bitrate...

 

 *Quote:*   

> vpass=<1-3>	
> 
> Activates internal two (or three) pass mode, only specify if you wish to use two (or three) pass en- coding.	
> 
> 1	
> ...

 

Aunque es solo una curiosidad, no creo que tenga sentido usar tres pasadas, me refería a que en la última versión, pre6, que ya está en el CVS, es posible hacer 3 pasadas de video.

 *Quote:*   

> 
> 
> Siento discrepar, Yo creo que el Formato DVD debe ser estandar PAL por que sino queremos el formato estandar... 

 

Tal como dice Sertinell, el estandar admite:

 *Quote:*   

> Allowable picture resolutions are:
> 
> MPEG-2, 525/60 (NTSC): 720x480, 704x480, 352x480, 352x240
> 
> MPEG-2, 625/50 (PAL): 720x576, 704x576, 352x576, 352x288
> ...

 

Piensa que con 704x576 vas a tener la misma información que a 720x576, pero te ahorras bitrate de lo recortado, la cual será distribuida en la parte de video realmente visible.

----------

## erflako

Veo mucho movimiento por aquí . Se nota el puente , pero yo trabajo .

Bueno , una peli 700MB avi a dvd (2,5GB) tardó 7 horas . Ya no desincroniza (era la de 25fps que antes desincronizaba) pero tiene algunos desperfectos en el video ( saltitos,cuadraditos etc) . La grabo y mañana os lo comento si me queda tiempo de verla .

Lo de las pasadas - esto esta como lo tenia Sertinell en el principio (mas opciones que se han añadido ) - una pasada ejecuta lo de fuera del if , dos pasadas - estadisticas/dentro del if y lo de siempre .

Charlie , la parte del espacio libre en el disco ya está bien .

Alguien ha puesto detras de un "exit 1" comentado "Salir???" . Pues , claro . Si no tienes espacio para grabar la peli ... salir ¿no? Pero lo he dejado comentado , porque me parece que no chutaba bien con "-od" . Se hacia algo de lio que no lo he mirado muy bien .

EDITADO :

Malas noticias , el fichero mpg de salida no esta en formato para trabajarlo con dvdauthor y crear una iso para grabar .

Acabo de descubrirlo .

Que alguien haga una prueba a ver si va a ser fallo mio.

EDITADO2 :

Y otra cosa de la que me acabo de dar cuenta :

si hago esto :

```

 bash /mnt/dat/scr/eavi2dvdlast -od /home/ug --interval :1000 /mnt/dat/incoming/MatrixRevolutions1AC3.avi

```

El resultado es una pelicula que no puedo tratar con dvdauthor . Lo que dije antes .

pero si hago :

```

 bash /mnt/dat/scr/eavi2dvdlast -of svcd -od /home/ug --interval :1000 /mnt/dat/incoming/MatrixRevolutions1AC3.avi

```

o

```

 bash /mnt/dat/scr/eavi2dvdlast -of vcd -od /home/ug --interval :1000 /mnt/dat/incoming/MatrixRevolutions1AC3.avi
```

 (la diferencia es svcd o vcd)

el resultado es :

```

==========================================================================

Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family

Selected video codec: [ffodivx] vfm:ffmpeg (FFmpeg MPEG-4)

==========================================================================

Forcing output fourcc to 3247504d [MPG2]

Building audio filter chain for 48000Hz/2ch/16bit -> 44100Hz/2ch/16bit...

[channels] The number of routing pairs must be between 1 and 6. Current value is 0

[libaf] Reinitialization did not work, audio filter 'channels' returned error code -2

Couldn't find matching filter / ao format!

```

Será fallo en el script . Si hace bien dvd , es algo en los demás formatos .

Un rato después :

```

OUTPUT_A_FILTERS="-srate ${OUTPUT_A_SAMPLERATE} -af channels=2${RESAMPLE}"
```

¿No va a ser esto?

La peli es a52 de dos canales.

EDITADO3:

Otra vez el pesado - ¿Que usais para crear una iso y grabarla en dvd?

Porque si hay algo mas comodo que dvdauthor ...

----------

## pampero76

Hola erflako. Soy pampero76 compañero de los foros de Guadalinex. Buenas también al resto. Llevo una temporadita siguiendo el foro sobre vuestro script y coomo dije en alguna ocasión a erflako me gustaría también poner mi granito de arena, si os interesa, con un pequeño script (mi primer y de momento único script) que he escrito para bash. Os explico un poco que es lo que hace este script y por qué me decidí a escribirlo. Empezaré por el final, digamos que aficionado a ver videocds en el salón de mi casa y al comienzo grababa directamente los mpgs (tanto mpg1 como mpg2) directamente con nero a un cd. El problema venía cuando durante la reproducción el cd se paraba, se atascaba o por cualquier otro motivo quería seguir viendo el cd en cualquier otro punto que no fuera desde el comienzo, si pulsaba la tecla del mando de avance por capítulos se me iba directamente al final y solo me quedaba usar la de avance con visionado que en mi dvd solo avanza a 4x en el caso de los videocds. Después descubrí vcdeasy para windows, que era la solución perfecta, podía dividir el mpg en los capítulos que quisiera y en el tiempo que quisiera incuyo incluir un pequeño menú de presentación. Después y gracias a guadalinex me pasé a linux, pero después de mucho buscar no encontré  nada que hiciera algo parecido a lo que hacia vcdeasy en windows, aquí es cuando me decidí a escribir mi script, como decía antes no tenía ni idea de programar en linux ni siquiera lo que era bash, pero gracias a google algo salió y ya voy por la versión 0.4 del script. Os explico ahora lo que hace el script: básicamente usa las aplicaciones vcdxbuild (incluida en vcdimager) y cdrdao para grabar (si se desea grabar). El script genera un archivo xml con la descripción de los capítulos según nuestro gusto para luego "multiplexarlo" con el mpg y crear una imagen bin/cue que si se desea se puede indicar grabe el scrip mediante cdrdao. De esta manera una vez grabado en el cd podemos reproducir en el dvd y saltar de capítulo en capítulo bien con las teclas del mando a distancia "siguiente capítulo" o "capítulo anterior" o también usando las teclas númericas. Yo normalmente divido el mpg en capítulos cada 4 minutos, asi salto de 4 en 4 minutos hacia adelante o hacia atras o directamente al capítulo que desee con las teclas numéricas. 

Le he agregado al script unos --dialog para no tener que editarlo cada vez que lo usemos. Son muy simples y básicamentee lo que pregunta nada mas ejecutarlo es "tipo de videocd a crear: vcd 2.0, SVCD 1.0,...." "El metódo de division de los capitulos", "Si se desea grabar la imagen bin/cue"...y poco más, una vez seleccionas las opciones deseadas ....y a partir del mpg nos genera un videocd con capitulos grabación incluida si se desea.

En teoría no hay que editar nada del script salvo si deseais grabar que tendréis que identificar la localización de vuestra grabadora en el comando cdrdao que en mi caso es --device 2,0,0 y en vuestro caso será el que sea.

Estoy mirando la manera de hacer que el propio script la identifique de manera automática para no tener que hacerlo a mano, pero tampoco es mucho inconveniente ya que con indicarlo la primera vez que se use el script es suficiente.

OS pego al final el script para que lo probéis y busquéis posibles fallos y si véis interesante incluirlo en el codígo de vuestro script podéis hacerlo.

También me gustaría comentaros alguna cosilla aunque igual os lío un poco en vista de lo entretenidos que os tiene vuestro script jejeje.

Quería saber vuetra opinión sobre el formato CVD  por lo que tengo entendido sería una opción más acertada que el SVCD standard (si me equivoco me correjis) ya que se puede crear un mpg2 de bastante buena calidad en un solo cd a parte de que admite varios stream de audio y subtitulos seleccionables (en este caso seria mejor usa dos cds) y también tiene la ventaja de que se puede grabar directamente a un dvd, siempre que el audio esté a 48000, por lo que tras la codificacion el mpg2 resultante se puede usar tanto para grabar en un cd como en un dvd. 

Bueno más que nada os comento un poco lo del tema de ese formato parece que un poco olvidado cuando parece que tiene bastante ventajas por lo menos frente al cvcd o vcd.

Os pongo aquí el scrip:

#!/bin/bash

#Madrid 16 SEP 2004

#Este script intenta crear un VCD con capítulos a partir de un archivo mpg

#Para ello usa las aplicaciones vcdxgen, vcdxbuild, cdrdao

#EL ARCHIVO MPG DEBE ESTAR EN EL MISMO DIRECTORIO QUE ESTE SCRIPT Y DEBE SER UNICO

#de momento este script sólo admite un único archivo mpg, más adelante lo mejoraré para 

#que se puedan usar varias secuencias mpg y convertir imagenes estáticas en mpg para ponerlas

#como menú, y algunas cosillas más que se me vayan ocurriendo. Se admiten sujerencias jejeje

#Debo decir que es mi primer script y seguramente tendrá bastante fallos aunque

#he hecho ya 3 pruebas con 3 mpg (mpg1) y las 3 funcionan perfectamente en el DVD del salón 

#Madrid 18 NOV 2004

#Mejoras introducidas

#Ya no hace falta poner manualmente en el script la duracion del video mpg

#el script la dectecta automáticamente.

#Madrid 22 NOV 2004

#Se añanden un par de menús, uno para poder elegir el tipo de VCD a crear

#y otro para elegir el método de división por capítulos

#Se pueden crear todo los tipos de video-cd existentes, tanto en mpeg1 como mpeg2

#Madrid 25 Nov 2004

#Se limpia un poco el código y se añade menu de grabacion

#Se añade funcion para mostrar iinformacion final

######################################################################################

#				FUNCIONES A USAR                                     #

######################################################################################

######################################

#menu para elegir tipo de vcd a crear#

######################################

menu_tipo_vcd ()

{

dialog --menu "Elija un tipo de video-cd para crear:" 0 0 0 \

1 "VCD 2.0 (vcd, cvcd, kvcd,...)" \

2 "SVCD (svcd, cvd, xvcd, xkvcd,...)" \

3 "VCD 1.1 (en desuso)" \

4 "HQVCD" 2> tmp/tipo_vcd

}

###################################################

#menu para elegir método de entrada de los tiempos#

#        de inicio de los capitulos a crear       #

###################################################

menu_metodo_capitulos ()

{

dialog --menu "Elija un metodo para generar los capitulos:" 0 0 0 \

1 "Capitulos cada '"n"' minutos" \

2 "Dividir el video-cd en '"n"' capitulos" \

3 "Introducir tiempo inicio de capitulos manualmente" 2> tmp/metodo_vcd

}

#####################################################

#Número de capítulos conociendo duracion de cada uno#

#####################################################

numerocapi_duracioncapi ()

{

numerocapi=$(echo "scale=1; ($duracionpeli/$duracioncapi/60)" | bc)

numerocapiente=$(echo "scale=0; ($duracionpeli/$duracioncapi/60)" | bc)

resto=$(echo "scale=1; ($numerocapi-$numerocapiente)" | bc)

#echo resto $resto

numerocapi=$(echo "scale=0; ($duracionpeli/$duracioncapi/60)" | bc)

#echo numero capitulos antes $numerocapi

if [ "$resto" == ".5" -o "$resto" == ".6" -o "$resto" == ".7" -o "$resto" == ".8" -o "$resto" == ".9" ]; then

	numerocapi=$(echo "($numerocapi+1)" | bc)

	#echo resto mayor ke 0.4

else

	numerocapi=$numerocapi

	#echo resto menor ke 0.4

fi

echo numero de capitulos=$numerocapi

}

###########################################

#Borrado de archivos temporales si existen#

###########################################

borra_temp ()

{

DIR=`pwd`

rm $DIR/tmp/videocd.xml

rm $DIR/tmp/metodo_vcd

rm $DIR/tmp/tipo_vcd

rm $DIR/tmp/detalles_mpg

rm $DIR/tmp/duracion_capi

rm $DIR/tmp/numero_capi

rm $DIR/tipo_cd

}

#################################################

#Menu para especificar si se usará CD-r o CD-RW #

#################################################

menu_tipocd ()

{

dialog --menu "Tipo de CD a usar para grabar" 0 0 0 \

1 "CD-R normal" \

2 "CD-RW regrabable" 2> tmp/tipo_cd

tipo_cd=`grep -e ".*" tmp/tipo_cd`

}

#########################################################

# Menu para decidir si se graba o no despues de generar #

# los archivos bin/cue                                  #

#########################################################

menu_grabar ()

{

dialog --yesno "Desea grabar la imagen CUE/BIN tras ser generada?" 0 0

if [ $? == 0 ]; then

	grabar=1

	menu_tipocd

fi

}

#########################################

# Creacion funcion de informacion final #

#########################################

informacion_final ()

{

echo "################# INFORMACION ####################"

echo "Titulo: $nombrempg"

echo "Duracion: $duracion"

echo "Tipo de VCD a crear: $class $version"

if [ "$metodo_capitulos" == 1 -o 2 ]; then

	echo "Duracion de cada capitulo: $duracioncapi"

	echo "Numero de capitulos: $numerocapi"

fi

if [ "$grabar" == 1 ]; then

	echo "Grabar imagen: SI"

	if [ "$tipo_cd" == 1 ]; then

		echo "Tipo de cd a usar: CD-R"

		else 

		echo "Tipo de cd a usar: CD-RW"

	fi

	else

	echo "Grabar imagen: NO"

fi

echo "###################################################"

}

#################################################### FIN FUNCIONES #############################

borra_temp

#Detectar nombre del fichero mpg

nombrempg="`echo *.mpg`"

echo "Titulo:" $nombrempg

DIR=`pwd`

#Determinamos el tiempo y creamos archivo "detalles"

mpginfo $nombrempg > $DIR/tmp/detalles_mpg

duracion=`grep 'Duration' $DIR/tmp/detalles_mpg`

#Optenemos las horas de duración del archivo "detalles"

hora=`grep 'Estimated Duration' $DIR/tmp/detalles_mpg |  perl -e ' $line=<STDIN> ; $line =~ /Estimated Duration: (\d+)/  ;  print $1' `

#Optenemos los minutos del archivo "detalles"

minuto=`grep 'Estimated Duration' $DIR/tmp/detalles_mpg |  perl -e ' $line=<STDIN> ; $line =~ /Estimated Duration: ...(\d+)/  ;  print $1' `

#Pasamos las horas a minutos y sumanos los minutos

minutos=`expr $hora \* 60 + $minuto`

#Pasamos a segundos

segundos=`expr $minutos \* 60`

duracionpeli=$segundos

echo "   Duracion en segundos:" $duracionpeli

#Se llama al menú para elegir tipo de vcd

menu_tipo_vcd

tipo=`grep [1-4] tmp/tipo_vcd`

case $tipo in

1) class=vcd version=2.0;;

2) class=svcd version=1.0;;

3) class=vcd version=1.1;;

4) class=hqvcd version=1.0;;

*) dialog --msgbox "No ha especificado un tipo de vcd para crear, por defecto se creara un vcd 2.0" 0 0

class=vcd version=2.0;;

esac

echo $class $version

#Duración de la película en segundos

#en caso de que no se detecte correctamente la duración

#de la película podemos ponerlo aquí manualmente

#duracionpeli=5100

#Se llama al menú para elegir método de división de capitulos

menu_metodo_capitulos

metodo_capitulos=`grep [1-3] tmp/metodo_vcd`

case $metodo_capitulos in

1) dialog --inputbox "Indique la duracion de los capitulos en minutos" 0 0 "4" 2> tmp/duracion_capi

duracioncapi=`grep -e ".*" tmp/duracion_capi`

echo $duracioncapi

numerocapi_duracioncapi;;

2) dialog --inputbox "Indique numero total de capitulos a crear" 0 0 "20" 2> tmp/numero_capi

numerocapi=`grep -e ".*" tmp/numero_capi`

echo $numerocapi

duracioncapi=$(echo "scale=0; ($duracionpeli/$numerocapi/60)" | bc);;

3) dialog --msgbox "Esta funcion no esta soportada todavia" 0 0

menu_metodo_capitulos;;

*) dialog --msgbox "No ha especificado un metodo de creacion de capitulos, por defecto se crearan cada 4 minutos" 0 0

duracioncapi=4

numerocapi_duracioncapi;;

esac

#Se llama a la funcion menu de grabacion

menu_grabar

#Se llama a la funcion informacion

informacion_final

#Creación y edición del archivo xml

DIR=`pwd`

LOG="$DIR/tmp/videocd.xml"

echo "<?xml version='"1.0"'?>" >> $LOG

echo "<!DOCTYPE videocd PUBLIC '"-//GNU//DTD VideoCD//EN"' '"http://www.gnu.org/software/vcdimager/videocd.dtd"'>" >> $LOG

echo "<!-- See http://www.vcdimager.org/guides/general_xml_structure.html to have details -->" >> $LOG

#Tipo y versión de vcd

#class="vcd o svcd"   version="2.0", "1.1" o "1.0"

echo "<videocd xmlns='"http://www.gnu.org/software/vcdimager/1.0/"' class='"$class"' version='"$version"'>" >> $LOG

echo "<option name='"relaxed aps"' value='"false"'/>" >> $LOG

echo "<info>" >> $LOG

echo "<album-id></album-id>" >> $LOG

echo "<volume-count>1</volume-count>" >> $LOG

echo "<volume-number>1</volume-number>" >> $LOG

echo "<restriction>0</restriction>" >> $LOG

echo "</info>" >> $LOG

echo "<pvd>" >> $LOG

echo "<volume-id>VIDEOCD</volume-id>" >> $LOG

echo "<system-id>CD-RTOS CD-BRIDGE</system-id>" >> $LOG

echo "<application-id>CDI/CDI_VCD.APP;1</application-id>" >> $LOG

echo "<preparer-id/>" >> $LOG

echo "<publisher-id>BYJOSE</publisher-id>" >> $LOG

echo "</pvd>" >> $LOG

echo "<filesystem>" >> $LOG

echo "<folder>" >> $LOG

echo "<name>SEGMENT</name>" >> $LOG

echo "</folder>" >> $LOG

echo "</filesystem>" >> $LOG

echo "<sequence-items>" >> $LOG

echo "<sequence-item src='"$nombrempg"' id='Sequence-0001-01'>" >> $LOG

echo "<default-entry id='"Chapter-0001-01"'/>" >> $LOG

#aquí viene un bucle for para la enumeracion de capitulos

for i in `seq 2 $numerocapi`;

        do

         	segundos=$(echo "scale=0; ($duracioncapi*60*($i-1))" | bc)

		test "$i" -lt 10

		valor=$?

		if [ "$valor" == 0  ]; then

		echo "<entry id='"Chapter-0001-0$i"'>$segundos</entry>" >> $LOG

		else

		echo "<entry id='"Chapter-0001-$i"'>$segundos</entry>" >> $LOG

		fi

	done

echo "</sequence-item>" >> $LOG

echo "</sequence-items>" >> $LOG

#descripcion del pbc

echo "<pbc>" >> $LOG

for i in `seq 1 $numerocapi`;

	do

		a=$(echo "($i-1)" | bc)

		b=$(echo "($i-2)" | bc)

		c=$(echo "($i+1)" | bc)

		#Boton selection

		test "$i" -lt 11

		valor=$?

		if [ "$valor" == 0  ]; then

		echo "<selection id='"Selection-00$a"'> <!-- Capitulo-0001-0$i - '"$nombrempg"' -->" >> $LOG

		else

		echo "<selection id='"Selection-0$a"'> <!-- Capitulo-0001-$i - '"$nombrempg"' -->" >> $LOG

		fi

		#bsn

		echo "<bsn>1</bsn>" >> $LOG

		#Boton preview

		if [ $i == 1 ]; then

		echo "<prev ref='"Selection-end"'/> <!-- Key Prev: FIN VideoCD -->" >> $LOG

		else

		test "$i" -lt 12

		valor=$?

		if [ "$valor" == 0  ]; then

		echo "<prev ref='"Selection-00$b"'/> <!-- Key Prev: Capitulo-0001-0$a -->" >> $LOG

		else

		echo "<prev ref='"Selection-0$b"'/> <!-- Key Prev: Capitulo-0001-$a -->" >> $LOG 

		fi

		fi

		#Boton next

		if [ $i == $numerocapi ]; then

		echo "<next ref='"Selection-end"'/> <!-- Key Next: FIN VideoCD -->" >> $LOG

		else

		test "$i" -lt 10

		valor=$?

		if [ "$valor" == 0 ]; then

		echo "<next ref='"Selection-00$i"'/> <!-- Key Next: Capitulo-0001-0$c - '"$nombrempg"' -->" >> $LOG

		else

		echo "<next ref='"Selection-0$i"'/> <!-- Key Next: Capitulo-0001-$c - '"$nombrempg"' -->" >> $LOG

		fi

		fi

		#Boton return

		echo "<return ref='"Selection-end"'/> <!-- Key Return: FIN VideoCD -->" >> $LOG

		#timeout/wait

		test "$i" -gt 1

		valor=$?

		if [ "$valor" == 0 ]; then

		echo "<timeout ref='"Selection-end"'/> <!-- On Timeout: FIN VideoCD -->" >> $LOG		

		echo "<wait>0</wait>" >> $LOG

		fi

		#loop jumb-timing

		echo "<loop jump-timing='"immediate"'>1</loop>" >> $LOG

		#play-item

		test "$i" -lt 10

		valor=$?

		if [ "$valor" == 0  ]; then

			if [ $i == 1 ];then

			echo "<play-item ref='"Sequence-0001-01"'/> <!-- Item to Play: Secuencia-0001-01 -'"$nombrempg"' -->" >> $LOG

			else

			echo "<play-item ref='"Chapter-0001-0$i"'/> <!-- Item to Play: Capitulo-0001-0$i -'"$nombrempg"' -->" >> $LOG

			fi

		else

		echo "<play-item ref='"Chapter-0001-$i"'/> <!-- Item to Play: Captitulo-0001-$i -'"$nombrempg"' -->" >> $LOG

		fi

		#segundo bucle

		for i in `seq 1 $numerocapi`;

			do

			a=$(echo "($i-1)" | bc)

			test "$i" -lt 11

			valor=$?

			if [ "$valor" == 0  ]; then

			echo "<select ref='"Selection-00$a"'/> <!-- Key $i: Capitulo-0001-0$i - '"$nombrempg"' -->" >> $LOG

			else

			echo "<select ref='"Selection-0$a"'/> <!-- Key $i: Capitulo-0001-$i - '"$nombrempg"' -->" >> $LOG

			fi

			done

		echo "</selection>" >> $LOG		

		#echo >> $LOG

	done

echo "<endlist id='"Selection-end"' rejected='"true"'/>" >> $LOG

echo "</pbc>" >> $LOG

echo "</videocd>" >> $LOG

############################################

#Aqui se crea la imagen cue/bin            #

#a partir del mpg y el archivo xml creado  #

#para esto usamos vcdxbuild                #

############################################

vcdxbuild $DIR/tmp/videocd.xml

################################################

#                                              #

# Ahora procedemos a grabar la imagen bin/cue  #

#                                              #

################################################ 

if [ "$grabar" == 1 ]; then

	if [ "$tipo_cd" == 1 ]; then

		echo "cdr" 

		cdrdao write --device 2,0,0 videocd.cue

		while [ $? != 0 ]

		do

		cdrdao write --device 2,0,0 videocd.cue	

		done	 

		else

		echo "cdrw"

		cdrdao blank --device 2,0,0

		while [ $? != 0 ]

		do

		cdrdao blank --device 2,0,0

		done

		cdrdao write --device 2,0,0 videocd.cue

		while [ $? != 0 ]

		do

		cdrdao write --device 2,0,0 videocd.cue

		done

	fi

fi

#########FIN del SCRIPT################

Un saludo a todos.

----------

## Prodater64

@Pampero76:

Tengo que felicitarte, ya que en Internet no hay ni un solo script ni programa que genere un xml para crear la imagen bin-cue, que incluya como el tuyo la opción selection para poder asignar los capítulos a las teclas numéricas.

Al respecto me gustaría pedirte si me lo puedes traducir para cmd.exe scripting language, ya que soy un esclavo de W32.

Por otra parte decirte que es muy útil, pero faltaría algo para la autoría de DVD. No te atreves con mkisofs y dvdauthor?

CVD es muy útil, y personalmente elijo esa resolución, 352x576, para todos mis SKVCD con destino a 1 CD80. Y te aseguro que no está para nada olvidado.

----------

## Sertinell

Gracias pampero, llevaba tiempo buscando un script para hacer precisamente eso  :Very Happy: . Ya qe  el K3b no añade capitulos. 

 *Quote:*   

> Quería saber vuetra opinión sobre el formato CVD por lo que tengo entendido sería una opción más acertada que el SVCD standard (si me equivoco me correjis) ya que se puede crear un mpg2 de bastante buena calidad en un solo cd a parte de que admite varios stream de audio y subtitulos seleccionables (en este caso seria mejor usa dos cds) y también tiene la ventaja de que se puede grabar directamente a un dvd, siempre que el audio esté a 48000, por lo que tras la codificacion el mpg2 resultante se puede usar tanto para grabar en un cd como en un dvd.

 

A mi el CVD me encanta, es mas , es lo qe uso cuando voy a grabar mis peliculas en un CD de 80 min, ahora mismo lo añado al script.

Añado el CVD y Half-DVD (lo mismo qe un CVD pero ocn el audio a 48 Khz  :Wink:  )

Saludos y gracias, por lo pronto me copio tu script para usarlo en mis pelis  :Wink: 

----------

## Sertinell

La opcion -os no funciona. Voy a revisarlo. he cambiado el tamaño de salida a 800 Mb para SVCD VCD y CVD  :Very Happy: , etsaba en 700 Mb por lo qe mi peli de 697 no tenia casi error ...   :Twisted Evil:  .

En qe paqete esta el comando mpginfo ? por qe nolo tengo... y mira qe tengo herramientas pa tratar video y MPG's.

Saludos

----------

## Prodater64

 *Sertinell wrote:*   

> 
> 
> En qe paqete esta el comando mpginfo ? por qe nolo tengo... y mira qe tengo herramientas pa tratar video y MPG's.
> 
> Saludos

 

http://66.102.9.104/search?q=cache:v73BPlLpMLgJ:www.usinglinux.org/man/mpgtx.1.html+mpginfo+linux&hl=es

http://66.102.9.104/search?q=cache:0kNyjIFyUt8J:www.poptix.net/ivtv/Nov-2003/msg00057.html+mpginfo+linux&hl=es

----------

## Prodater64

No se si lo conocen, pero el bbmpeg es el mejor multiplexador para W32.

Además tiene un excelente paquete de herramientas que pueden utilizarse en Linux.

http://members.cox.net/beyeler/bbmpeg.html

----------

## Prodater64

Hola: A ver si pueden verificar lo siguiente.

Cuando al script le dan un vob como input, con audio 5.1, si bien el audio es leido como 5.1, en la respuesta a -identfy lo muestra como de 2 canales. Esto afecta a su script?

 *Quote:*   

> ==========================================================================
> 
> Opening audio decoder: [liba52] AC3 decoding with liba52
> 
> No accelerated IMDCT transform found
> ...

 

----------

## erflako

Gracias , pampero . Lo voy a probar .

Como veo que no me haceis caso , juntando lo mio con lo de Sertinell - a el no le funciona "-os" , a mi dvdauthor no me coje el fichero salida dvd multiplexado con mencoder y "-of vcd/svcd" no me encuentra el sonido . Para mas detalles - mi post anterior .

Parece que nos hemos metidos en bugs de los buenos .

Lo del multiplexado con mencoder no lo entiendo . Debería de ser un fichero normal , pero a mi dvdauthor no me lo coje bien y no puedo crear la iso .

¿Poner opcional mplex?

----------

## Prodater64

 *erflako wrote:*   

> Lo del multiplexado con mencoder no lo entiendo . Debería de ser un fichero normal , pero a mi dvdauthor no me lo coje bien y no puedo crear la iso .
> 
> ¿Poner opcional mplex?

 

Yo tampoco lo entiendo. Todos los mpgs producidos por mencoder los he cargado en varios programas, AVICodec, TMPGEnc, VirtualDub mpeg2, reproductores, BitrateViewer y ninguno la ha rechazado.

No tendrá que ver con la resolución o el tipo de audio?

----------

## Sertinell

 *Quote:*   

> Otra vez el pesado - ¿Que usais para crear una iso y grabarla en dvd?
> 
> Porque si hay algo mas comodo que dvdauthor ...

 

Yo estoy probando ahora Tmpgenc DVDauthor (aunqe creo qe me esta recodificando algo mas qe el audio... marca 180 mins para terminar) con wine, la verdad, soy demasiado ceporro pa crear los menus y todo con DVDauthor, a ver si mejoran algo la guis GNU de DVDauthor  :Rolling Eyes: 

Respecto a qe DVDauthor no te coje el archivo, TMPGENC DVD author no se me ha qejado y le he metido un archivo qe cree ayer mismo con el script

Respecto al audio, esa linea qe apuntas se activa tan solo si la salida es un mp2, y la salida es correcta. Haz la prueba de lanzar la linea qe usa mencoder desde una terminal y pegarnos la salida qe veamos lo qe pasa.

El bug con respecto a -os debe ser algo sencillo, simplemente definir OUTPUT_SIZE despues de asignar el formato.

Edito:ya tengo arreglado lo del -os. Qedaria asi

```
"-of" | "--output_format") # Especifca Formato de salida

            shift

            case "$1" in

                "DVD" | "dvd" | "SVCD" | "svcd" | "CVD" | "cvd" | "VCD" | "vcd" | "USER:"* | "user:"*)

                    OUTPUT_FORMAT=$1

          echo -e "\n## Estableciendo Formato de Salida a: $OUTPUT_FORMAT"

         func_Establece_Output_Format $OUTPUT_FORMAT

                    ;;

                *)

                    echo -e "\n# Formato de Salida: $1, no reconocido. Usando Formato por Defecto: $OUTPUT_FORMAT"

                    ;;

            esac

            shift

            ;;

        "-os" | "--output_size") # Especifica tamaño final del fichero

            shift

            OUTPUT_SIZE=$1

            shift

            ;;
```

Al asignar el tamaño con -os despues del formato de fichero OUTPUT_SIZE qeda definido como debe, antes se hacia al reves  :Wink: 

Saludos

P.D. Voy a hacer un sample de DVD con el archivo de matrix, para comprobar lo de DVDauthor y ademas ver como sale ^^

----------

## Sertinell

erflako, estoy probando ahora DVDstyler, es algo mas durillo de usar qe las apis privativas, pero me convence mas. El caso es qe esta dexmultiplexando y multiplexando todos los archivos. Estoy empezando a pensar qe tan solo mplex multiplexa para DVDauthor correctamente(tiene una opcion especifica... ) Por lo qe creo qe deberiamos retomarlo para DVD y dejar el SVCD y el VCD con mp2 a traves de mencoder.

----------

## Sertinell

Creo qe deberiamos volver a multiplexar con mplex !!

Las razones, las expongo:

1· El caso de erflako, mencoder no da un stream valido con DVDauthor

2· Al generar una imagen SVCD desde un archivo de 760 Mb generado ocn mencoder me sale una ISO de 876 Mb cuando tendria qe salir algo en torno a  760. 

3· Si intento dexpmultiplexar con mpgtx para volver a multiplexar con mplex, los ficheros resultantes *.m2v y *.mp2 no son valido y mplex no me los acepta como entrada, ademas el m2v esta corrupto y se ve a salto y con cuadrotes ...

Por estas 3 razones el multiplexado con mencoder no nos sirve ni para hace SVCD (en VCD no he probado) ni para hacer DVD. Con lo cual creo qe deberiamos descartarlo

Prodater 64 las opciones anteriores para mplex en VCD y DVD las puse un poco a ojo, ya qe habia parametros para los  qe desconocia su valor, podrias postear los valores idoneos ? se qe los conoces  :Wink: 

Saludos

----------

## pampero76

Gracias a todos por vuestros cumplidos. Tengo que deciros que el script de los capítulos está todavía sin acabar en cuanto a las funciones que desearía que tuviera, vamos, que sigo trabajando en él. Cosas que tengo en mente pues son por ejemplo que genere un menu de inicio a partir de una imagen estática; que los capítulos podamos decidir exactamete el tiempo de inicio de cada uno sin necesidad de que sean equidistantes todos; que admita mas de un archivo mpg (varias secuencias de videos mpg), .....

En cuanto a lo que me pides Prodater64 no me importaría traducirtelo pero a penas he empezado a usar bash hace un par de meses y todavía no lo controlo con lo que pasartelo a cmd.exe que no tengo ni idea..... lo veo complicado, igual ahora que vienen las fiestas de Navidad me pongo a mirarlo, no creo que sea muy complicado. Y lo de la autoría de DVD ....sí que me gustaría que el script incluyera o hiciera lo mismo que hace para los videos cds pero para los dvds, el problema es que no tengo grabadora de DVD con lo que no puedo hacer pruebas. Pero tengo previsto actualizar mi PIII 733 para reyes y creo que me llegara para una grabadora de DVD con lo que desde ya mismo me pongo a investigar y a estudiar un poco el tema del Video DVD y a partir de enero me pongo a trabajar con el tema. 

Por cierto si probáis el script y encontráis algún fallo (o muchos jejeje) me lo  ponéis por aquí así lo voy solucionando, en la medida de lo posible, ya que por falta de tiempo no puedo hacer muchas pruebas. TAmbién podéis ponerme sugerencias sobre mejoras o mas opciones.

Aunque no responda todos los días yo ando por aquí leyendo lo que ponéis, bueno, un saludo y hasta pronto.

----------

## Prodater64

 *Sertinell wrote:*   

> 
> 
> Prodater 64 las opciones anteriores para mplex en VCD y DVD las puse un poco a ojo, ya qe habia parametros para los  qe desconocia su valor, podrias postear los valores idoneos ? se qe los conoces 
> 
> Saludos

 

1 - Probaste la opción harddup:

 *Quote:*   

> harddup	
> 
> Solo es útil con MEncoder. Si harddup se usa en la codificación, forzará marcos de imagen duplicados para codificarse en la salida. Usa un poco más de espacio, pero es necesario para sacar archivos MPEG o si planea demultiplexar y remultiplexar el flujo de video después de la codificaión. Debe ser colocado cerca del final de la cadena de filtros a menos que tenga una buena razón para no hacerlo.

 

2 - Opciones para mplex:

 *SVCD................................. wrote:*   

> mplex -f 5 -r 3000 -v 1 -b 230 -V -p 1 -h -o "mipeli.mpg" "mipeli.m2v" "mipeli.mp2"

 

 *DVD................................. wrote:*   

> mplex -f 8 -r 10000 -v 1 -b 500 -V -p 1 -h -o "mipeli.mpg" "mipeli.m2v" "mipeli.mp2(o ac3)"

 

 *VCD................................. wrote:*   

> mplex -f 2 -r 3000 -v 1 -b 230 -V -p 1 -h -o "mipeli.mpg" "mipeli.m2v" "mipeli.mp2">> %log%

 

Debo decir que mplex da errores, bastante frecuentemente, relacionados con underruns, esto se debe a que el audio + video superan el valor de -r.

3000 y 10000 son unos valores bastante seguros, pero si se incrementa puede ser que la peli se le atragante al reproductor. Tendrán que encontrar el valor más apropiado por si mismos, yo ya lo abandoné por bbmpeg (command line runbbmpeg.exe, que viene en el paquete de dvd2svcd, ya que es el único que trae la dll que permite la línea de comando, creo que los sources están y que puede ser compilado para linux, justamente lo había posteado previamente).

@Sertinell: El dvdauthor requiere el archivo multiplexado, pero creo que el TMPGDVDAuthor basta que le des los elementary streams, ya que si no el los demultiplexará y por lo tanto tardará mucho más tiempo.

----------

## erflako

Gracias por las ideas , pero soy testarudo y me niego a usar wine . Cosas mias .

Creo que lo que dice Sertinell sería lo mejor - para dvd/svcd - mplex .

Prodater , con el mismo fichero que genera un multiplexado que no es util para dvdauthor ,

al hacer s/vcd NO tengo audio y casca . Es avi con a52 de dos canales .

Si hace dvd ¿porque no va a hacer s/vcd?

Me parece que el script ya se está haciendo demasiado grande y dificilmente controlable .

Por muy procedural que sea mas de 550 lineas empiezan a dar problemas . A partir de ahora todo bug será un poco mas dificil de encontrar ( ojalá me equivoque ). 

 No sé quien hizo el cambio de mplex por mencoder y yo no lo tengo muy claro que cambios se han hecho ni como funciona .

A ver si podemos volver a una version un poco anterior y hacer un apaño para que nos quede funcional la cosa .

----------

## Sertinell

erflako, voy a probar la oipcion hardup qe menciona prodater, y si funciona como debe, generar la imagen como debe, y dexmultiplexar y multiplexar sin problemas. Dejare mencoder para SVCD y VCD ( Es mas rapido, eso es indiscutible ) y pondre el "mplex -f 8 ..." para DVD. El cambio lo hice yo, en el historial del script puedes ver en qe version se introdujo. Yo lo puse por qe charlie dijo eq lo habia probado y no tenia qejas. Si no va enseguida vuelvo a mplex y mp2enc (si ya hemos quitado toolame como dependencia ... )

EDITO

Con la opcion harddup me sale igual, el fichero no es dexmultiplexable, el video sale corrupto.

Voy a hacer unas cuantas pruebas mas y os cuento ...

Un saludo

----------

## oCHARLIEo

En primer lugar, perdon por no contestar antes pero he estado liado...

 *Quote:*   

> 
> 
>  Yo lo puse por qe charlie dijo eq lo habia probado y no tenia qejas
> 
> 

 

Y como siempre soy yo el que las pone todas... ¿verdad? ^_^

Bromas aparte... aqui hay un tema que yo personalmente no encajo muy bien, y es que no entiendo porque es un error nuestro que una herramienta no reconozca nuestro fichero MPEG... todas las demas que he probado han funcionado correctamente y de momento dvd-author es la unica que conozco que necesita obligatoriamente en la entrada un pseudo-vob, ¿no se supone que es esto precisamente lo que hace?

Se supone que una herramienta de autoria de DVD se deberia encargar de multiplexar los diferentes canales de audio, subtitulos y video en el formato necesario... pero si hay que pasarle la pelicula con los subtitulos ya multiplexados con spumux!! por diox...   :Shocked: 

En fin... no me apetece mucho volver a los mismos problemas que teniamos hace uno/dos meses con el sincronismo del sonido y demas... creo que esto es bastante peor que el problema del que estamos hablando...

Salvo que tengamos otro tipo de problemas, yo estoy rotundamente en contra de volver a mplex, sorry ^_^

----------

## Prodater64

Yo también pienso que mientras pueda evitarse, no hay que volver a mplex, siendo que da errores muy seguido cuando los (S)VCD no son estándar.

----------

## Sertinell

 *oCHARLIEo wrote:*   

> En primer lugar, perdon por no contestar antes pero he estado liado...
> 
>  *Quote:*   
> 
>  Yo lo puse por qe charlie dijo eq lo habia probado y no tenia qejas
> ...

 

A mi no es ya el caso de los DVD's. para eso utilizo DVDstyler (qe dexmultiplexa y multiplexa) , el problema esqe NO PUEDO DEXMULTIPLEXAR y MULTIPLEXAR el archivo y qe la imagen de (S)VCD  qe me genera vcdimager/vcdxbuild no tiene un tamaño correcto. Creo qe ambas cosas son un problema, y qe no es imprescindible qe el archivo lo multiplexe mencoder para qe este en sincronia con el audio. Dara errores, pero el archivo siempre es dexmultiplexable y se puede intentar arreglar.

Yo personalmente prefiero usar mplex por esas 2 razones.

1 Saludos

P.D. Yo no he sido  :Razz:  ^_^

----------

## erflako

Charlie , NO ES culpa nuestra de que dvdauthor no reconoce el fichero mpg , claro . Tienes toda la razón . Pero tengo un script cutre que me hace la iso y la graba y utiliza dvdauthor . Además no conozco otra herramienta que me pueda hacer esto . (Estoy haciendo un "emerge dvdstyler" a ver como es)

En fin , está DPM que el script no tiene dependencias mas que de mplayer , pero aparte de hacer la peli en mpg hay que grabarla ¿no? A lo mejor Prodater no tiene el problema y Nero se traga todo lo que su script hecha , pero yo tengo un problema de no poder grabar lo que convierto . De lo que se comenta - Sertinell tambien .

No estoy empeñado en tener otra vez mplex , nada de eso , lo que quiero es tener funcionalidad . Que las cosas salgan bien . Y , creo , que el script esta ya bastante bien , como para dejar que tenga usuarios descontentos , aunque sea por culpa de dvdauthor . Un mplex opcional podría ser solucion .

Bueno , chicos , por hoy lo dejo . Mañana me contareis .

Saludos .

EDITADO (7.39) :

No puedo hacer el emerge de dvdstyler .

```

Error interno del compilador: Error al reportar rutinas reentradas.

Please submit a full bug report,

with preprocessed source if appropriate.

See <URL:http://bugs.gentoo.org/> for instructions.

Preprocessed source stored into /var/tmp/portage/mpgtx-1.3/temp/ccDufUms.out file, please attach this to your bugreport.

make: *** [chunkTab.o] Error 1

make: *** Se espera a que terminen otras tareas....

mpeg.cxx: In member function `void mpeg::ParseFramesInGOP(off_t)':

 

Error interno del compilador: Error al reportar rutinas reentradas.

Please submit a full bug report,

with preprocessed source if appropriate.

See <URL:http://bugs.gentoo.org/> for instructions.

Preprocessed source stored into /var/tmp/portage/mpgtx-1.3/temp/cchc5bij.out file, please attach this to your bugreport.

make: *** [mpeg.o] Error 1

 

!!! ERROR: media-video/mpgtx-1.3 failed.

!!! Function src_compile, Line 28, Exitcode 2

!!! emake failed

!!! If you need support, post the topmost build error, NOT this status message.

 

```

Ni cambiando de compilador , ni "emerge sync" , ni nada .

¿ Alguna idea de sustituir dvdauthor ?

----------

## Matei

a mi me pasaba lo mismo con dvdstyler, tuve que bajar el binario de la pagina de [url]mpgtx.sourceforge.net[/url] para poder emerge dvdstyler con -nodeps... cosas del portage.

----------

## Sertinell

Yo tambien tire de binario para mpgtx ... 

Ya grabe la imagen generada a partir del fichero multiplexado por mencoder, y el fichero no es reproducible, asi qe en breve, subire una version, con todos los ultimos cambios pero con el multiplexado por mplex ( y una opcion de multiplexado con mencoder quizas, para quien la quiera). Mplex nunca me ha dado fallos, mientras qe mencoder no me siquiera un archivo reproducible en mi DVD ...

Saludos

----------

## Prodater64

 *Sertinell wrote:*   

> Yo tambien tire de binario para mpgtx ... 
> 
> Ya grabe la imagen generada a partir del fichero multiplexado por mencoder, y el fichero no es reproducible, asi qe en breve, subire una version, con todos los ultimos cambios pero con el multiplexado por mplex ( y una opcion de multiplexado con mencoder quizas, para quien la quiera). Mplex nunca me ha dado fallos, mientras qe mencoder no me siquiera un archivo reproducible en mi DVD ...
> 
> Saludos

 

Bueno, que raro. Yo lamentablemente no puedo probar con DVD ya que por ahora no tengo grabadora.

Lo único que puedo decir es que ningún programa me rechaza los mpg generados, especialmente el TMPGEnc que es medio quisquilloso para eso.

Ya veré más adelante.

----------

## Eleazar Anzola

Hola a to2,

Ya que ustedes estan muy duchos en el asunto queria hacerles una consulta sencilla que no logro comprender  :Razz: 

No tengo DVD y solo he logrado hacerme una considerable colección de VCD, ahora he bajado unas pelis que ocupan algo más de 700Mb cada una es decir 709 798 756 etc. 

¿como puedo generar un avi cuyo tamaño no supere 700Mb para poder copiarlas a en mi Cdw?

----------

## Sertinell

 *Eleazar Anzola wrote:*   

> Hola a to2,
> 
> Ya que ustedes estan muy duchos en el asunto queria hacerles una consulta sencilla que no logro comprender 
> 
> No tengo DVD y solo he logrado hacerme una considerable colección de VCD, ahora he bajado unas pelis que ocupan algo más de 700Mb cada una es decir 709 798 756 etc. 
> ...

 Enleazar debes grbaarlos como VCD, y esos 780 Mb te entraran eb un CD de 80 mins. Para hacerlo puedes usar el K3b o tirar de vcdimager y cdrdao a pelo

----------

## pampero76

Buen, lo primero felices fiestas a todos. 

Veo que andáis todos de vacaciones o muy ocupados por lo menos. A ver si alguno de vosotros que veo sois unos expertos ya en codificacion de video me echa una manita. Sigo trabajando en el script de los capítulos (que por cierto no me habéis comentado si os ha dado algún problemilla, no os cortéis que seguro tiene muchos, también se admiten sujerencias); bueno, pues necesito capturar algún frame o imagen vamos de un archivo mpg pero no encuentro ninguna opción en mpeg2enc ni mencoder que haga esto, he probado con algo parecido a lav2vu (o algo así parecido) pero solo captura de avi (aunque las pruebas que he echo con avi solo me capturaba un frame verde, no se si será cuestión de codecs.....aunque tampoco me interesa mucho, lo que quiero es capturarlo desde un mpg). La idea es generar un menú presentación al iniciar el videocd, en el que aparezca un frame del mpg en cada capitulo generado, no se si me explico bien. Vamos, que introduces el videocd, sale un fondo dividido en por ejemplo 9 cuadraditos (que representarian los capítulos 1,2,...9) y en cada cuadradito colocar un frame de esa parte del video. Lo ideal sería colocar un menú con escenas en movimiento (de unos  5 ó 6 segundos de duración) pero luego pensándolo podría ocurrir que al sumar este menú con escenas en movimiento más el mpg no entra en un cd de 80 min, por lo que veo mejor la opción del menún con imágenes estáticas; y dejar las escenas en movimiento para la autoría en DVD, que si todo va bien....pronto me pondré con ello.

Bueno pues nada más, saludos a todos.

Y feliz 2005.

----------

## Matei

Se puede hacer con Xine, tomas un snapshot del video que estas reproduciendo y luego lo trabajas.. no estoy frente a mi Linux asi que no estoy siendo muy preciso pero seguro que se podia hacer. Buscalo!   :Smile: 

----------

## pampero76

Gracias Matei, pero no me refería a eso, no me expliqué bien. Yo lo que quería era algún comando u opcion de algunas de las herramientas utilizadas en el script de conversion de conversion multimedia, para incluirlo en mi script y que lo haga todo solito, sin necesidad de procesos intermedios. Es decir, mi idea es que el propio script capture unos determinados frames ( por ejemplo si elegimos hacer capitulos cada 10 minutos....pues que capture un frame cada 10 minutos y asi). Luego con estos frames pues montarlos en una especia de imagen de fondo numerandolos para que aparezcan al inicio del videocd y asi poder elegir con el mando a distancia el capitulo ke deseemos ver. Lo de montar los frames para crear el menu mas o menos lo tengo solucionado. Lo unico que me falta es eso, capturar los frames.

Pues nada, a ver si me ayudais, ke estoy atascao, jejeje

----------

## Prodater64

 *pampero76 wrote:*   

> La idea es generar un menú presentación al iniciar el videocd, en el que aparezca un frame del mpg en cada capitulo generado...

 

Nunca lo he probado, pero intenta:

MPlayer -vf framestep=i 3000 -jpeg progressive:quality=75 -vo jpeg "MiPeli.mpg"

Puedes variar el valor 3000 (es cada cuanto se imprimirá un jpg en el disco. Juega con este valor y encuentra cuanto frames corresponden a tantos minutos.

Puedes variar el valor de quality. 75 es el predeterminado. También hay otras opciones.

 *Quote:*   

> 
> 
> framestep=I|[i]paso	
> 
> Filtra solamente el marco Intra (clave) o uno cada paso. Si llama al filtro con I (en mayúsculas) co- mo parámetro entonces SOLO los marcos clave van en la salida. Para DVD esto significa, generalmente, un marco cada 15/12 (IBBPBBPBBPBBPBB), para AVI significa en cada cambio de escena o en todos los valores clave enteros (vea -lavcopts keyint=valor si usa MEncoder para codificar el video).	
> ...

 

Hasta pronto.

P.D.: Que hay del script para generar capítulos para DVD?

----------

## pampero76

Gracias Prodater64 por tu rápida respuesta, esta noche probaré lo que me has dicho y te cuento. Respecto a lo de los capítulos de DVD.......aunque he leido un poco de DVDauthor todavía no me he puesto en serio con él, de momento no tengo grabadora de DVD por lo que no puedo hacer pruebas, a ver si los Reyes se portan bien....y me pongo con ello en cuanto la tenga. Mientras pues sigo dándole vueltas en la cabeza a ideas que se me van ocurriendo, como la del menú presentación para los videocds; y para los DVD había pensado en un menu similar pero en lugar de frames staticos, colocarle una pequeña secuencia de 6-7 segundos para cada capitulo, ¿no pinta mal la idea no?   :Laughing:   :Laughing:   YA veremos cuando me ponga con ello, jejejeje.

Venga un saludo.

----------

## Matei

Una cosita menor no, ¿donde esta la ultima version del script? ni en la web de erflaco ni en la de CHARLIE encuentro las actualizaciones, ni la version del log que aparece en la pagina 1 del POST...   :Crying or Very sad: 

----------

## erflako

Ejem , tomo nota y mañano lo subo .

LLevo unos dias liado con un mplex opcional pero no se me da nada bien .

Sertinell , hecha una mano , por favor , que la ultima version es tuya .

----------

## Prodater64

 *pampero76 wrote:*   

> Gracias Prodater64 por tu rápida respuesta, esta noche probaré lo que me has dicho y te cuento.

 

En realidad el comando es así:

MPlayer.exe" -vf framestep=15000 -ao null -vo jpeg:progressive:quality=75 "MiPeli.mpg"

Pero la pega es que la reproduce por entero.

Tal vez deberías combinar algo con -ss x y -frames 1.

-ss x da el tiempo

Si con estas opciones creas un batch, obtendrás los jpgs sin tener que esperar la reproducción completa de la misma. Espero que me entiendas.

x puede ser un valor creciente en un loop, que indique cada cuanto quieres tomar la imagen.

Sería algo así:

For x = 1 to movietime_en_min, step 5

MPlayer.exe" -ss x -frames 1 -ao null -vo jpeg:progressive:quality=75 "MiPeli.mpg"

next x

Y creo que con esto te ahorrarías un montón de tiempo.

----------

## Sertinell

 *erflako wrote:*   

> Ejem , tomo nota y mañano lo subo .
> 
> LLevo unos dias liado con un mplex opcional pero no se me da nada bien .
> 
> Sertinell , hecha una mano , por favor , que la ultima version es tuya .

 Estoy algo liado con esto de la navidad, ademas de qe tengo examenes en enero de la uni y no he tenido casi tiempo de mirar nada. Para cambiar el multiplexado a mplex hay qe cambiar varias cosas, como son : 

La funcion del audio, la del video, y añadir de nuevo la funcion del multiplexado. Las opciones qe se le deben da a mplex las posteo prodater un poco mas atras. Hay otro error qe note al pasar un video qe estaba a 15 FPS: KEYINT esta definida en funcion del video de origen, debe estarlo en funcion del video de destino. 

Un saludo y a ver si tengo tiempo, subo al wiki algo qe funcione, y le hago una screensoht.  :Wink: 

----------

## erflako

Voy a subir al wiki lo que he parido . Es una mezcla entre la "Version 2, saved on miércoles 1 diciembre 2004 10:02:54.

" y la ultima "Editada por última vez martes 7 diciembre 2004 22:32:11." . 

Pongo --mplex" como opcion - por defecto se usa mencoder . Los cambios están en la codificacion de audio y la funcion de codificacion de video . Ha quedado una cosa un poco fea , porque realmente son dos scripts mezclados , pero no veo como hacerlo mas elegante . 

Lo peor es que es una version de las que no funcionan demasiado bien - es decir - falla . No tengo ninguna version anterior de las que funcionaban con mplex . Como soy gilipollas las borré . Mañana seguiré buscando errores .

No  me enrollo mas - que alguien le eche un vistazo y si se le ocurre como mejorarlo - que le de caña . 

P.D. Sertinell :

 *Quote:*   

> 
> 
> Hay otro error qe note al pasar un video qe estaba a 15 FPS: KEYINT esta definida en funcion del video de origen, debe estarlo en funcion del video de destino. 
> 
> 

 

Si no me equivoco KEYINT depende del formato de salida :

```

 case "$OUTPUT_V_FPS" in

  "25.000") KEYINT=15 ;;

  "23.976") KEYINT=18 ;;

  "29.970") KEYINT=18 ;;

 esac

```

Saludos .

----------

## pampero76

Por fin he conseguido lo de capturar frames, con tu ayuda claro Prodater64, mas o menos era como tu decías, pero debe haber un pequeño fallo en el la opción -ss pues no comienza la reproducción exactamente en el punto que le indiques sino que siempre lo hace en el primer frame del mpg. La solución, un poco chapuza, es generar 4 frames (-frames 4) ya que el primero siempre es el inicial del mpg, el segudo y tercero una especie de superposición entre el frame inicial y el frame nº4 es el que nos interesa (el que indicamos con -ss tiempo_en_segundos). Despues borro los 3 primeros y me quedo con el 4º. Para usarlo en bucle ....lo que hago despues de borrar los 3 primeros frames no deseados es renombrar el 4º y enviarlo a una carpeta temporal, de esta manera consigo todos los frames que me interesen cada x minutos.

El codigo quedaría así:

---------------------------------------------------------------------------------

duracion_capi=4 #minutos

numero_capi=10

DIR=`pwd`

for t in `seq 0 $(($numero_capi-1))`;

	do

	if [ "$t" == 0 ]; then

	tiempo_frame=10 #capturamos el primer frame a los 10 segundos de iniciar el mpg

	else

	tiempo_frame=$(($t*$duracion_capi*60))

	fi

	mplayer -ss $tiempo_frame -frames 4 -ao null -vo jpeg:progressive:quality=75 *.mpg

	rm 00000001.jpg 00000002.jpg 00000003.jpg

	mv 00000004.jpg $DIR/tmp/$t.jpg

	done

-------------------------------------------------------------------------------------

Lo pego por si os interesa la solución, porque explicarme se me da muy mal  :Laughing:   :Laughing: 

GRacias, en cuanto tenga la nueva versión del script de los capitulos os lo digo por si os interesa.

Ta luego

----------

## Prodater64

 *pampero76 wrote:*   

> Por fin he conseguido lo de capturar frames, con tu ayuda claro Prodater64, mas o menos era como tu decías, pero debe haber un pequeño fallo en el la opción -ss pues no comienza la reproducción exactamente en el punto que le indiques sino que siempre lo hace en el primer frame del mpg. La solución, un poco chapuza, es generar 4 frames (-frames 4) ya que el primero siempre es el inicial del mpg, el segudo y tercero una especie de superposición entre el frame inicial y el frame nº4 es el que nos interesa (el que indicamos con -ss tiempo_en_segundos). Despues borro los 3 primeros y me quedo con el 4º. Para usarlo en bucle ....lo que hago despues de borrar los 3 primeros frames no deseados es renombrar el 4º y enviarlo a una carpeta temporal, de esta manera consigo todos los frames que me interesen cada x minutos.
> 
> 

 

Si, no se que es lo que pasa, será un bug, pero yo cuando pongo, por ejemplo, -frames 100, sólo me saca 20, y -frames 50, sólo 10, un quinto parece, pero bueno, se puede hacer.

Vengo además a aportar nuevas ideas. Yo no lo mencioné, pero el -ss puede incluir horas y minutos. De tal forma puedes hacer que los jpgs se nombren con los minutos a que corresponden y así es más fácil la autoría.

Además tu puedes indicar el tiempo de peli y la duración de los capítulos, y el script calcular cuantos capítulos crear.

No es necesario que borres en cada bucle los archivos, ya que se sobreescriben, con lo que ganas tiempo. Simplemente bórralos todos al final.

También, para evitarme complicaciones, el primer jpg a los 10 seg. lo creo con una línea independiente. Tu ya sabrás como adaptarlo y qué usar de todo esto.

Por ejemplo:

 *Quote:*   

> set v_duracion_capi=10
> 
> set v_movietime=119
> 
> "E:\DockingExpress\Mencoder pre6\MPlayer.exe" -ss 10 -frames 4 -ao null -vo jpeg:progressive:quality=100 
> ...

 

La quality la pongo a 100, ya que no hay casi variación en el espacio utilizado.

Yo utilicé la frame 00000002, pero tu la 00000004.

Dime cosas.

P.D.: No te olvides de mi y trata de hacer un creador de xml para autorar DVDs con DVDAuthor.

 :Smile: 

----------

## Sertinell

Erflako tiene razon, fue  un fallo mio e estaba trabajando con una version "algo" antigua.  :Embarassed: 

Un saludo

----------

## pampero76

Gracias Prodater64 por tus sujerencias. A penas llevo dos meses programando .... y todo comentario es bienvenido. Por cierto, tu código me recuerda al Amstrand64   :Laughing:   :Laughing:  , fueron mis pinitos en programación aunque luego lo dejé.....y hasta ahora. ¿Fuiste tú el que me pediste una versión para Windows del script de los capítulos? Mientras me compro la regrabadora de DVDs para ponerme con la autoría de DVDs igual me pongo a traducirlo para windows, la verdad es que no tengo ni idea que lenguaje usa windows así que si puedes darme alguna dirección donde pueda ver algún manual o algo .....pues me pongo con ello en mis ratos libres, que ahora no son muchos.

 *Quote:*   

> 
> 
> Además tu puedes indicar el tiempo de peli y la duración de los capítulos, y el script calcular cuantos capítulos crear.
> 
> 

 

En el script ya viene esa opción, él solo saca la duración de la peli y o bien le pones la duración de los capitulos y el se calcula el numero de capítulos....o bien pones el número de capitulos y se calcula la duración de los capitulos. Las variables:

duracion_capi=4 #minutos 

numero_capi=10

sólo las puse para probar el trocillo de codigo que puse.

 *Quote:*   

> 
> 
> P.D.: No te olvides de mi y trata de hacer un creador de xml para autorar DVDs con DVDAuthor
> 
> 

 

No, no me olvido, pero mientras me pillo una grabadora ...no puedo hacer pruebas, pero puedes indicarme manuales de dvd author.....y voy leyendo.

Venga. Feliz año a todos.

----------

## Prodater64

Tu ríete, Amstrand64 te voy a dar a ti.

Lo cierto es que es cmd.exe scripting, bastante útil si se sabe usar, la mejor página de referencia que he encontrado, por lejos

http://www.ss64.com/index.html

también hay bash y otras cositas.

Lo que se aplica a NT, también lo hace a XP. Si hay alguna excepción te lo informa.

Respecto al DVDAuthor, una búsqueda me llevó a:

http://dvdauthor.sourceforge.net/doc/dvdauthor.html

en donde hay una referencia al archivo xml.

En el caso de hacer SVCD y quieras hacer subtítulos seleccionables, puedes usar spumux para generar un xml que multiplexe los subtítulos.

Cualquier cosa que puedas hacer con esto, postéalo aquí Pampero, gracias.

----------

## erflako

He subido al wiki unos cambios .

Dos cosas - una mala y la otra peor :

1.cosa mala - linea 417 codificacion de audio usando "--mplex" :

```

mplayer $INTERVAL -nojoystick -nolirc -quiet -vc dummy -vo null -waveheader -af resample=$OUTPUT_A_SAMPLERATE:0:0 -ao pcm -aofile "$FILE_OUTPUT.wav" "$FILE_INPUT"

```

con audio a52 no funciona - el error es "while resampling ..."

2.cosa peor - linea 483 codificacion de video :

```

mencoder -of mpeg -ffourcc MPG2 -sws $SWS ${SKIP} -noaspect -noauto ....

```

no pego todo el comando que luego se ve feo , el resultado es un fichero .mpv que no se reconoce por mplex :

 *Quote:*   

> 
> 
> # Multiplexando Video y audio /mnt/amule/dvd/mald
> 
>    INFO: [mplex] mplex version 1.6.2 (2.2.3 $Date: 2004/01/13 20:45:26 $)
> ...

 

Por lo demás , lo de usar mencoder , sigue igual de bien/mal - según se mire , porque sigo sin poder usar dvdauthor. Pero el script funciona , claro .

A ver si alguien tiene una version funcional de las antiguas con mplex y puede hacerlo ·

Solo como curiosidad - los ficheros multiplexados con tmplex tambien son "buenos" para dvdauthor .

No me enrollo mas .

Que lo paseis bien y feliz 2005 .

----------

## pampero76

Hola, feliz año a todos.

Bueno, yo sigo con lo mío, jejeje, y estoy un poco atascado a ver si alguien me desatasca. He conseguido hacer la captura de frames como quería, en el punto exacto y en el numero requerido. Ahora quiero ponerle a cada frame capturado algo que me sirviera de referencia para identificarlo cuando se muetre al inicio. Habia pensado en ponerle el tiempo de reprodución mediante la opción -osdlevel 2   de mplayer justo cuando hace la captura. Sin embargo no consigo que aparezca, sin embargo al reproducirlo desde la linea de comandos si sale en pantalla (aparece el tiempo que lleva de reproduccion). Parece que solo captura la imagen, el OSD no. Y bueno, ese es el problemilla que tengo ahora. A ver si puedes con eso Amstrad64 , jejejje

Os pongo una imagen de como se vería un menú de presentación. Es de la película de garfield en formato CVD y con 16 capítulos. El script lo hace todo, desde capturar los frames con mplayer hasta el bordeado (borde rojo de cada frame) y posterios montage en mosaico con el comando 'montage' de ImageMagick. A ver que os parece y si os parece que cambie algo o agregue me lo contáis. 

P.D. Como veis es necesario ponerle algún número de capitulo o tiempo de reproduccion a cada frame para identificarlo, si no es un poco confuso seleccionar uno sobretodo cuando son tantos como en este caso.

http://img102.exs.cx/img102/9852/out768x5766pa.jpg  :Laughing:   :Laughing:   :Laughing: 

----------

## Prodater64

 *pampero76 wrote:*   

> Hola, feliz año a todos.
> 
> Bueno, yo sigo con lo mío, jejeje, y estoy un poco atascado a ver si alguien me desatasca. He conseguido hacer la captura de frames como quería, en el punto exacto y en el numero requerido. Ahora quiero ponerle a cada frame capturado algo que me sirviera de referencia para identificarlo cuando se muetre al inicio. Habia pensado en ponerle el tiempo de reprodución mediante la opción -osdlevel 2   de mplayer justo cuando hace la captura. Sin embargo no consigo que aparezca, sin embargo al reproducirlo desde la linea de comandos si sale en pantalla (aparece el tiempo que lleva de reproduccion). Parece que solo captura la imagen, el OSD no. Y bueno, ese es el problemilla que tengo ahora. A ver si puedes con eso Amstrad64 , jejejje
> 
> Os pongo una imagen de como se vería un menú de presentación. Es de la película de garfield en formato CVD y con 16 capítulos. El script lo hace todo, desde capturar los frames con mplayer hasta el bordeado (borde rojo de cada frame) y posterios montage en mosaico con el comando 'montage' de ImageMagick. A ver que os parece y si os parece que cambie algo o agregue me lo contáis. 
> ...

 

@Pampero:

Que tal, lamentablemente... 

 :Sad: 

Lo máximo que pude descubrir es lo siguiente (voy a seguir con el código Amstrad :  :Very Happy:  )

 *Quote:*   

> set v_duracion_capi=10
> 
> set v_movietime=119
> 
> "E:\DockingExpress\Mencoder pre6\MPlayer.exe" -ss 10 -frames 50 -vf expand=::::1 -osdlevel 2 -subfont-autoscale 2 -subfont-osd-scale 3 -subfont-text-scale 5 -ao null -vo jpeg:progressive:quality=100 "E:\DockingExpress\Samples\Joining\El Dragon Rojo - DivX.ogg"
> ...

 

-frames 50: En mi caso tuve que elegir este valor, ya que cuando se activa el OSD, aparece una línea de posicionamiento bastante molesta, me tuvo toda la noche pensando en como hacer para sacarla, hasta que por fin me avivé.

La línea de marras:

http://img29.exs.cx/img29/2646/000000016yy.jpg

El asunto es que cada vez que se activa el OSD, aparece durante unos segundos esa línea. En mi ordenador desaparece entre la 7a. y 8a. imagen, a veces en la siete me quedaba corto. Esto tenés que tenerlo presente para dejar un margen de seguridad para otros que vayan a usar el script. Siguiendo con la explicación, como en mi PC me da 1/5 jpg, puse -frames 50, y así obtenía 10 jpgs, el 8º lo renombro y es el que voy a usar.

-vf expand=::::1 -osdlevel 2 -subfont-autoscale 2 -subfont-osd-scale 3 -subfont-text-scale 5 

Esta es la línea necesaria para que el OSD se imprima en los jpgs, que no es otra cosa que habilitar los subtítulos, lo que se hace con, -vf expand=::::1. El 1 final es el que los habilita.

-osdlevel 2: Esto ya lo conoces, y nos muestra el tiempo actual de película, en donde se tomó el jpg.

-subfont-autoscale 2: Para que las letras de los subtítulos salgan proporcionales al tamaño de la imagen (como aca no se usan tal vez se pueda sacar, pero ya es muy tarde para mi, probalo vos, por favor).

-subfont-osd-scale 3: En el caso de que prefieras que aparezca la barra de posicionamiento, esto hace que aumente o disminuya de tamaño.

-subfont-text-scale 5 : Lo mismo, pero para los números del reloj.

Todo podés leerlo en http://www.mplayerhq.hu/DOCS/man/es/mplayer.1.html#OPCIONES OSD/SUB

Una imagen final:

http://img102.exs.cx/img102/624/60min6uo.jpg

P.D.: Cómo no me traduzcas el generador de xml para W32...   :Twisted Evil:   :Twisted Evil:   :Twisted Evil: 

Editado: Otra idea es que te tu bach genere un archivo de subtítulos, el propio formato de MPlayer es muy fácil de hacer, con subtítulos tipo Capítulo 1, Cap. 2, Cap. 3, etc., que una vez que entren, permanezcan, digamos 30 segundos, así te asegurás que el batch los agarra. Los tiempos se los daría el propio script.

Por si esta solución te interesa, o si lo quieres hacer junto con lo otro, aca te dejo un link con un ejemplo de subtítulo de formato MPLayer:

http://www.mplayerhq.hu/DOCS/tech/mpsub.sub

La extensión debe ser .sub, y el nombre el mismo del mpg. Con esto el MPlayer lo carga automáticamente.

----------

## oCHARLIEo

Bueno, chicos siento haber estado ausente tanto tiempo... he tenido muchisimo lio, no os haceis una idea... Me han liado en un proyecto nuevo en el trabajo y no he tenido tiempo ni para respirar. ^_^

A ver, en primer lugar comentaros que aquella version que comentabais de mplayer (1.0 pre6) ya esta disponible como ~x86 en el portage... yo ahora no tengo tiempo pero podria ser interesante echarle un vistazo ¿no? tal vez podamos volver al sistema anterior si esta version se comporta correctamente...

Por otro lado, deciros que he estado probando ffmpeg y que funciona MUY bien, me tiene muy contento... de forma que tengo ya practicamente una version de nuestro script con ffmpeg como unica dependencia... convierte fps manteniendo el tempo y mantiene la velocidad de compresion y la calidad ya que no deja de ser libavc... intentare tenerlo terminado lo antes posible y lo colgare en otra pagina del wiki, asi como unos samples del resultado con el video de Matrix... comentadme que os parece plis.

Por cierto, Feliz año  :Wink: 

----------

## Sertinell

 *Quote:*   

> 
> 
> Por otro lado, deciros que he estado probando ffmpeg y que funciona MUY bien, me tiene muy contento... de forma que tengo ya practicamente una version de nuestro script con ffmpeg como unica dependencia... convierte fps manteniendo el tempo y mantiene la velocidad de compresion y la calidad ya que no deja de ser libavc... intentare tenerlo terminado lo antes posible y lo colgare en otra pagina del wiki, asi como unos samples del resultado con el video de Matrix... comentadme que os parece plis. 

 

Ehy ! me alegro de verte por aqui, me alegra leer qe FFmpeg da buenos resultados, ya qe en la ultima version de mplayer pre 6 , estoy teniendo problemas y no duplica los frames como debe, bueno informa de qe los duplica pero en realicdad no lo hace y cambia la duracion, no es a mi el unico qe tiene ese error, un compañero tambien me lo comunico anoche, y le estuve dando cientos de vueltas, pero opciones qe antes trabajaban bien ahora no lo hacen. Lo mas preocupante: qe mi compañero usa la mplayer-pre5-r4

Respecto a la pre6 hay qe echarle un ojo al ebuild e intentar colaborar para qe contemple la opcion de compilar con toolame, ya encontre la libreria qe me faltaba, esta en el toolame de los CVS...

BUeno a ver qe me contais  :Wink: 

Un saludo, voy a seguir empollando ...  :Sad: 

----------

## Prodater64

 *Sertinell wrote:*   

> Respecto a la pre6 hay qe echarle un ojo al ebuild e intentar colaborar para qe contemple la opcion de compilar con toolame, ya encontre la libreria qe me faltaba, esta en el toolame de los CVS...
> 
> Un saludo, voy a seguir empollando ... 

 

A ver si me puedes hacer una compilación (igual que la pre6 pero con toolame) para W32.

Feliz año nuevo para todos.

----------

## erflako

Hola . He hecho unos cambios en el script . Me parecian lógicos , además , antes no me funcionaba la opción de mplex . Ahora sigue teniendo fallos , pero van disminuyendo .

Ahora os comento . El fichero es :

 *Quote:*   

>  fichero: /home/amule/dvd/hack.avi
> 
> ############################################
> 
> # Video:
> ...

 

Todos lo conoceis , estaba en mi página . Con --mplex - bien :

 *Quote:*   

> ..........
> 
>    INFO: [mplex] MUX STATUS: no under-runs detected.
> 
> ug@PIV ~ $
> ...

 

El fichero sale un mpg normal .

Con mencoder puro - tambien . Pero mencoder cambia la duración del video - lo alarga con unos 4 seg. 

 *Quote:*   

> Video stream: 3231,230 kbit/s  (403903 bps)  size: 22182396 bytes  54,920 secs 1250 frames
> 
> Audio stream:  112,000 kbit/s  (14000 bps)  size: 700224 bytes  50,016 secs
> 
> 

 

Con otro fichero :

 *Quote:*   

> ## fichero: /home/amule/dvd/bal.avi
> 
> ############################################
> 
> # Video:
> ...

 

al usar mplex ocurre esto :

 *Quote:*   

>    INFO: [mplex] BUFFERING min 15 Buf max 1859
> 
> **ERROR: [mplex] MUX STATUS: Frame data under-runs detected!
> 
> 

 

Sin embargo el fichero está hasta el final y se ve bien .

Sin polemizar de nuevo - la calidad del fichero multiplexado con mplex es superior al de mencoder . Lo siento , pero con mencoder saltan cuadraditos cada 5-10 seg y con mplex la imagen está bien .

Ahora viene lo peor - la imagen está cuadrada . No se escala bien . Ni con mplex ni con mencoder. He intentado cambiar en :

```
BASE_SCALED=$(($OUTPUT_V_WIDTH-$OUTPUT_OVS*16))
```

el 16 por 8 , como lo teniamos antes , pero no . Sigue igual . Sobre todo el globo terraqueo de Universal al principio de Balto se ve como un huevo (alargado hacia los polos) .

Subo en el WIKI lo que he cambiado . Si a alguien se le ocurre como hacer para mejorarlo - que no se corte , por favor .

Sertinell , de tu página bajé una version antigua (del 17/10) y codifica rematadamente mal - practicamente no se ve mas que cuadrados enormes . Será de las variables , porque la codificación está practicamente como la de los primeros de diciembre antes de cambiar por completo al mencoder .

Una ultima(?) cosa - si intento usar --soundtouch con mplex  me sale error en linea 409 :

```
mkfifo -m 660 "${FILE_OUTPUT}.wav"
```

No se puede crear fifo .... Operacion no permitida.

Pero con mencoder no pasa . Y es la misma linea de codigo .

Cosas . 

No os aburro más .

Saludos .

EDITADO

En el fichero :

 *Quote:*   

> ############################################
> 
> # Video:
> 
> #     Codec:            XVID
> ...

 

codificando con mencoder pasa esto :

 *Quote:*   

> 
> 
> ...............
> 
> Forcing output fourcc to 3247504d [MPG2]
> ...

 

----------

## Sertinell

 *Quote:*   

> Ahora viene lo peor - la imagen está cuadrada . No se escala bien . Ni con mplex ni con mencoder. He intentado cambiar en :
> 
> ```
> BASE_SCALED=$(($OUTPUT_V_WIDTH-$OUTPUT_OVS*16))
> ```
> ...

 

Si la estas viendo en el PC es normal qe se vea "cuadrada", compruebalo en una television. La fuente es un Avi sin bandas negras no ?

 *Quote:*   

> 
> 
> A ver si me puedes hacer una compilación (igual que la pre6 pero con toolame) para W32.
> 
> Feliz año nuevo para todos.

 Pues tendre qe mirar como se compila para windows desde linux ...

----------

## erflako

Sertinell , la imagen es cuadrada y es normal , a lo que voy es que está distorsionada . Como dije , el globo de Universal se ve como un huevo .

Ayer estuve repasando la parte de redimensionado de la imagen y , sinceramente , hay cosas que no se entienden en absoluto . No sé de donde apareció esta parte del script (sé que la pusiste tu en el script original) pero no está nada bien .

```

    x=`echo "(320*$INPUT_V_HEIGHT/$INPUT_V_WIDTH)"| bc -l`

    y=`echo "($BASE_SCALED*$x/320)"| bc -l`

    z=`echo "(($OUTPUT_V_HEIGHT*$y)/($BASE_SCALED/1.333))"| bc -l`

    ALTURA_SCALED=$((`echo "scale=0 ; $z/8"| bc -l`*8))

```

linea 1 - algo * 320

porque es 320 y no cualquier otro valor , no lo vamos a discutir .

linea 2 - algo_otro / 320

No le veo el sentido .

Linea 2 - BASE_SCALED * algo

Linea 3 algo_otro / BASE_SCALED

Estamos mareando la perdiz otra vez .

Line 4 - algo/8 , redondeamos y *8 . Vale , pero para sacar la parte entera de un numero decimal se divide entre 1 y listo . Con esta division he visto diferencia de 4 unidades . Es decir el escalado es impreciso empezando por el redondeo .

Si uno se tira el rollo con lapiz y papel verá que en realidad la penultima linea es esto

```

z=`echo "(($OUTPUT_V_HEIGHT*$INPUT_V_HEIGHT*$OUTPUT_V_ASPECT)/($INPUT_V_WIDTH))"| bc -l`

```

Y la ultima se puede dejar así :

```

ALTURA_SCALED=$((`echo "scale=0 ; $z/1"| bc -l`))

```

Si se pone uno a mirar z es 

ALTO_DE_SALIDA(576 para dvd o segun formato) * ASPECTO_DE_IMAGEN_DE_ENTRADA (INPUT_V_HEIGHT/INPUT_V_WIDTH)  * ASPECTO_DE_TV

Lo que fastidia la imagen es OUTPUT_V_ASPECT . De ahí se distorsiona , se alarga en vertical .

He dejado una linea así:

```
z=`echo "(($INPUT_V_HEIGHT*$BASE_SCALED)/($INPUT_V_WIDTH))"| bc -l`

```

Es ALTO_DE_ENTRADA * ESCALADO_DE_ANCHO . El ancho escalado(deseado) / el ancho original . Así tengo el mismo aspecto de salida que de entrada , porque escalo de igual manera el ancho y el alto de la imagen de salida .

Otro fallo con el que tropecé - si se da intervalo de entrada , mplex peta . La razón es que tenemos el bitrate muy alto . Es un fichero corto (500 frames por ejemplo) y tamaño del fichero enorme - 4200MB . Si se hace "-os ..." , sin problemas , si se pone "-of (s)vcd" igual de bien . Mplex da error solo si se pone "--interval ..."  y no se especifica "-os" .

De todas formas mencoder no hace bien el resampling de audio .  Lo dije en mi post anterior .

Ayer puse Equilibrium (que es de 23,976 fps) con mplex y no se hizo nada bien . A los 4 minutos la imagen se paró y el sonido (de por si desincronizado) siguió . Pues eso , que no se codifica bien . El cambio de los fps no está muy allá .

En el manual de Mplayer pone claramente - un encoder sencillo . ¿No le estaremos pidiendo demasiado al mencoder?

Charlie ¿cómo lo llevas con el ffmpeg?

Prodater ¿que secuencia usas para el escalado de imagen?

Termino . Saludos .

----------

## Sertinell

Respecto al escalado, es cierto qese puede simplificar muxo, los valores de 320 y 240 son por qe son los qe utilice como referencia, si te das cuenta son 1.333, claramente estas cuentas las hice primero a mano, con lapiz y papel, y luego lo puse en el script tal como las habia hecho, casi por tanteo  :Twisted Evil:   :Twisted Evil:  . Sabia de sobra qe se podian simplificar, pero sinceramente, asi funciona igual   :Embarassed:  y no tenia muchas ganas.

Respecto al redonde a 8, es asi, las resoluciones deben ser multiplos de 8 si no, no funciona, seguro qe hay forma de qe  redondee de verdad, y no siempre a la baja, el error de este escalado es de 7 pixeles  :Embarassed:  .

El escalado, unicamente funciona con videos sin bandas negras y en 1:1, es decir, no hace flata escalalros para verlos bien en un PC, si codificas desde un SVCD (352 * 576 ,lejos del 4:3 ) a VCD (supongamos qe tu "reproductor" solo lee VCD, ni siquiera DVD's) el script no lo hace bien, pues no tiene en cuenta ni el cropping, ni el escalado a 4:3 

Estas cosas creo qe ya las conte. 

Te repito, qe el qe la peli se vea cuadrada en el PC y el globo terracqeo ahuevado es normal, se debe visualizar en un televisor, o escalando a 4:3 

```
mplayer -aspect 1.333 file.mpg
```

Un saludo

----------

## erflako

 *Quote:*   

> 
> 
> Respecto al redonde a 8, es asi, las resoluciones deben ser multiplos de 8 si no, no funciona, 
> 
> 

 

Explicamelo , porfavor .

Con dividir entre 1 se redondea perfectamente .

Y echa una mano en el mplex . Yo solo me pierdo y tampoco tengo tanto tiempo .

EDITADO

Al cambiar los fps usando mplex ocurre esto:

 *Quote:*   

> 
> 
> AVI file format detected.
> 
> Cannot seek backward in linear streams!
> ...

 

Pa' mi que es del pipe . Dice que puede buscar hacia atras en streams lineales ...

----------

## oCHARLIEo

Hola chicos, ha dado la casualidad de que yo tb estaba mirando el algoritmo de escalado por que el que tenemos no es el adecuado para ffmpeg... asique he parido otro, os lo dejo aqui para que le pongais pegas...

```

# Este metodo solo funciona si la relacion de aspecto es 1.3 o mayor

# Calculo El Aspect Ratio de entrada

INPUT_V_ASPECT=`echo "$INPUT_V_WIDTH/$INPUT_V_HEIGHT"| bc -l`

# Le quitamos el over-scan al ancho. OJO!! debe seguir siendo MULTIPLO de OCHO

WIDTH_SCALED=$(($OUTPUT_V_WIDTH-$OUTPUT_OVS*8)) #multiplicamos el overscan por 8(4 pixeles a cada lado)

# Si ALTO*ASPECTO=ANCHO  --->> ALTO=1/(ASPECTO/ANCHO)

HEIGHT_SCALED=`echo "1/(${INPUT_V_ASPECT}/${WIDTH_SCALED})"| bc -l`

# Necesito que el alto sea MULTIPLO DE CUATRO para que la longitud del PADDING sea PAR y simplificar el codigo... introduzco un error de 3.999999 pixels (en el peor de los casos)

HEIGHT_SCALED=$((`echo "scale=0 ; $HEIGHT_SCALED/4"| bc -l`*4))

# Calculo el Padding

OUTPUT_V_PAD_WIDTH=$(($OUTPUT_OVS*4))

OUTPUT_V_PAD_HEIGHT=`echo "scale=0 ; ($OUTPUT_V_HEIGHT-$HEIGHT_SCALED)/2"| bc -l`

# Mostramos la informacion:

echo "-> Aspecto de entrada: $INPUT_V_ASPECT"

echo -e "\n# Escalando Video \t-> Width: $WIDTH_SCALED \t\tHeight: $HEIGHT_SCALED"

echo -e "# Padding \t\t-> Width: $OUTPUT_V_PAD_WIDTH x2 \tHeight: $OUTPUT_V_PAD_HEIGHT x2"

echo -e "# Resolucion de Salida \t-> Width: $OUTPUT_V_WIDTH \t\tHeight: $OUTPUT_V_HEIGHT"

```

He introducido el calculo del padding por que ffmpeg no lo hace automaticamente como mencoder y lo necesito, en la salida del script se pueden sumar los dos valores para comprobar el de salida...

Estoy pensando como tratar los videos que tienen relacion de aspecto menor de 4:3... lo suyo seria meter unas bandas negras laterales mas gordas... pero no me gusta como queda, la verdad...

A ver si termino este script y lo cuelgo para que lo probeis...

 *Quote:*   

> 
> 
> Explicamelo , porfavor . 
> 
> Con dividir entre 1 se redondea perfectamente . 
> ...

 

Lo que Sertinell busca al hacer un:

```

ALTURA_SCALED=$((`echo "scale=0 ; $z/8"| bc -l`*8)) 

```

no solo es redondear, lo que quiere es obtener un multiplo de 8 entero... por eso multiplica y divide por 8. Si lo unico que quisiera fuera redondear, efectivamente, con dividir por uno valdria... pero no es el caso.

 *Quote:*   

> 
> 
> Charlie ¿cómo lo llevas con el ffmpeg? 
> 
> 

 

Estoy en ello, estoy en ello... yo tp tengo mucho tiempo  :Wink: 

----------

## oCHARLIEo

En el Archivo Publico de mi web teneis una version del script con ffmpeg y un sample con el fragmento de Matrix q paso Sertinell...

Ya me direis...

----------

## erflako

Dos cosillas , casi insignificantes :

1.¿Como se porta con los FPS "incorrectos"?

No lo he comprobado y la razón es mi segunda pregunta .

2.¿Porque no te gusta la opcion "-od"?

Has puesto la variable en el principio , pero en las opciones no está .

Y ahora explico porque a mi me gusta tanto - muchas veces , cuando tengo unas cuantas pelis y no me sobran ganas , las meto en un RW y las convierto despues . Tambien me pasan algunas peliculas en CD . Si se dispone de "-od" simlemente montas el cdrom y como si fuese un directorio cualquiera . Es un poco mas lento , pero da igual - te ahorras copiar 700MB .

Lo pruebo mañana .

Otra cosa - en el script anterior al usar mplex pusiste un pipe para los FPS incorrectos y el intervalo . No se que le pasa pero se para ahí y no va . Miralo en el wiki .

Saludos.

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> 1.¿Como se porta con los FPS "incorrectos"? 
> 
> No lo he comprobado y la razón es mi segunda pregunta . 
> ...

 

Se porta de maravilla ^_^ he hecho varias pruebas y perfecto... incluso con videos entrelazados con fps incorrectos... impresionante!!

 *Quote:*   

> 
> 
> 2.¿Porque no te gusta la opcion "-od"? 
> 
> 

 

 :Laughing:   Que sensible, por diox!! No es que no me guste... si te fijas te daras cuenta que me he cargado la mitad de las opciones. Es una cuestion de sencillez, para poder trabajar con el script y centrarme en las opciones de ffmpeg sin que me afecte nada mas... Cuando deje terminada la parte de ffmpeg y me asegure de que funciona, volvere a incluir las opciones que he eliminado... y mas!!  :Wink: 

 *Quote:*   

> 
> 
>  en el script anterior al usar mplex pusiste un pipe para los FPS incorrectos y el intervalo . No se que le pasa pero se para ahí y no va .
> 
> 

 

bufff, ya no se ni las pruebas que pude hacer para que funcionara la dichosa conversion de fps y el intervalo de los webs... me volvi loco, te lo aseguro. Le echare un vistazo a ver si veo algo raro... pero sinceramente, tal y como esta funcionando ffmpeg no voy a perder mucho mas tiempo con mencoder, el y yo no nos llevamos muy bien, me desespera!!

----------

## erflako

Bien , lo he probado con unos cuantos trozitos que tengo por aquí para esas cosas .

Calidad - bien . FPS - mejor que ninguno hasta ahora (alguien probó tcextract???) . En definitiva - yo contento .

Ahora lo malo :

 1. En una pasada no funciona , el resultado es este en todas las pruebas :

 *Quote:*   

> 
> 
> ug@PIV ~ $ bash /home/dat/scr/eavi2dvd_ffmpeg  -p 1 /home/amule/dvd/spb.avi
> 
> # eavi2dvd_ffmpeg Version: 0.2a  -- 10-01-2004
> ...

 

Mirad la ultima linea . Que alguien lo compruebe tambien .

2. Con sonido pcm 1 canal (acordaos del fichero que tenia subido) NO codifica el sonido - se escucha ruido y nada mas .

3.Muestra una cierta inestabilidad . A veces simplemente no quiere codificar . Se corta en la segunda pasada .

Pues , nada mas . Como si fuera poco   :Wink:  [/quote]

----------

## Sertinell

Hola, charlie he porbado eso y hay 2 cositas qe qeria comentarte:

El resize no va bien, he hecho una salida a 352x576 y el resultado ha salido mal, las bandas de arriba y abajo eran inmensas y la imagen diminuta (escalando a 4:3). Dime qe parte es lo qe  no te sirve del resize qe haciamos antes, a ver si puedo adaptarla. El padding es la anchura de las bandas negras no? FFmpeg no centra la imagen como hace mencoder?

El error en tu resize esta en qe para una resolucion horizontal de 352 le sale una vertical de 144

```
$ ./dir2dvdff.bash -i -os 90 -of user:352x576 --no_ac3 sample.avi

# dir2dvdff.bash Version: 0.2a  -- 10-01-2004

# Comprobando Existencia de Programas:

   OK: mplayer presente en el Sistema

   OK: ffmpeg presente en el Sistema

## Estableciendo Formato de Salida a: user:352x576

## fichero: sample.avi

############################################

# Video:

#     Codec:            DX50

#     Resolución:       640x272

#     Fps:              25.000

#     Bitrate:          2671584

############################################

# Audio:

#     Codec:            a52

#     SampleRate:       48000

#     Bitrate:          128 (8192)

#     Canales:          2

############################################

#     Duracion: 180 segundos

############################################

-> Aspecto de entrada: 2.35294117647058823529

# Escalando Video       -> Width: 344           Height: 144

# Padding               -> Width: 4 x2  Height: 216 x2

# Resolucion de Salida  -> Width: 352           Height: 576

```

Cuando deberia de ser alrededor de 288 (eso es a ojo  :Wink:  )

Para SVCD tampoco hace el resize de forma correcta. 

El problema esta en qe no tiene  en cuenta qe la razon entre las resoluciones vertical y horizontal no es 4:3 y qe el televisor realizara un escalado despues.

a ver si me explico, si la resolucion del video es 480x576 el televisor hara el escalado a 480x360, variando la resolucion vertical hasta alcanzar una proporcion de 4:3. De ahi qe en el resize qe tenia yo se usaran tantas veces los valores 320x240, fue la primera resolucion 4:3 qe se me ocurrio en ese momento ( no, no se me ocurrio poner 4 y 3 XD )

Espero qe  todo este rollo te sea util  :Wink: 

Ahora el problema mas gordo  :Sad:  : el multiplexado, tu video no se puede dexmultiplexar (esto parece problema de las libavcodec), y tampoco es valido para DVDauthor  :Sad: , ahora comprobare si se ve en el DVD, pero no creo qe haya suerte.

Saludos y gracias por el curro

P.D: Prodater no me olvido de ti, en cuanto me desaogue de los examene miro como compilar el mencoder para windows , aunqe tenga qe iniciar el win2k qe tengo aqui abandonado ( no tiene ni el nero instaldo... ).

P.D2: erflako, perdona qe no te eche una mano con mencoder pero esqe  a mi tambien me tiene bastante desganado, el qe cosas qe antes iban ahora no vayan ( FPS ) ...

----------

## erflako

He hecho un apaño en plan chapucero para que el fichero final sea "comestible" para dvdauthor . 

Tres pasadas , somo antes - audio , dos para el video y al final mplex . Lo que no se comia mplex era el formato de fichero de video y le he puesto "m4v" . Probé casi todos los formatos de ffmpeg y este era el que mejor se le dió a mplex .

```

echo -e "\n# Codificando Audio $FILE_INPUT"

ffmpeg -hq -i "${FILE_INPUT}" -y  -f mp2 -vn -pass 1 -acodec $OUTPUT_A_CODEC -ar $OUTPUT_A_SAMPLERATE -ab $OUTPUT_A_BITRATE "${FILE_OUTPUT}.audio"

if [ $VPASS == 2 ]; then

      # Dos pasadas , esta es la primera

      echo -e "\n# Sacando Estadisticas del fichero de Video $FILE_INPUT"

      ffmpeg -hq -i "${FILE_INPUT}" -y ${INTERVAL} -f "m4v" -vcodec $OUTPUT_V_CODEC -an -pass 1 -passlogfile "dir2dvd_stats" -b ${OUTPUT_V_BITRATE} -r $OUTPUT_V_FPS -aspect ${OUTPUT_V_ASPECT} -s ${WIDTH_SCALED}x${HEIGHT_SCALED} -padtop $OUTPUT_V_PAD_HEIGHT -padbottom $OUTPUT_V_PAD_HEIGHT -padleft $OUTPUT_V_PAD_WIDTH -padright $OUTPUT_V_PAD_WIDTH -padcolor 000000 -maxrate ${MAXBITRATE} -deinterlace -bufsize ${BUFSIZE} "/dev/null"

   fi

   

   echo -e "\n# Codificando el Video ${FILE_OUTPUT}.mpg"

   ffmpeg -hq -i "${FILE_INPUT}" -y ${INTERVAL} -f "m4v" -vcodec $OUTPUT_V_CODEC -an -pass 2 -passlogfile "dir2dvd_stats" -b ${OUTPUT_V_BITRATE} -r $OUTPUT_V_FPS -aspect ${OUTPUT_V_ASPECT} -s ${WIDTH_SCALED}x${HEIGHT_SCALED} -padtop $OUTPUT_V_PAD_HEIGHT -padbottom $OUTPUT_V_PAD_HEIGHT -padleft $OUTPUT_V_PAD_WIDTH -padright $OUTPUT_V_PAD_WIDTH -padcolor 000000 -maxrate ${MAXBITRATE} -deinterlace -bufsize ${BUFSIZE} "${FILE_OUTPUT}.video"

echo -e "\n# Mplex"

mplex -f 8 "${FILE_OUTPUT}.audio" "${FILE_OUTPUT}.video" -o "${FILE_OUTPUT}.mpg"

echo -e "\n# Borrando ficheros temporales"

rm -f dir2dvd_stats* 2>/dev/null

rm -f "${FILE_OUTPUT}.video" 2>/dev/null

rm -f "${FILE_OUTPUT}.audio" 2>/dev/null

```

Sobre el escalado de imagen - no lo he mirado todavía . A mi me parece bastante correcto .

 *Quote:*   

> 
> 
> ## fichero: /home/dat/Equilibrium.avi
> 
> ############################################
> ...

 

Esta noche os cuento como ha salido la peli .

¿Nadie tiene una version antigua del script con mencoder-mplex?

----------

## erflako

El fichero ha salido bastante bien , la imagen ISO se hace bien , dvdauthor no se queja . Quizas se podria pedir algo mas de calidad de video   :Shocked:   , ya puestos ... 

Charlie ¿tienes man page de ffmpeg? Porque yo no . Toda la informacion la saco de "ffmpeg --help" y es muy pobre . ¿Que es el formato m4v?

La version con la que estoy luchando del script con mplex no cambia bien los FPS . He subido algo al wiki , pero ya estoy pa' rendirme .

----------

## erflako

El tandem mencoder-mplex me desespera. Ya lo dejo por imposible .

En fin - ffmpeg va demasiado bien . He puesto la segunda peli a ver si sale algún error , pero con el apaño que os comenté estoy contento .

Espero el codigo de Charlie .

----------

## oCHARLIEo

Hola, siento el retraso... acabo de llegar de asturias y no he tenido hueco. Mañana desde el curro prometo mirar esto, que ahora me voy a dormir ;-P

----------

## erflako

Comento rapidamente las experiencias negativas - mplex se queja del bitrate del video . Si se pone a 10000 para la conversion , al hacer el multiplexado mplex pide "algo" mas y da el tipico error . Tuve que hacer el multiplexado a mano con bitrate 12000 para que salga la peli . ¿Se verá bien en la tele? Y creo que el error es solamente haciendo DVD .

Otra pregunta que hice hace tiempo - ¿Como podemos hacer que salgan dos CDs?

Es decir - 1400MB de fichero final en dos partes . ¿Partiendo el avi en dos?¿O haciendo interval principio:mitad y luego interval mitad:final?¿El script puede llamarse a si mismo recursivamente o ...?

Pues , eso .

Saludos.

----------

## Sertinell

Para partir el archivo en dos lo mejor es qe lo parta mplex al multiplexar  :Wink: 

----------

## erflako

No Sertinell :

 *Quote:*   

> 
> 
> -S|--max-segment-size num
> 
>               This option specifies the maximum size of output files in MBytes (2^10) When the limit is reached
> ...

 

Y lo que interesa es el SVCD .

Buscaremos otra tecnica.

Los ficheros multiplexados con mplex a bitrate 12000 no se cojen por dvdauthor.

----------

## Sertinell

Creo qe lo qe qeremos es esto  :Wink: 

```
-M|--split-segment

              When splitting a long stream in files based on -S mplex  does  a

              certain  amount  of  careful  "running  out" to prevent a GOP or

              audio frame being split.  If the files are simply  going  to  be

              concatenated  for  playback  this  "run  out" is superfluous and

              makes it harder for the player  to  maintain  audio/video  sync.

              This  flag allows the run-out to be turned off.  The DVD profile

              turns this option on automatically.

```

Yo de ingles voy justo, pero por lo qe he probado la opcion, 2 SVCD, uno del tamaño elegido y otro con el resto  :Wink: 

Un saludo

----------

## erflako

Si , Sertinell , la opción -M podría ser valida para SVCD pero lo bueno es que me has hecho releer el man de mplex y he dado con algo que querría hacer hace tiempo - los capítulos de dvd . La peli de una hora la partimos en trozos de 15min y así saltamos hacia delante y atrás facilmente .

Bien.

Ahora lo malo - como dije ayer dvdauthor no coje el fichero hecho con mplex a bitrate 12000 . La salida de dvdauthor es algo como "no se encuentra el primer VOBU sector" .

Según el manual de mplex - si da error como en el caso , hay que bajar el bitrate del video de entrada o subir el de salida (el multiplexado) . Subiendo el de salida a mi no me va . Ahora he puesto las mismas pelis con OUTPUT_V_BITRATE=6000 , no borro los ficheros temporales y uego hago el multiplexado a mano subiendo el bitrate a 8000 . Esta noche veremos .

Lo peor es que con un trozo pequeño la cosa sale bien . Falla cuando es una peli grande . Así que me toca aguantar 4 horas de conversión para ver si he conseguido algo .

¿Hay algun otro multiplexer compatible con dvdauthor?

Porque sería interesante hacer alguna pruebecilla mas .

¿Que os parece si ponemos "Opciones avanzadas" y poder tocar casi todos los parametros desde linea de comandos . Son avanzadas , no para el uso diario sino para casos especiales . Que OUTPUT_V_BITRATE , que OUTPUT_A_BITRATE , que BUFSIZE . que ... cosas .

Charlie nos ha abandonado   :Laughing:   . No aparece por aquí , Asturias , y nosotros rompiendonos los cuernos   :Wink:   .

Saludos .

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> 1. En una pasada no funciona , el resultado es este en todas las pruebas :
> 
> 

 

Ya esta corregido, ahora deberia funcionar...

 *Quote:*   

> 
> 
> 2. Con sonido pcm 1 canal (acordaos del fichero que tenia subido) NO codifica el sonido - se escucha ruido y nada mas . 
> 
> 

 

Te refieres al ha.avi?? yo lo he probado con ese y me ha funcionado bien... que version de ffmpeg tienes?, la mia es la ffmpeg-0.4.9_pre1. Tal vez sea eso...

 *Quote:*   

> 
> 
> El resize no va bien, he hecho una salida a 352x576 y el resultado ha salido mal, las bandas de arriba y abajo eran inmensas y la imagen diminuta (escalando a 4:3). Dime qe parte es lo qe no te sirve del resize qe haciamos antes, a ver si puedo adaptarla. El padding es la anchura de las bandas negras no? FFmpeg no centra la imagen como hace mencoder?
> 
> 

 

pues efectivamente, no funciona... no me comi mucho la cabeza, la verdad. En el codigo pongo un comentario de que solo funciona con aspectos mayores de 1.3... SVCD es 0.6

Efectivamente, el padding es la anchura de las bandas negras. ffmpeg no centra la imagen automagicamente como mplayer y ademas el ancho se especifica por separado para arriba, abajo, izq y derecha... y debe ser par. Es un poco tikismikis...  :Wink: 

No es que no me sirva tu algoritmo... es que no entendia nada ^_^ y como ya sabes que tengo poco tiempo... si me explicas como funciona me ahorraras mucho trabajo  :Laughing:  , en cualquier caso por supuesto habra que arreglar esto.

 *Quote:*   

> 
> 
> Ahora el problema mas gordo  : el multiplexado, tu video no se puede dexmultiplexar (esto parece problema de las libavcodec), y tampoco es valido para DVDauthor , ahora comprobare si se ve en el DVD, pero no creo qe haya suerte. 
> 
> 

 

Te digo lo mismo que a erflako, ¿que version de ffmpeg tienes?, a mi me funciona bien...

 *Quote:*   

> 
> 
> Charlie ¿tienes man page de ffmpeg? Porque yo no
> 
> 

 

http://ffmpeg.sourceforge.net/ffmpeg-doc.html

 *Quote:*   

> 
> 
> Charlie nos ha abandonado  . No aparece por aquí , Asturias , y nosotros rompiendonos los cuernos  .
> 
> 

 

He estado pensando quedarme en asturias y no volver para madrid... por que la verdad es que, no me compensa el stress... ^_^ Que bien se vive alli, por diox!!

En fin, he puesto en el wiki otra pagina con el codigo del script de ffmpeg...

----------

## erflako

No Charlie , el sonido en pcm no me sale . Ahora no hay ni ruido - todo silencioso .

La version de ffmpeg :

 *Quote:*   

> 
> 
> ug@PIV /home/dat $ emerge -s ffmpeg
> 
> Searching...
> ...

 

La misma que la tuya .

Y no se demultiplexan por dvdauthor   :Crying or Very sad:   .

Falla esto :

dvdauthor -o $DIR/lo_que_sea /los/ficheros

El dvdauthor que tengo :

 *Quote:*   

> ug@PIV /home/dat $ emerge -s dvdauthor
> 
> Searching...
> 
> [ Results for search key : dvdauthor ]
> ...

 

¿Que c....s pasa?

 *Quote:*   

> He estado pensando quedarme en asturias y no volver para madrid... por que la verdad es que, no me compensa el stress... ^_^ Que bien se vive alli, por diox!! 

 

Tu sigue dándome ideas .

----------

## oCHARLIEo

Wenas, he sacado otro ratito para vosotros ^_^

He modificado el script con ffmpeg para que use mplex y sea compatible con dvdauthor... El codigo lo teneis en el wiki, pruebalo sobre todo tu erflako a ver si asi te funciona bien... y nos ponemos con el resto de las opciones que faltan!!

Lo proximo... un interfaz grafico...  :Wink: 

PD: Tenemos pendiente el tema del redimensionamiento... si es q no tengo ni un hueco  :Shocked: 

----------

## Sertinell

Ummm, a ver si lo puedo mirar, qe el examen de mñn es el qe mejor llevo de todos  :Very Happy:   :Wink: 

Com interfaz grafica encontre esto, el poblema esqe el autor no tiene internet y contactar con el, para complementar su gui con nuestro script y nuestro script con su GUI es alto costoso, la gui esta en TCL, no se si sera mas sencillo hacerla en GTK+, GTK o gambas (por decir ejemplos). Esta gui tambien usa FFmpeg, pero tiene el mismo problema qe nosotros con el resize (bueno, es aun mas grande) y para el multiplexado... directamente da video y audio sin multiplexar. 

Respecto a DVDauthor, es el unico soft de autoria de DVD qe exige tener el video y el audio ya multiplexado, el resto de programas (por desgracia todos para win) trabajan mejor con las streams separadas.

Un saludo.

P.D. Por mi parte mencoder lo dejamos obsoleto no?

----------

## psm1984

¿y una combinacion python-gtk usando glade?

----------

## Sertinell

Nu se, yo  esqe nu tengo ni guarra de progrmacion con graficos ...  :Sad:  Si alguien se ofrece, o no es muy dificil... La verdad esqe a mi las TCL no me gustan, son mu feas, y ademas no es lo mas comun de tener instalado, si no fuera por amsn creo qe yo no las tendria puestas ... 

Un saludo

----------

## psm1984

Yo tambien quiero aprender, y por algo habra que emepezar  :Very Happy: , pero ahora no tengo apenas tiempo,  como todos   :Mad: . Tambien se puede hacer una pseudo interfaz grafica con dialog   :Very Happy: .

PD: mira, esto esta hecho con python http://freevo.sourceforge.net/about.html pero creo que usa sdl.

PD2: ¿donde estan publicados los scipts?

----------

## Sertinell

He cambiado un par de cosas en el FFmpeg, he adaptado el resize del script anterior, y ahora ya funciona algo mejor (igual qe lo hacia en mencoder). He cambiado tambien para la opcion -os funcionara, qe no lo hacia, cuando codificas capitulos de series esta opcion es importante  :Wink: 

psm1984, los script estan el el wiki qe creo charlie creo qe funciona perfectamente como usuario anomino, para lectura  :Wink: 

Un saludo

----------

## psm1984

¿os interesaria que el script se usase dialog? por modificarlo   :Rolling Eyes: 

----------

## Sertinell

Pues si es como una opcion a mi no me importaria, eso si, sin renunciar a la linea de comandos, qe fuera preguntando, en vez de leer la linea de comandos, si se ejecuta con la opcion "--interactive", por poner un ejemplo. 

Tambien seria interesante qe leyera las setings, ademas en algun archivo del tipo ~/.dir2mpg.conf para los qe codificamos siempre igual no tener qe escribir el chorro, ni andar seleccionandolo con dialog.

Bueno, parece qe se une un desarrollador mas  :Very Happy:  jeje, ale ya te he encasqetado la parte grafica  :Razz: . No dudes en pedirle una cuenta a charlie  :Wink: 

Charlie, en la linea de FFmpeg o has incluido nada acerca de las matrices, por lo qe usara los valores por defecto, a ver si lo miro tambien y pongo una opcion para definir la matriz a usar, ahi varias (KVCD, PVCD, en realidad cada soft tiene una propia ... ) y no todas dan los mismos resultados  :Wink: 

Un saludo

Edito: Alguno ha conseguido usar el script de pampero ? Por qe a mi no me funciona por ningun sitio, y no soy capaaz de encontrar el error, como y donde hay qe ejecutarlo ?

----------

## erflako

Bueno , ya se ve movimiento .

Me hice una versión para uso "privado" con mplex y, tambien , con tcmplex (!?!) , pero , Charlie , ya se que no me lees , tio , mplex me daba errores en unas pelis . No sé si es de la peli o de que viene . Si le pones bitrate 10000 ( u 8000 ) , mplex peta - "Too many frames drop , exiting" , y si bajo el bitrate e 5000 - igual . En el man de mplex dice que si da problemas la solución es subir el bitrate del multiplexado (llegue a 15000) o bajar el de codificación , pero igualmente hay que subir el del multiplexer para que no dé errores . Que es una chapuza ¿no?

Tcmplex no da errores , pero es mucho mas pobre que mplex .

No he subido mi versión al wiki porque es de pruebas , aunque he pegado la codificación de ffmpeg en el script antiguo y tengo todas las opciones .

Hace tiempo pregunté ¿que os parecía unas opciones extendidas de tipo audio bitrate , video bitrate y alguna cosilla mas ? Solo para propositos de investigación y pruebas con ficheros que no se hacen bien de la manera "normal" .

Sobre la GUI - hace bastante tiempo hice algo en Java , que ni a mi mismo me convencia y lo tengo un poco abandonado . Despues le pedí a Prodater unos screenshots  y me los mandó . Su manera de hacer las cosas es mas sencilla - tabs para cada "elemento" - video , audio , multiplexer etc y a mi me gustó . Lo que tengo hecho (que no esta en ningun sitio) intentaré terminarlo y compilarlo . Me parece que casi todo el mundo tiene la maquina virtual de Java , pero un codigo comilado es mejor. 

Sobre TCL/Tk , Pytho y cosas así - soy reaceo . Si quiero compilar el byte-code no me voy a meter en lenguajes de scripting ¿verdad?

Lo que propone Sertinell - GTK está bien , pero yo en C ando algo perdido .

Asi que vosotros vereis . De ninguna manera quiero abandonar , claro . Lo malo es que mplex me da muchos errores , aunque me gusta mas que ninguno (ademas hace capitulos en dvd y se pueden hacer en s/vcd) . Y sobre GUI - lo dicho - yo lo unico que controlo bastante bien es Java ( si no contamos Fortran  :Very Happy:  ) .

Saludos .

----------

## psm1984

 *erflako wrote:*   

> 
> 
> Sobre TCL/Tk , Pytho y cosas así - soy reaceo . Si quiero compilar el byte-code no me voy a meter en lenguajes de scripting ¿verdad?

 

No te entiendo bien, la aplicacion es ideal para usar python por ejemplo, no hace falta potencia, cuanto mas sencillo quede el codigo mejor y puedes realizar cambios muy rapidos.

----------

## Sertinell

erflako yo he tenido el mismo error con mplex, al multiplexar un fichero qe estaba a 2500 (cuando no funcionaba -os ) de bitrate casi fijo, para SVCD, y me ha dado el error de frames droped, pero haciendolo como yo qeria, es decir bajando el bitrate a alrdedor de 1500 de media ha ido bien.

----------

## erflako

Sertinell , ayer puse una peli dvd a 5000 y lo mismo . Error . Cuanto mas bajo el bitrate - mas grande el fichero . Tampoco me importa mucho , pero si una peli viene en dos cds y tengo que gastar dos dvds ... como que no . Mejor hacer svcd . Pero tengo la costumbre de buscar pelis avi de algo mas de calidad para hacer un dvd . Entonces no me salen las cuentas .

Psm1984 , tal vez el script sea perfecto para Python (del que tampoco tengo idea) , tal vez tu veas una ventaja imperceptible para mi en los lenguajes de scripting , pero desde los confines de los tiempos utilizo lenguajes compilados (jamas utilicé QBasic y mariconadas por el estilo) , así que , entiendeme - prefiero algo que, por lo menos es semi-interprete" y que se pueda compilar despues .

De todas  formas , como siempre hemos dicho , aquí mandaba Sertinell desde el principio . Tal vez nos estemos tomando algo mas de libertades , pero yo creo que deberíamos de tomar una decisión entre todos . Si se va a hacer en TCL/Tk - podría colaborar algo , pero en C y cosas desconocidas para mi - se entiende que no . Además Tcl es interpretado y ... ponte a buscar errores .

Bueno , eso ya lo veremos ¿no?

Saludos .

AÑADIDO

Charlie , no me seas bruto . Yo tengo mplex OPCIONAL . Haberlo dejado como opcion - por defecto multiplexa con ffmpeg y solo como opcion - mplex . No pensaba que ibas a suprimir ffmpeg del todo .

----------

## oCHARLIEo

jode... os pongo unas lineas y os emocionais a escribir... intuyo que esta version funciona un poco mejor por las espectivas que veo...

 *Quote:*   

> 
> 
> Ummm, a ver si lo puedo mirar, qe el examen de mñn es el qe mejor llevo de todos 
> 
> 

 

Sertinell, las oblicaciones lo primero!! ya lo miraras, tranki. No somos una empresa, ni tenemos plazos de entrega ni nada... relax. ^_^

 *Quote:*   

> 
> 
> Respecto a DVDauthor, es el unico soft de autoria de DVD qe exige tener el video y el audio ya multiplexado, el resto de programas (por desgracia todos para win) trabajan mejor con las streams separadas. 
> 
> 

 

Yo en mi primer script tenia una opcion para no multiplexar... puede ser interesante no??

 *Quote:*   

> 
> 
> Por mi parte mencoder lo dejamos obsoleto no?
> 
> 

 

Yo voto por que si, creo que ffmpeg esta funcionando bien. Calidad decente con unos tiempos aceptables... para mi genial. ya os lo he dicho alguna vez, yo y mencoder no nos entendemos   :Wink:  (q no digo q sea mal programa ojo)

 *Quote:*   

> 
> 
> ¿y una combinacion python-gtk usando glade?
> 
> 

 

a ver... q os acelerais X-DDD. He comentado el tema del apartado grafico para que lo vayamos comentando trakilamente... pero hay que hacer mucho trabajo todavia con el ffmpeg... 

Por favor no os lieis a meter opciones cuando aun no tenemos funcionando 100% al ffmpeg por que complican el codigo y lo hacen mas dificil de depurar... ya tendremos tiempo de meter las opciones que os salgan de los mismisimos... ^_^

Todavia nos falta el tema de las matrices que comenta sertinell, que yo comprenda el redimensionamiento(esto requerira mucho trabajo X-D), y hacer pruebas con distintos tipos de ficheros por si tenemos alguna incompatibilidad...

En cuanto a la parte grafica... yo preferiria hacer un programa aparte que llame al script y no incluirlo dentro, ya que solo complica aun mas el codigo y no es necesario... tal vez alguien quiera usar solo el script y no la parte grafica... tenez en cuenta que hacer un interfaz es limitar mucho a los usuarios, hay gente que tiene GTK y otra QT, otra no usa TLC (como yo) y otra odia python como interfaz grafico (como yo)... que cada uno use el interfaz que quiera con el mismo nucleo... como el MLDONKEY!!!   :Laughing: 

 *Quote:*   

> 
> 
> Tambien seria interesante qe leyera las setings, ademas en algun archivo del tipo ~/.dir2mpg.conf para los qe codificamos siempre igual no tener qe escribir el chorro
> 
> 

 

Esa es una opcion interesante... la habiamos comentado antes?? me suena... la dejamos apuntada para cuando este funcionando 100% bien. Deberiamos hacer un TODO... creo que abrire una nueva seccion en el wiki para que todos vayamos agregando al TODO en plan brainstorm...

 *Quote:*   

> 
> 
> Bueno, parece qe se une un desarrollador mas  jeje, ale ya te he encasqetado la parte grafica . No dudes en pedirle una cuenta a charlie 
> 
> 

 

ese soy yo!!! sisi vale   :Cool:  . Pampero si quieres colaborar necesito un mensaje privado con un nombre de usuario y una password que ya te pondre yo la clave y el usuario que quiera   :Laughing: 

 *Quote:*   

> 
> 
> Me hice una versión para uso "privado" con mplex y, tambien , con tcmplex (!?!) , pero , Charlie , ya se que no me lees , tio , mplex me daba errores en unas pelis
> 
> 

 

Que no te leo!!  :Crying or Very sad:   :Crying or Very sad:  pero si he metido mplex porque querias usar DVDAuthor... mi no entender X-D. Ademas os habeis fijado que no he puesto ningun parametro de tamaño de buffer al mplex?? a mi me esta funcionando bien asi, debe hacer los calculos el... tcmplex mola pero el mpeg es valido con dvdauthor?? ademas metemos transcode como dependencia, buff...

 *Quote:*   

> 
> 
> Hace tiempo pregunté ¿que os parecía unas opciones extendidas de tipo audio bitrate , video bitrate y alguna cosilla mas ? Solo para propositos de investigación y pruebas con ficheros que no se hacen bien de la manera "normal" . 
> 
> 

 

Perfecto!! esto para el TODO cuando ffmpeg + mplex(o lo q sea) funcionen bien  :Twisted Evil:  Estas opciones las podemos meter dentro del fichero de configuracion que comentaba Sertinel...

 *Quote:*   

> 
> 
> Sobre TCL/Tk , Pytho y cosas así - soy reaceo . Si quiero compilar el byte-code no me voy a meter en lenguajes de scripting ¿verdad? 
> 
> Lo que propone Sertinell - GTK está bien , pero yo en C ando algo perdido .
> ...

 

Yo tambien soy reacio a lenguajes de scripting para hacer interfaces graficos me parecen lentos... y lo de los cientos de librerias para instalar no lo llevo muy bien, lo se soy raro... q le vamos a hacer...  :Rolling Eyes: 

 *Quote:*   

> 
> 
> Charlie , no me seas bruto . Yo tengo mplex OPCIONAL . Haberlo dejado como opcion - por defecto multiplexa con ffmpeg y solo como opcion - mplex . No pensaba que ibas a suprimir ffmpeg del todo .
> 
> 

 

PERO COMO QUE BRUTO!!! X-DDDD que falta de respeto es esta.... ainsss. A ver... no he suprimido ffmpeg, solo he dejado de multiplexar con el... que mas da?? asi podemos decidir si no queremos multiplexar (a veces necesitas los flujos por separado) y ademas la salida es compatible con DVDAuthor...

Edito: no funciona siempre... okis, me lo empapo bien a ver que ·"%·&/$&% le da por hacer...

Editado(2): He modificado otra vez el codigo, he arreglado lo del -os para que funcione manteniendo el establecer formato al final... debe estar ahi por si no estableces ningun formato, que pille uno por defecto... y he remodelado el algoritmo de Sertinell... he quitado una linea, vamos  :Wink: 

Funciona sactamente igual, creo   :Twisted Evil: 

Estoy ahora con el mplex... informare

----------

## Sertinell

Juer como escribe este hombre !! XD

Veamos:

N te voy citando qe me desesèr seleccionando lo cachos:

Respecto al examen, llegaste tarde, ya lo hice etsa mñn y lo clave  :Very Happy:   :Wink: , ahora a por el del lunes, ese va algo peor ...  :Sad: 

La opcion para las streams separadas es una buena opcion, sobre todo para el debugging  :Wink: 

Respecto aal gui, esta claro, qe la gui llame al script con las opciones debidas, nada de integrarla ...

Mi forma de arreglar el -os fue una chapucilla, pero funcionaba  :Wink: 

Respecto a explicarte el resize, ufff a mi me cuesta trabajo entenderlo ..., cuando acabe con los examenes a ver si podemos contactar por IM y lo intento, es algo asi cono aplicaciones lineales, con cambios de base (qe bien se me da el algebra  :Very Happy:  !!!).

Un saludo,

P.D. ya tengo las man de FFmpeg impresas ^_^

----------

## erflako

Voto :

Si al ffmpeg , nos olvidamos de  mencoder .

Si a las opciones - cuantas mas , para no usarlas siempre hay tiempo ¿no? . Hasta tengo dos de mplex - mux-bitrate y video-buffer . Ya os las enseñaré .

Si a borrar o no los streams de audio y video . Tengo comentadas las dos lineas que los borran - si mplex da error lo hago a mano .

Si alguien ha visto mi chapucilla de GUI habrá visto que es un programa que llama el antiguo script de Charlie y el script sigue operativo de por si . Jamás tuve la menor idea de integrar ambas cosas .

Charlie , por mucho que te enfades   :Wink:   - lo he dicho - tcmplex multiplexa bien para dvdauthor , pero es muy pobre . Nada de opciones . Prefiero mplex que puede hasta hacerte los capitulos de dvd (no s/vcd , solo dvd) .

La siguente tonterìa se me ocurrió hoy . Algo de tipo :

```

while true do{

  mplex ... ... ...

  if ( "mplex return value " == error )

    mux-bitrate += 2000

  else

    break

  fi

done

}
```

Dicho de otra manera - subimos mux-bitrate (opcion "-r" en mplex)  hasta que deje de dar errores (el incremento de 2000 es un poco arbitrario y valdría para dvd) . Si da error - a multiplexar otra vez si no - fuera y a seguir .

O si no da error - borrar los ficheros . Eso si no se pide exclisivamente que se dejen . Si da error - no se borran y el usuario puede hacer lo que quiera .

Sertinell dijo que habia buscado programas de autoría ¿de verdad no hay otro que no sea dvdauthor?

Ya me contareis .

Saludos .

----------

## Sertinell

erflako, creo qe has tenido algun error al simplificar el resize, no el el resize,sinno en la parte del aspect_precise, el if ese no funciona, da un error de bash, en mi version de casa, lo he suprimido (dejandolo en 4/3 para siempre ), pero no he tocado el wiki por qe tampoco s cual es la solucion, y no qeria cargarme tu trabajo  :Wink: 

Un saludo

----------

## erflako

Gracias Sertinell .

Las prisas no son buenas . La verdad es que no lo comprobé . Es la falta de espacio entre el "if" y "[" . Ya está arreglado .

El tema del escalado a mi me parece que está bien , es decir - lo hace de la manera correcta . Como he puesto en los comentarios ( que alguien lo quite ) la altura escalada es altura de la imagen de entrada por el aspecto de la imagen de entrada por el aspecto de la TV . 

```

HEIGHT_SCALED = INPUT_V_ASPECT * OUTPUT_V_ASPECT * OUTPUT_V_HEIGHT

```

Es lo mismo que estaba pero hecho en una linea de código .

Por mi - lo daba por valido y zancado .

Con el riesgo de repetirme - el tcmplex multiplexa muy bien para dvdauthor , los ficheros salen bien , es un poco mas rápido que mplex ( o son imaginaciones mias ) , nunca me ha dado errores , pero no tiene opciones .

No me gustaría tener que usarlo .

En cuanto demos este script por finalizado estoy pensando cambiar la codificación por mpeg2enc . Forma parte de mjpegtools . Pero esto como una cosa aparte . No me hagais caso .

¿ Alguien sabe dónde se ha perdido prodater ? Desde que se mencionó ffmpeg y dejamos de lado mencoder se nos ha perdido .

Saludos .

----------

## Sertinell

Hola:

Anoche codifiqe 13 rchivos de golpe, y todos salieron bien  :Very Happy: , o eso creo. De esto me ha servido para darme cuenta de qe necesitamos generar un LOG. Se qe es sencillo cojer y redirigir todas las salidas hacia un archivo ( & >> foo.log ) Pero hay alguna manera de qe salga por el archivo y por la pantalla ? 

Asi a bote pronto se me ocurre qe con lago asi... 

```
 script -of DVD -os 325 *.avi & >> script.log & cat script.log
```

 Deberia funcionar, pero, algo para hacerlo sin tener qe lanzar el cat ?

A ver qe os parece y si se os ocurre una forma mas "bonita" de implementarlo  :Wink: 

Un saludo

P.D: Ni zorra de donde se metio prodater, no creo qe su desaparicion haya tenido nada qe ver con el paso a ffmpeg  :Wink: 

----------

## erflako

Bien lo del log . Me parece correcto , aunque mas util veo un error-log . Si la codificación termina bien - como que no me interesa mucho leer toda la salida etc . Y si falla - a ver de donde viene el fallo .

Pero un log estaría bien .

¿Que pasa si añadimos la linea de codigo que pones ahi despues de cada comando?

Un poco chapucero , pero se puede redirigir la salida .

¿Ponemos una opción de hacer capidulos en dvd? Lo hace mplex . En s/vcd es mas complicado por que mplex necesita saber los capitulos antes de hacer el multiplexado , pero en dvd lo hace .

Ya me direis .

 *Quote:*   

> 
> 
> P.D: Ni zorra de donde se metio prodater, no creo qe su desaparicion haya tenido nada qe ver con el paso a ffmpeg Wink
> 
> 

 

Espero .

Saludos .

P.D. Y tu , Sertinell , a estudiar que mañana te toca examen   :Wink:   .

----------

## Sertinell

Hola

 *Quote:*   

> P.D. Y tu , Sertinell , a estudiar que mañana te toca examen

 Jeje al final es el martes, cabecita loca qe es uno.

Hoy mirando el script me he dado cuenta de la extrema sencillez de la linea del FFmpeg, creo qe deberiamos centrarnos en eso, sobre todo, hay qe delimitar los GOP's no se como actua ffmpeg por defecto, pero los Gop's (KEYINT en mencoder) de un DVD no deben ser mayores de 15 para pal y de 18 para NTSC. Tambien estan las matrices.

Un ejemplo de las opciones qe deberiamos trastear son:

```
`-g gop_size'

    set the group of picture size 

`-qscale q'

    use fixed video quantiser scale (VBR) 

`-qmin q'

    min video quantiser scale (VBR) 

`-qmax q'

    max video quantiser scale (VBR) 

`-qdiff q'

    max difference between the quantiser scale (VBR) 

`-qblur blur'

    video quantiser scale blur (VBR) 

`-b_qfactor factor'

    qp factor between p and b frames 

`-i_qfactor factor'

    qp factor between p and i frames 

`-b_qoffset offset'

    qp offset between p and b frames 

`-i_qoffset offset'

    qp offset between p and i frames 

#####

`-dct_algo algo'

    set dct algorithm to algo. Available values are:

    `0'

        FF_DCT_AUTO (default) 

    `1'

        FF_DCT_FASTINT 

    `2'

        FF_DCT_INT 

    `3'

        FF_DCT_MMX 

    `4'

        FF_DCT_MLIB 

    `5'

        FF_DCT_ALTIVEC 

`-idct_algo algo'

    set idct algorithm to algo. Available values are:

    `0'

        FF_IDCT_AUTO (default) 

    `1'

        FF_IDCT_INT 

    `2'

        FF_IDCT_SIMPLE 

    `3'

        FF_IDCT_SIMPLEMMX 

    `4'

        FF_IDCT_LIBMPEG2MMX 

    `5'

        FF_IDCT_PS2 

    `6'

        FF_IDCT_MLIB 

    `7'

        FF_IDCT_ARM 

    `8'

        FF_IDCT_ALTIVEC 

    `9'

        FF_IDCT_SH4 

    `10'

        FF_IDCT_SIMPLEARM 

`-bf frames'

    use 'frames' B frames (supported for MPEG-1, MPEG-2 and MPEG-4) 

`-mbd mode'

    macroblock decision

    `0'

        FF_MB_DECISION_SIMPLE: use mb_cmp (cannot change it yet in ffmpeg) 

    `1'

        FF_MB_DECISION_BITS: chooses the one which needs the fewest bits 

    `2'

        FF_MB_DECISION_RD: rate distoration 

```

Las primeras afectan a la forma de codificar(el gop, etc.), las segundas a la forma de salvar los obstaculos (mocrobloques, etc.) Seria cuestion de trastear, al mas puro estilo prueba error... Yo ahora no tengo tiempo, puta uni :@ Si acaso me dedicare a busca por otras paginas dedicadas ams a la codificacion de mpeg, a ver si en alguna hay algo interesante  :Wink: 

Por lo menos la parte de definir el gop si es necesaria, o si no, no estaremos en los estandares ...

Edit: Lo de los capitulos me parece bien, seguro qelos hace mplayer ?yopense qe de esose encargaba DVDauthor, y qe para SVCD se hacian con vcdxbuild (el script de pampero, qe aun no me funciona... )

Un saludo

----------

## erflako

Vale .

¿Alguien tiene idea del valor que tiene que tener GOP size?

He visto esto :

 *Quote:*   

> 
> 
> To have a constant quality (but a variable bitrate), use the option '-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst quality).
> 
> 

 

es decir -> "-qscale 1"  podria valer .

Y esto otro :

 *Quote:*   

> 
> 
>     * When converting video files, you can use the '-sameq' option which uses in the encoder the same quality factor than in the decoder. It allows to be almost lossless in encoding. 
> 
> 

 

Otra opcion que tu no contemplas es :

```
`-me method'

    set motion estimation method to method. Available methods are (from lower to best quality):

    `zero'

        Try just the (0, 0) vector. 

    `phods'

    `log'

    `x1'

    `epzs'

        (default method) 

    `full'

        exhaustive search (slow and marginally better than epzs) 

```

y sobre esto :

 *Quote:*   

> 
> 
> If your computer is not fast enough, you can speed up the compression at the expense of the compression ratio. You can use '-me zero' to speed up motion estimation, and '-intra' to disable completely motion estimation (you have only I frames, which means it is about as good as JPEG compression)
> 
> 

 

Lo malo es que no encuentro nada documentado sobre ffmpeg .

Pego un link que es sobre mpeg2 , aunque un nivel "arriba" hay otras cosas :

http://bmrc.berkeley.edu/frame/research/mpeg/mpeg2faq.html

Saludos .

----------

## Sertinell

El gop debe de ser 15 para PAL y 18 para NTSC. El qscal, se introduce un rango, normalmente se pone 2 como min y 31 com maximo, poner 1 como minimo qe yo sepa es tonteria (aumenta el tamaño y no se nota la calidad), y si se pone a 2 fijo, no se le deja oscilar y los resultados no son los queridos.  Nosotros creo qeno deberiamos usar -qscale, pero si -qmin y -qmax, si codificamos en funcion de un bitrate (tal y como lo hacemso) es ams facil buscar un tamaño de salida.

respecto a -me, no lo he creido necesario, la unica duda podria estar entre full y epzs, excepto qe las pruebas demuestren lo contrario, y si la documentacion dice qe la diferencia es marginal ...

Mis conocimientos no me alcanzan a mas por lo qe ando buscando gente qe ya haya realizado sus pruebas par hacerles un copy and paste  :Wink:   :Twisted Evil:   :Twisted Evil: 

un saludo

P.D. Creo qe nome he explicado bien como funciona qscale, otra noxe me explayo un poco  :Wink: 

----------

## erflako

 *Quote:*   

> El gop debe de ser 15 para PAL y 18 para NTSC.

 

¿Hacemos NTSC opcional también?

qmin ... qmax -> 2 ... 20 por ejemplo ? No sé .  Lo que dices - hay que hacer pruebas . Buscaré un avi con mucho movimiento y le voy a dar poco a poco .

 *Quote:*   

> Mis conocimientos no me alcanzan a mas por lo qe ando buscando gente qe ya haya realizado sus pruebas par hacerles un copy and paste Wink Twisted Evil Twisted Evil

 

Ni los mios . Y tampoco puedo hacer en una semana lo que ha hecho la gente en dos años . Tampoco conozco el formato mpeg a fondo para saber donde hay que tocar exactamente .

 *Quote:*   

> Lo de los capitulos me parece bien, seguro qelos hace mplayer ?

 

Mplex , no mplayer . 

man mplex :

 *Quote:*   

> 
> 
>  -S|--max-segment-size num
> 
>               This option specifies the maximum size of output files in MBytes
> ...

 

y tambien :

 *Quote:*   

> 
> 
>  -M|--split-segment
> 
>               When splitting a long stream in files based on -S mplex  does  a
> ...

 

No son realmente capitulos . La authoría con dvdauthor es  complicada - pasa por .xml ficheros de configuración y no creo que se pueda integrar en este script . Para hacerlo bien hará falta otro script que se dedique exclusivamente a esto . Integrar otro script en GUI despues de la codificación es tema aparte .

Sobre autoría con dvdauthor - http://mightylegends.zapto.org/dvd/dvdauthor_howto.php .

Bueno . Creo que ya me paro .

Saludos .

----------

## oCHARLIEo

 *Quote:*   

> 
> 
> Juer como escribe este hombre !! XD
> 
> 

 

Tiembla, que vengo otra vez....

 *Quote:*   

> 
> 
> Charlie , por mucho que te enfades  - lo he dicho - tcmplex multiplexa bien para dvdauthor , pero es muy pobre . Nada de opciones . Prefiero mplex que puede hasta hacerte los capitulos de dvd (no s/vcd , solo dvd) 
> 
> 

 

¿Y quien ha dicho que yo me enfade? si tcmplex multiplexa bien para dvdauthor pos estupendo, no me gusta mucho meter como dependencia transcode... pero podemos meterlo como dependencia opcional... la verdad es que mplex me esta desilusionando tb un poco, es demasiado dependiente de la estructura de los flujos... si pilla algo raro casca. Podemos usar temporalmente tcmplex hasta que podamos usar mplex con seguridad...

 *Quote:*   

> 
> 
> En cuanto demos este script por finalizado estoy pensando cambiar la codificación por mpeg2enc . Forma parte de mjpegtools . Pero esto como una cosa aparte . No me hagais caso . 
> 
> 

 

vale... no te voy a hacer caso  :Laughing: 

 *Quote:*   

> 
> 
> Se qe es sencillo cojer y redirigir todas las salidas hacia un archivo ( & >> foo.log ) Pero hay alguna manera de qe salga por el archivo y por la pantalla ? 
> 
> Asi a bote pronto se me ocurre qe con lago asi... 
> ...

 

La idea es muy buena, pero esta linea solo te saca el texto por pantalla cuando termine el proceso... si se tira dos horas, te saldra el texto a las dos horas... no se si me explico...

es mejor hacer:

```

script -of DVD -os 325 *.avi | tee -a script.log 

```

esto saca por pantalla y al fichero a la vez ^_^

Lo agrego al ToDoList --> http://nexusvi.no-ip.org/phpwiki/index.php/AviToMpegTodoList

 *Quote:*   

> 
> 
> ¿Ponemos una opción de hacer capidulos en dvd? Lo hace mplex . En s/vcd es mas complicado por que mplex necesita saber los capitulos antes de hacer el multiplexado , pero en dvd lo hace . 
> 
>  Ya me direis . 
> ...

 

Yo voto por que si, pero primero vamos a dejar a mplex(o lo q sea) funcionando bien y luego miramos todo esto... lo agrego al TODO tb

 *Quote:*   

> 
> 
> Hoy mirando el script me he dado cuenta de la extrema sencillez de la linea del FFmpeg, creo qe deberiamos centrarnos en eso, sobre todo, hay qe delimitar los GOP's no se como actua ffmpeg por defecto, pero los Gop's (KEYINT en mencoder) de un DVD no deben ser mayores de 15 para pal y de 18 para NTSC. Tambien estan las matrices.
> 
> 

 

efectivamente, creo que es aqui y en mplex(o tcmplex) donde deberiamos centrarnos ahora y ir tomando nota de las opciones interesantes para hacerlas despues... es mas facil trabajar con menos lineas de codigo.

 *Quote:*   

> 
> 
> ¿Hacemos NTSC opcional también? 
> 
> 

 

yo creo q si deberiamos hacerlo, es facil... solo es meter mas secciones en la funcion func_Establece_Output_Format... se esta haciendo muy grande esta funcion... deberiamos meter todos estos datos en un fichero aparte y que esta funcion se encargara de leerlos del fichero y de establecerlos... lo apunto al ToDo tb

 *Quote:*   

> 
> 
>  La authoría con dvdauthor es complicada - pasa por .xml ficheros de configuración y no creo que se pueda integrar en este script . Para hacerlo bien hará falta otro script que se dedique exclusivamente a esto . Integrar otro script en GUI despues de la codificación es tema aparte
> 
> 

 

No creo que agregar dvdauthor al script sea interesante, ni tp hacer un script para dvdauthor, ya hay mucha gente trabajando en estos temas:

http://qdvdauthor.sourceforge.net/

http://polidori.sourceforge.net/

Hay teneis dos interfaces, uno QT y otro GTK+ para DVDAuthor

----------

## psm1984

Buenas, estoy aprendiendo python, y para ello pues me estoy dedicando a hacer un programa que haga lo mismo que el script   :Very Happy: . Si os interesa  :Rolling Eyes: ... aunque me da que no os gusta estos lenguajes   :Laughing: .

----------

## oCHARLIEo

He hecho modificaciones en el script. He metido tcmplex en vez de mplex hasta que logremos mejoras sustanciales con mplex (creo q es lo mejor), asique me metido tcmplex como dependencia opcional... si no existe tcmplex no multiplexa... aunque ahora se me ocurre, que puede multiplexar con mplex...

Bueno, probad si tcmplex os funciona mejor... a mi la verdad es que me da mejor resultado...

Otra cosa, he estado viendo que los diff del wiki no salen siempre bien, y es porque yo utilizo tabuladores como sangria dentro del codigo... he cambiado toda la sangria dentro del script para que sean 4 espacios en blanco... usadlo vosotros tb asi plis.

 *Quote:*   

> 
> 
> Buenas, estoy aprendiendo python, y para ello pues me estoy dedicando a hacer un programa que haga lo mismo que el script . Si os interesa ... aunque me da que no os gusta estos lenguajes .
> 
> 

 

No es que no me guste... todos los lenguajes son interesantes, es que no tengo tiempo como para ponerme a aprender otro mas (he llegado a programar en 7 lenguajes distintos a la vez XD), ademas la filosofia de python no me aporta nada que no pueda hacer con otro/s lenguajes... sorry

----------

## Sertinell

Hola, esta tarde toy haciendo pruebas y hay un"ligero" problemilla, FFmpeg PASA TOLTALMENTE de lo qe le especificas en -maxrate

Acabo de intentar hacer un VCD y el bitrate maximo, limintandolo yo a mano a 2200 se ha ido hasta los 2500 , y haciendo pruebas para SVCD , limitandolo a 2500 se ha ido hasta los 3300. Esto mas alla de qe haga lo qe le sale del pijo (cosa qe me preocupa) es muy importante por qe en la mayoria de los DVD's caseros, no podras ver un SVCD de mas de 2500 de bitrate, tendras saltos en esas imagenes y cuelgues del reproductor...

Edito: Si lo dejas sin limitar el bitrate por supuesto tambien se ira de madre ¬¬, no recuerdo qe tal actuaba mencoder en este aspecto, pero me estoy mosqeando ya una cosa mala ¬¬

Las pruebas las estoy haciendo con el video de matrix

Un saludo

----------

## erflako

Tcmplex a mi siempre me ha funcionado bien . Lo malo de tcmplex es que no tiene ni una triste opcion - video , audio , output-file , modo y s'acabó .

Sobre mplex - si en la codificación se baja el max-bitrate a 5000 y en el multiplexado el mux-rate se sube a 8000 (hablando de dvd) no suele dar errores . No sé donde leí que el max-bitrate es esto - MAX , no tiene porque ir a tanto . Si os fijais (con opcion "-i") el bitrate que se calcula no siempre esta cerca del valor maximo , mas bien se aleja . Siempre hablando de dvd , sobre svcd Sertinell nos dirá como esta el tema .

Lo que comenta Sertinell de los picos que sobrepasan el max-bitrate - no me ha pasado , pero yo no hago svcd . Tengo una peli con mux-bitrate 15000 y se reproduce . Está muy fuera del estandar pero ya no tenía nervios de codificar con bitrate mas bajo y volver a mplex con valores normale .

Tal vez debemos bajar los valores maximos para que no se nos desmadre el bitrate .

Segun las normativas - video bitrate 9800 , audio - 1856 , total 10080 , pero no se puede ir al limite . Y tampoco es así - http://www.mpeg.org/MPEG/DVD/General/Breakdown.html .

En fin , si bajamos el MAX y se soluciona ... pues , bien ¿no?

Charlie , como dije antes , yo tengo una version "mia" que usa mplex , tcmplex y ffmpeg - los tres opcionales . No sé si tiene sentido meter multiplexers que se puedan elegir por el usuario . A mi me viene bien , si no va con uno ... aunque siempre utilizo mplex y cuando casca - tcmplex a mano .

 *Quote:*   

> Buenas, estoy aprendiendo python, y para ello pues me estoy dedicando a hacer un programa que haga lo mismo que el script Very Happy. Si os interesa Rolling Eyes... aunque me da que no os gusta estos lenguajes Laughing.
> 
> 

 

Casi que repito lo de Charlie - a mi los lenguajes interpretados nunca me gustaron , pero si te pones a buscar , hoy en dia , lo mejor de scripting serà pithon . orientado a objeto , potente ...bla,bla,bla , pero sigue siendo scripting y yo ya tengo mi java donde me defiendo mejor y tampoco me voy a poner a aprender otro lenguaje . En fin pcm1984 - tu aprende que eso es bueno .

¿Quien ha metido HDVD?

¿Y que es?

----------

## psm1984

 *erflako wrote:*   

> En fin pcm1984 - tu aprende que eso es bueno .

 

Eso seguire haciendo   :Wink: . Gracias por las opiniones.   :Very Happy: 

----------

## Sertinell

El HDVD lo he metido yo, es DVD con la mitad de resolucion, esta dentro de los standares, y a mi me gusta mas, no sabia qe nombre poner asi qe puse Half-DVD   :Laughing: 

Un saludo

----------

## erflako

Sertinell , por poco aciertas   :Laughing:   .

De esta pagina - http://www.videohelp.com/dvd#tech :

 *Quote:*   

> 
> 
>  720 x 576 pixels MPEG2 (Called Full-D1)
> 
> 704 x 576 pixels MPEG2
> ...

 

Así que por poco . Si quieres dejarlo a HDVD , por mi - sin problemas .

Mañana empezaré con algunas pruebecillas .

Saludos .

----------

## Cadena Perpetua

Alguien me puede decir porque está pasando esto??   :Crying or Very sad:   :Crying or Very sad:   :Crying or Very sad: 

```

bash-2.05b$ ./avi_to_mpg -of svcd diario.avi 

# avi_to_mpg Version: 0.3a  -- 28-01-2004

# Comprobando Existencia de Programas:

   OK: mplayer presente en el Sistema

   OK: ffmpeg presente en el Sistema

   OK: mplex presente en el Sistema

   OK: tcmplex presente en el Sistema

# Estableciendo Formato de Salida a: svcd

## fichero: diario.avi

############################################

# Video:

#     Codec:            DIV3

#     Resolución:       512x384

#     Fps:              29.970

#     Bitrate:          1075376

############################################

# Audio:

#     Codec:            mp3

#     SampleRate:       48000

#     Bitrate:          160 (85)

#     Canales:          2

############################################

#     Duracion: 4701 segundos

############################################

# Escalando Video       -> Width: 472           Height: 572

# Padding               -> Width: 4 x2  Height: 2 x2

# Resolucion de Salida  -> Width: 480           Height: 576

# Video Bitrate: 1170

# Codificando el Audio diario.mp2

Input #0, avi, from 'diario.avi':

  Duration: 01:18:21.8, bitrate: 1247 kb/s

  Stream #0.0: Video: msmpeg4, 512x384, 29.97 fps

  Stream #0.1: Audio: mp3, 48000 Hz, stereo, 160 kb/s

Must supply at least one output file

./avi_to_mpg: line 336: diario.mp2: command not found

# Sacando Estadisticas del fichero de Video diario.avi

Input #0, avi, from 'diario.avi':

  Duration: 01:18:21.8, bitrate: 1247 kb/s

  Stream #0.0: Video: msmpeg4, 512x384, 29.97 fps

  Stream #0.1: Audio: mp3, 48000 Hz, stereo, 160 kb/s

Unknown video codec 'mpeg2video'

./avi_to_mpg: line 356: 2500: command not found

./avi_to_mpg: line 357: 2: command not found

# Codificando el Video diario.mpg

Input #0, avi, from 'diario.avi':

  Duration: 01:18:21.8, bitrate: 1247 kb/s

  Stream #0.0: Video: msmpeg4, 512x384, 29.97 fps

  Stream #0.1: Audio: mp3, 48000 Hz, stereo, 160 kb/s

Unknown video codec 'mpeg2video'

./avi_to_mpg: line 364: 2500: command not found

./avi_to_mpg: line 365: 2: command not found

./avi_to_mpg: line 366: diario.mpv: command not found

# Multiplexando a diario.mpg

INFO: using reference profile (SVCD)

INFO: profile type is (PAL)

ERROR: Input file diario.mpv was not found.

bash-2.05b$                                                

   
```

 Gracias de antemano!! 

----------

## erflako

Cadena Perpetua , estás usando una versión antigua . En la actual no coinciden las lineas donde a ti te da error . Bájate la ultima versión y a ver como te va . Sertinell hace svcd y no le ha dado errores .

He leido un poquito de documentación por ahí , pero no me aclaro muy bien de las cosas .

A ver :

 *Quote:*   

> 
> 
> `-g gop_size' - 15/18
> 
> `-qscale q' - ???
> ...

 

¿Es esto correcto?

Que alguien me rectifique .

He hecho pruebas  pero no veo ninguna diferencia en la calidad . Si existe en el tiempo de codificación - habrá que hacer una pelicula entera para poder apreciarlo y esto ya no son pruebas .

Sertinell ¿puedes hacer tu trozo de Matrix cambiando algunos valores?A ver si eres capaz de sacar algo.

(Todo esto despues de aprobar  :Wink:  )

Según leí en peliculas de poco movimiento/cambio se pueden usar muchos B-frames. Bien.

De esta pagina - http://bmrc.berkeley.edu/frame/research/mpeg/mpeg2faq.html :

 *Quote:*   

> 6. Sequence structure is fixed to a specific I,P,B frame pattern.
> 
> A sequence may consist of almost any pattern of I, P, and B pictures (there are a few minor semantic restrictions on their placement). It is common in industrial practice to have a fixed pattern (e.g. IBBPBBPBBPBBPBB), however, more advanced encoders will attempt to optimize the placement of the three picture types according to local sequence characteristics in the context of more global characteristics. (or at least they claim to because it makes them sound more advanced).

 

¿Ffmpeg sabe optimizar el "emplazamiento" de I.P y B?¿Que patron usa ffmpeg?

En fin - si alguien sabe que valores hay que poner - que lo diga , por favor .

Se me ocurrió que las opciones "expertas" se pueden poner en una cadena en linea de comandos que luego se pasan directamente al programa . Algo de tipo :

```

#script -opciones...script -mplex opciones_mplex

```

A mplex se le pasa la cadena "opciones_mplex" pero para esto hay que conocer todas las opciones de los programas que utilizamos . No sé que gracia le va a ver un usuario .

La otra opción será poner nombres a todas las opciones que queremos usar - "mplex_mux_rate" etc.

Es solo una reflección .

Saludos.

----------

## Cadena Perpetua

 *erflako wrote:*   

> Cadena Perpetua , estás usando una versión antigua . En la actual no coinciden las lineas donde a ti te da error . Bájate la ultima versión y a ver como te va . Sertinell hace svcd y no le ha dado errores .
> 
> 

 

Pero yo tengo la version 0.3a   :Sad:  es la que bajé del link que está en el primer post... si alguien me puede decir de donde descargar la ultima version, se lo agradeceria mucho!!

----------

## erflako

Intenta de aquí - http://nexusvi.no-ip.org/phpwiki/index.php/CodigoFuenteAviToMpegFfmpeg .

Copiar y pegar .

Suerte .

----------

## Cadena Perpetua

 *erflako wrote:*   

> Intenta de aquí - http://nexusvi.no-ip.org/phpwiki/index.php/CodigoFuenteAviToMpegFfmpeg .
> 
> Copiar y pegar .
> 
> Suerte .

 

```

bash-2.05b$ ./AA -of svcd -p 1 diario.avi

# AA Version: 0.3a  -- 28-01-2004

# Comprobando Existencia de Programas:

   OK: mplayer presente en el Sistema

   OK: ffmpeg presente en el Sistema

   OK: mplex presente en el Sistema

   OK: tcmplex presente en el Sistema

# Estableciendo Formato de Salida a: svcd

## fichero: diario.avi

############################################

# Video:

#     Codec:            DIV3

#     Resolución:       512x384

#     Fps:              29.970

#     Bitrate:          1075376

############################################

# Audio:

#     Codec:            mp3

#     SampleRate:       48000

#     Bitrate:          160 (85)

#     Canales:          2

############################################

#     Duracion: 4701 segundos

############################################

# Escalando Video       -> Width: 472           Height: 572

# Padding               -> Width: 4 x2  Height: 2 x2

# Resolucion de Salida  -> Width: 480           Height: 576

# Video Bitrate: 1170

# Codificando el Audio diario.mp2

Input #0, avi, from 'diario.avi':

  Duration: 01:18:21.8, bitrate: 1247 kb/s

  Stream #0.0: Video: msmpeg4, 512x384, 29.97 fps

  Stream #0.1: Audio: mp3, 48000 Hz, stereo, 160 kb/s

Output #0, mp2, to 'diario.mp2':

  Stream #0.0: Audio: mp2, 44100 Hz, stereo, 224 kb/s

Stream mapping:

  Stream #0.1 -> #0.0

Press [q] to stop encoding

size=  128564kB time=4701.8 bitrate= 224.0kbits/s

# Codificando el Video diario.mpg

Input #0, avi, from 'diario.avi':

  Duration: 01:18:21.8, bitrate: 1247 kb/s

  Stream #0.0: Video: msmpeg4, 512x384, 29.97 fps

  Stream #0.1: Audio: mp3, 48000 Hz, stereo, 160 kb/s

Unknown video codec 'mpeg2video'

./AA: line 362: -padtop: command not found

# Multiplexando a diario.mpg

INFO: using reference profile (SVCD)

INFO: profile type is (PAL)

ERROR: Input file diario.mpv was not found.

bash-2.05b$

```

 he intentado con ese script...  :Sad:  no deja de ser la misma version...... y el error es demasiado similar.....

----------

## erflako

No sé que decirte , a mi no me pasa :

```

# Codificando el Video /home/amule/dvd/liga.mpg

ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard

  built on Jan 21 2005 15:34:43, gcc: 3.4.3 20041125 (Gentoo Linux 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7)

Input #0, avi, from '/home/amule/dvd/liga.avi':

  Duration: 00:00:44.1, bitrate: 1587 kb/s

  Stream #0.0: Video: mpeg4, 608x336, 25.00 fps

  Stream #0.1: Audio: ac3, 48000 Hz, 5 channels, 320 kb/s

Output #0, rawvideo, to '/home/amule/dvd/liga.mpv':

  Stream #0.0: Video: mpeg2video (hq), 480x576, 25.00 fps, q=2-31, 2500 kb/s

Stream mapping:

  Stream #0.0 -> #0.0

Press [q] to stop encoding

[mpeg2video @ 0x4024f5d0]rc buffer underflow

frame= 1104 q=2.0 Lsize=   11383kB time=44.1 bitrate=2113.5kbits/s

video:11383kB audio:0kB global headers:0kB muxing overhead 0.000000%

```

Prueba :

```

#ffmpeg -formats

```

A ver si te aparece mpeg2video .

----------

## oCHARLIEo

Cadena Perpetua eso es probablemente que tu version de ffmpeg es antigua o no tienes los uses necesarios para tener soporte mpeg2... yo tengo:

```

[ebuild   R   ] media-video/ffmpeg-0.4.9_pre1  -aac (-altivec) -debug -doc +dvd +encode +imlib +mmx +oggvorbis +sdl -static

```

Por cierto una noticia curiosa... sabeis que hay un editor de menus de dvds visual en el portage?? DVDstyler... es para GTK2 y no he podido probarlo pero tiene buena pinta...

----------

## erflako

Si ,Charlie , hace tiempo tuvimos aquí una charla sobre dvdstyler cuando multiplexamos con mencoder y dvdauthor no tragaba . Por lo menos mis ficheros no le gustaban . Pero dvdstyler es una interfaz grafica de dvdauthor y nada mas. No deja de ser una cosa cómoda , teniendo en cuenta que dvdauthor se maneja através de ficheros xml , pero no es un programa de por si .

¿Novedades sobre las opciones comentadas por Sertinell?

En un post arriba puse lo que me parecía correcto . Échale un vistazo y si puedes haz alguna prueba .

Saludos .

----------

## Sertinell

Hola madikitas  :Razz:  He vuelto !! con todas aprobadas !!  :Very Happy: 

Asi qe la semana qe entra intentare ponerme con "algo" del script ... Rapiñar porotros lares y demas ..  :Twisted Evil: 

----------

## oCHARLIEo

Wenas Sertinel!! Enhorabuena por esas notas chaval!!

Yo ahora ando hasta el cuello, puedes hecharle un vistazo a las opciones que posteo erflako plis?... que yo he intentado ponerme pero no reuno un rato largo de seguido y no saco nada en claro...

Enga que tengo ganas de ponerme a tirar lineas en el script ^_^

----------

## erflako

Yo tampoco ando suelto de tiempo .

He hecho unas cosas sin consultarlas y sin subirlas al wiki . ¿Que por que? P-f-f-f-f... yo que sé .

Uno - he eliminado la dependencia de mplayer . Lo usamos solo para la recojida de datos del avi y nada mas . Lo mismo lo hace ffmpeg con opcion "-i" . Es algo mas complicadillo pero funciona .

Dos . Las opciones extendidas . Todas las opciones que comentó Sertinell - mbd , dct , idct , etc . Las he puesto de una forma "rara" - no hay opcion en el script para cada una de las opciones de ffmpeg . se pasan de forma "nativa" al script y este se las pasa a ffmpeg . Hay que conocer la forma correcta de poner una opcion para ffmpeg y ponerla al script tal-cual . Tampoco me parece muy fuera de lugar - las opciones extendidas no son para todos los dias . Y sobreescribir todas las opciones de ffmpeg ... como que no .

Tres . Para hacer pruebas con todas las opciones extendidas a mano me pareció una burrada y me puse a hacer la interfaz grafica en java otra vez . Es mas facil darle al botón que escribir lineas kilometricas . O es solo cuestion de gusto . Casi la tengo hecha , pero no me da tiempo de terminar la parte de carga de un fichero default settings - me he metido en mas de 20 opciones que son montones de funciones de recojida de datos de los campos , mandarlos a la clase , escribirlos en fichero , comprobar ... en fin - me queda poco , pero me queda .

"Mi" versión del script la he subido en mi pagina . La interfaz - no .

Ya me contareis .

Saludos .

----------

## esculapio

Buenas tardes,  si me pueden ayudar con un comando numérico en bash para que me numere la salida de un mismo script, que por ej. me genere el archivo serie.avi y luego al volver a ejecutar el script, en la misma carpeta escriba serie1.avi,serie2.avi.sucesivamente. Estuve leyendo el post y algo de bash pero no vi claramente como hacerlo. Gracias desde ahora.

----------

## erflako

Hola.

Siento el retraso , pero , como dije antes , tampoco dispongo de mucho tiempo .

A ver .

La interfaz está subida en mi página . Es funcional , aunque no está terminada del todo . Por ahora quiero pensar que es "pre1" .

Mirad , usad y comentad .

Hay cuatro "ComboBox" - me , dct , idct , mbd - los ComboBox cojen el valor correcto del fichero "avi2mpeg.default" , pero no lo muestran . Siempre se ve el valor "por defecto" . Vete a saber peorque - cosa de java . Estoy en ello .

Tambien tengo que añadir una funcionalidad de buscar ficheros en el ultimo directorio usado .

Voy a compilar una version contra GTK y subo el binario . ¿ Algun voluntario de compilar en Qt ? Si no me equivoco Charlie tenia KDE .

No recomiendo usar Blackdown - la apariencia es diferente a la de Sun . No mucho , pero algo diferente se ve , sobre todo en el tamaño de los elementos . Probablemente Blackdown no usa Swing y de ahí viene el problema . Por lo demás se porta igual .

En el script cambié la parte de recogida de los datos del fichero optando por "ffmpeg -i ****.avi" pero en algunos casos el numero de canales de audio viene como "stereo" y no con numero . Estoy pensando de volver a mplayer.

Los comentarios casi mejor hacerlos en el foro ¿ no ?

Saludos .

----------

## wolff

Sobre el error a mi me da el mismo y los use en teoria tan correctos, así como la versión de ffmpeg

```

EstacionAlpha prueba # s-gavi2mpg -of DVD The-oc-21.avi

# s-gavi2mpg Version: 0.3a  -- 28-01-2004

# Comprobando Existencia de Programas:

   OK: mplayer presente en el Sistema

   OK: ffmpeg presente en el Sistema

   OK: mplex presente en el Sistema

   OK: tcmplex presente en el Sistema

# Estableciendo Formato de Salida a: DVD

## fichero: The-oc-21.avi

############################################

# Video:

#     Codec:            DX50

#     Resolución:       640x480

#     Fps:              25.000

#     Bitrate:          1028704

############################################

# Audio:

#     Codec:            mp3

#     SampleRate:       44100

#     Bitrate:          128 (85)

#     Canales:          2

############################################

#     Duracion: 2450 segundos

############################################

# Escalando Video       -> Width: 712           Height: 572

# Padding               -> Width: 4 x2  Height: 2 x2

# Resolucion de Salida  -> Width: 720           Height: 576

# Video Bitrate: 8000

# WARNING: Detectados 2 canales o menos. Se fuerza salida a MP2

# Codificando el Audio The-oc-21.mp2

ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard

  built on Feb  6 2005 15:23:29, gcc: 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6)

Input #0, avi, from 'The-oc-21.avi':

  Duration: 00:40:50.4, bitrate: 1166 kb/s

  Stream #0.0: Video: mpeg4, 640x480, 25.00 fps

  Stream #0.1: Audio: mp3, 44100 Hz, stereo, 128 kb/s

Output #0, mp2, to 'The-oc-21.mp2':

  Stream #0.0: Audio: mp2, 48000 Hz, stereo, 224 kb/s

Stream mapping:

  Stream #0.1 -> #0.0

Press [q] to stop encoding

size=   67010kB time=2450.6 bitrate= 224.0kbits/s

video:0kB audio:67010kB global headers:0kB muxing overhead 0.000000%

# Sacando Estadisticas del fichero de Video The-oc-21.avi

ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard

  built on Feb  6 2005 15:23:29, gcc: 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6)

Input #0, avi, from 'The-oc-21.avi':

  Duration: 00:40:50.4, bitrate: 1166 kb/s

  Stream #0.0: Video: mpeg4, 640x480, 25.00 fps

  Stream #0.1: Audio: mp3, 44100 Hz, stereo, 128 kb/s

Output #0, rawvideo, to '/dev/null':

  Stream #0.0: Video: mpeg2video (hq), 720x576, 25.00 fps, q=2-31, pass 1, 8000 kb/s

Stream mapping:

  Stream #0.0 -> #0.0

Press [q] to stop encoding

Marker bit missing before vop_coded

[mpeg4 @ 0xb7f144a8]vop not coded

Marker bit missing before vop_coded

[mpeg4 @ 0xb7f144a8]vop not coded

Marker bit missing before vop_coded

[mpeg4 @ 0xb7f144a8]Error, header damaged or not MPEG4 header (qscale=0)

[mpeg4 @ 0xb7f144a8]header damaged

Error while decoding stream #0.0

frame=    0 q=0.0 Lsize=       0kB time=10000000000.0 bitrate=   0.0kbits/s

video:0kB audio:0kB global headers:0kB muxing overhead nan%

# Codificando el Video The-oc-21.mpg

ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard

  built on Feb  6 2005 15:23:29, gcc: 3.3.4 20040623 (Gentoo Linux 3.3.4-r1, ssp-3.3.2-2, pie-8.7.6)

Input #0, avi, from 'The-oc-21.avi':

  Duration: 00:40:50.4, bitrate: 1166 kb/s

  Stream #0.0: Video: mpeg4, 640x480, 25.00 fps

  Stream #0.1: Audio: mp3, 44100 Hz, stereo, 128 kb/s

Output #0, rawvideo, to 'The-oc-21.mpv':

  Stream #0.0: Video: mpeg2video (hq), 720x576, 25.00 fps, q=2-31, pass 2, 8000 kb/s

Stream mapping:

  Stream #0.0 -> #0.0

Press [q] to stop encoding

Marker bit missing before vop_coded

[mpeg4 @ 0xb7f144a8]vop not coded

Marker bit missing before vop_coded

[mpeg4 @ 0xb7f144a8]vop not coded

Marker bit missing before vop_coded

[mpeg4 @ 0xb7f144a8]Error, header damaged or not MPEG4 header (qscale=0)

[mpeg4 @ 0xb7f144a8]header damaged

Error while decoding stream #0.0

frame=    0 q=0.0 Lsize=       0kB time=10000000000.0 bitrate=   0.0kbits/s

video:0kB audio:0kB global headers:0kB muxing overhead nan%

# Multiplexando a The-oc-21.mpg

INFO: using reference profile (DVD)

INFO: profile type is (PAL)

ERROR: Unable to read from file The-oc-21.mpv.

```

```

# emerge -vp ffmpeg

[ebuild     UD] media-video/ffmpeg-0.4.7 [0.4.9_pre1] -aac -debug -doc +dvd +encode +imlib +mmx +oggvorbis +sdl -static +truetype 1,273 kB

Total size of downloads: 1,273 kB

EstacionAlpha prueba #

EstacionAlpha prueba # [ebuild     UD] media-video/ffmpeg-0.4.7 [0.4.9_pre1] -aac -debug -doc +dvd +encode +imlib +mmx +oggvorbis +sdl -static +truetype 1,273 kB

```

PD: He usado otro script (http://mightylegends.zapto.org/dvd/any2vob-0.14.sh) de un manual de una página web (http://mightylegends.zapto.org/dvd/dvdauthor_howto.php) pero al ponerlo en el DVD algunas veces no se oye y otras se oye pero acelerado y en menos de 10 minutos el audio se desincroniza.. sabeis pq puede ser??

----------

## erflako

Hola de nuevo .

Subo en mi pagina otra version , la llamaremos pre2 .

Los combo box ya muestran los valor bien . Se buscan ficheros en el ultimo directorio que se uso , se recuerda el tama;o y posicion de la ventana al salir .

He cambiado la logica de los ficheros de configuracion - ahora en el home del usuario se crea ./avi2mpeg y dentro estan los ficheros de configuracion . He a;adido log y err.log , pero por ahora no funcionan . Ya funcionaran .

Por lo demas no hay cambios en el script .

La lucha con los subtitulos me cuesta bastante - hay monton de formatos . Si alguien lo tiene mas claro que yo - una ayudita , por favor . En teoria ffmpeg deberia de cojer un fichero .sub o lo que sea , pero en la practica ... no lo se . Todos los ejemplos que he encontrado vienen con mplayer . Y tampoco tengo avi con subtitulos separados .

Se que hay gente que ha descargado este script y la interfaz . La verdad es que me vendrian bien algunos comentarios de tipo - esto esta tal y al otro cual .

A lo mejor pido mucho , pero si no - a ver como lo puedo mejorar .

Ya me contareis .

Saludos .

----------

## micro_mx

ohh... q interesante thread  :Very Happy: 

yo aun sigo utilizando el mkxvcd.sh que baje de freshmeat.net... 

pero sus scripts se ven muy prometedores... le dare una revisada... 

Saludos desde Mexico

----------

## Sertinell

Actualizado, leer primer post  :Very Happy: 

He vuelto a mencoder, siempre me ha gustado ams qe ffmpeg. En el wiki de charlie se puede encontrar la version de FFmpeg.

Charlie, no puedo entrar al wiki :S

----------

## Sertinell

He actualizado un bug al hacer audio para DVD.

Se admiten colaboraciones en el tema de la velocidad. Trastear con los filtros.

----------

## oCHARLIEo

DIOX!!! sabes la cantidad de tiempo que hacia que no entraba por estos lares??? xDDD 

No se por que no puedes entrar al wiki... a mi me funciona bien http://nexusvi.no-ip.org/wiki/index.php/DirToAvi

¿Recuerdas el nombre de usuario y la clave?, mandame un privado sino...

Ahora no tengo mucho hueco, pero me comprometo ha echarle un vistazo al script... don't worry ^_^

QUE ILUSION!!

----------

## Sertinell

actualizacion peqeña.

corregidos algunos bugs. no he implementado nada del TODO, pero todo se andara.

----------

## Sertinell

Actualizado.

Nueva feature.

----------

## Pablo S. Barrera

Hola! He intentado usar el codigo fuente del programa que han creado.

Me da esto: Alguno tiene idea que puede ser el problema?+

tux pablo #/usr/sbin/avitompg -of DVD /Trafico/La.avi

# avitompg Version: 0.4.1  -- 17-03-2004

# Comprobando Existencia de Programas:

   OK: ffmpeg presente en el Sistema

   KO: tcmplex no esta instalado, no esta en el PATH o no esta marcado como ejecutable

       Este programa es Opcional, pero puede que se pierdan algunas funcionalidades...

# Estableciendo Formato de Salida a: DVD

## fichero: /Trafico/La.avi

############################################

# Video:

#     Codec:            fps:

#     Resolución:       Video:

#     Fps:              mpeg4,

#     Bitrate:          0.000000,

############################################

# Audio:

#     Codec:            0x2000

#     SampleRate:       48000

#     Bitrate:          48000 ()

#     Canales:          6

############################################

#     Duracion: 4814.4 segundos

############################################

# El fichero /Trafico/La.avi es de 520.19 MB

# Necesario: 5240.39 MB

# Disponible: 15595.08 MB

(standard_in) 1: parse error

(standard_in) 1: parse error

(standard_in) 1: parse error

/usr/sbin/avitompg: line 410: *4: syntax error: operand expected (error token is "*4")

Muchas Gracias y espero puedan ayudarme.

----------

## Sertinell

 *Pablo S. Barrera wrote:*   

> Hola! He intentado usar el codigo fuente del programa que han creado.
> 
> Me da esto: Alguno tiene idea que puede ser el problema?+
> 
> tux pablo #/usr/sbin/avitompg -of DVD /Trafico/La.avi
> ...

 

Por alguna razon extraña mplayer no es capaz de obtener la resolucion origninal de tu video, por eso da error. Intenta arreglar la cabecera de dicho video y vuelve a probar  :Smile: 

----------

## logos

El enlace para descargarse el script no funciona!!

Alguien me puede decir donde podría encontrarlo?

Muchas gracias!!

----------

## Inodoro_Pereyra

 *Quote:*   

> Publicado: Lun Oct 04, 2004 1:12 pm

 

Despues de 3 años que han pasado, no me extrañana que no funcione!

----------

## achaw

No si si hablamos de lo mismo pero encontre esto:

http://sourceforge.net/projects/any2dvd/

Saludos

----------

## logos

No creo que sea el mismo pero parece también muy interesante. Muchas gracias!!!   :Wink: 

----------

## achaw

Yo uso este script para convertir:

```
#!/bin/bash

APPDIR=`dirname "$1"`

cd "$APPDIR"

APPDIR="`pwd`"

movie=$1

target="dvd" # Aca pones el formato que queres. VCD, SVCD, DVD...etc

terminal="aterm" #Aca elegi tu terminal favorita

movie_file=`echo "$movie" | sed 's/\.\w*$/.mpg/'`

sub_file=`echo "$movie" | sed 's/\.\w*$/.srt/'`

if test ! -e "$sub_file";then

exec "$terminal" -e ffmpeg -i "$movie" -target "$target" "$movie_file"

else

echo "<subpictures>

  <stream>

    <textsub filename='$sub_file'/>

  </stream>

</subpictures>" > "$APPDIR/subtitle.xml"

"$terminal" -e ffmpeg -i "$movie" -target "$target" "$movie_file" 

"$terminal" -e spumux -s0 "$APPDIR/subtitle.xml" < "$movie_file" > "$movie_file".temp 

mv "$movie_file".temp "$movie_file"

fi

exit

```

Saludos

----------

