Jos� Luis Cruz <[EMAIL PROTECTED]> writes:

> Oooooh!
> 
> Has dicho las palabras m�gicas!
> 
> jajaja

Oh.  Qui�n me manda a andar de hocic�n... :-)

> a ver a ver a ver....
> 
> YO estoy queriendo pasar divx a svcd, y estoy probando con el
> transcode, pero tengo unas dudas (ahora s� que voy a ser el
> posteador original :)),

Har� lo posible.

> a ver si me puedes dar alguna pistilla. De todos modos el paquete
> dvb-mpegtools hace conflicto con el mjpegtools, que me parece mucho
> m�s completo, y es dependencia del transcode (consegu� los debs en
> marillat)

Ah, bien.  Yo tambi�n uso los paquetes de marillat (por eso dec�a que
no he probado ese split_mpg).

> que es el que estoy usando para mis primeras pruebas. Me gusta este
> programa porque, aparte de lo potente que parece, tiene soporte para
> trabajar con un cluster, cosa que va a ser mi pr�ximo paso, montarme
> una granja, con un P90 y un par de 486 que tengo por aqu� ;) Ya que
> mi athlon 850 tarda como 20 horas en transformar un video de 3 (m�s
> o menos) y no puedo compilar mis programas mientras jeje

Yo no uso transcode directamente, pero en esencia hago lo mismo que
hace transcode, excepto que manualmente...

S�, bueno, �qu� te puedo decir? �Porqu� hacerlo f�cil si se puede
hacer dif�cil? :-)

(realmente tengo algunas razones, pero no vienen al caso de momento)

El punto es que mi m�todo es con toda probabilidad innecesariamente
complicado, y posiblemente hay mejores maneras de hacer las cosas, que
yo desconozco.

> �Cual es tu experiencia pasando a vcd, svcd y tal?  �Tienes
> controlado el asunto de la conversi�n de tama�os hacia svcd?, porque
> pasar de 16:9 a svcd tiene su miga, yo lo veo feo, cuando lo adapta.

Bueno, mira, varias cosas que cualquiera podr�a decirte:

VCD se ve feo, a menos que tu original tenga mucha calidad y comprimas
con mucho CPU.  Y ni siquiera es mucho m�s compacto que SVCD.  SVCD se
ve muy bien.  Sin embargo, la diferencia en tama�o y tiempo de
codificaci�n es significativa.  Por ello, en ocasiones opto por hacer
dos VCDs en vez de tres SVCDs.

El asunto del 16:9 no es realmente un problema, aunque confieso no
haberlo usado mucho (realmente yo no suelo recodificar DVDs, sino
video digital creado por mi mismo).  Meter un 'yuvscaler -M WIDE2VCD'
� 'yuvscaler -MWIDE2STD -O SVCD' en la pipa del video deber�a ser
suficiente.

Podr�a comentarte tambi�n del "3-2 pulldown", para convertir cine o
PAL (24/25 fps) a NTSC--pero me imagino que eso no es un problema por
all� por donde vives :-)

> �Y cuando no te cabe en un CD, como haces para cortar en el punto
> que tu quieras? no digo pas�ndole al programa la opci�n de que corte
> al llegar a 700 megas, sino al final de una escena..

Depende del origen.  Cuando el video procede de una c�mara digital
(e.g., est� en MJPEG, un formato en el que cada frame se codifica
independientemente, sin interpolaci�n temporal), lo m�s f�cil es
cortarlo con glav e introducirlo a las pipas de mjpegtools con
lav2yuv.  Este m�todo es el mejor: tienes control absoluto de la
edici�n, y es simple.  Pero es muy raro que encuentres este formato en
la Internet, porque la compresi�n es muy mala.

Cuando el origen es MPEG (un caso raro, supongo, porque se perder�a
much�simo al recodificar), el mencionado mpgtx hace el truco.  En
cualquier otro caso, uso mplayer, con las opciones -frames y/o -ss
para controlar el inicio y fin de la reproducci�n.  Es f�cil encontrar
de manera grosera los puntos donde hay que cortar (en tiempo y
frames), examinando la salida de consola de mplayer mientras
reproduce.

Usar mplayer para recodificar video quiere decir, esencialmente, usar
'-ao pcm -vo yuv4mpeg', previa creaci�n de un par de FIFOs para
redirigir el audio y el video a las pipas de preprocesamiento y
codificaci�n.  Esto �ltimo es completamente opcional, pero en general
procuro entubar todo lo que sea posible para no pasar por archivos en
disco (el espacio en disco es barato, pero no TAN barato).

Ahora, este �ltimo m�todo introduce dos problemas.  El primero es que,
a�n cuando mplayer es fant�stico en cuanto a calidad de reproducci�n y
formatos soportados, esas opciones -ss / -frames no son nada precisas.
De manera que este m�todo no sirve para edici�n seria.  Para videos
caseros, sin embargo, normalmente uso mplayer para cortar de manera
grosera, y luego hago un corte fino sobre la pipa de video con
"yuvcutter", un animalito escrito originalmente por un caballero
Philipp Zabel, modificado un poco por este servidor tuyo (y que por
supuesto te env�o cuando gustes, si te interesa).  Es un programa muy
simple, de apenas un par de pantallas de c�digo.

S�, yo s�, no deja de ser un procedimiento artesanal, de prueba y
error, aunque a mi me resulta suficiente.  Quiz� habr�a que probar con
gstreamer, en vez de mplayer... la �ltima vez que prob�, sin embargo,
mplayer era indiscutiblemente la �nica opci�n pr�ctica.

El segundo problema es de sincronizaci�n del audio.  Usualmente la
opci�n -O de mplex es todo lo que hace falta.  En casos serios, he
llegado a cortar el audio manualmente son sox, pero realmente no creo
que sea necesario.

> He probado el avidemux, pero no me funcionaba para un video
> codificado con divx 5.01, no lo le�a bien, y prob� con el transcode,
> del cual encontr� unos scripts y aprend� como se usaba, lo que me
> falta es la experiencia de perder algunos d�as/semanas (pq con lo
> que tarda) probando.

La regla es: si lo puedes ver con mplayer, lo puedes recodificar.  Lo
cual aplica incluso para "streams" de web.

> �Me puedes dar alg�n consejillo con respecto a eso? (todo
> relacionado Debian GNU/Linux por supuesto, no nos vayamos a salir de
> la lista ;-))

Naturalmente :-)

> 
> lo que uso ahora es :
> 
> $transcode -i "path/fichero.avi" -V -x mplayer -y mpeg -F
> s,3,./template -Z 480x628 -Y --26,0,--26,0 --export_asr 2 -E 44100 -b
> 128 -o /path/nombre_destino
> 
> me hace un mpa y un m2v, luego:
> 
> $ mplex -f 4 -o fichero.mpg -S 795 nombre_destino.m2v
> nombre_destino.mpa

Lo que yo suelo hacer es similar (ejemplos para VCD NTSC; haz los
ajustes para PAL, del otro lado del charco):

 # creo los FIFOs
 mkfifo stream.yuv
 mkfifo audiodump.wav

 # prepara la pipa de codificacion de audio
 cat audiodump.wav | sox -t wav - -t wav -r 44100 - resample -ql |\
  nice toolame -s 44.1 -b 224 -m s -p 2 /dev/stdin out.mp2&
 # prepara la pipa de codificaci�n de video
 cat stream.yuv | nice yuvdenoise |\
  nice yuvscaler -I ACTIVE_432x328+8+4 -M BICUBIC -O VCD -n n |\
  nice mpeg2enc -a 2 -n n -F 4 -4 2 -2 1 -B 250 -s -f 1 -o out.m1v&

 # inicia la decodificaci�n
 mplayer -nocache -ni -frames 123456 -ao pcm -vo yuv4mpeg input.avi

Y, al terminar la codificaci�n del audio y el video,

 mplex -f 1 -O 250 -o out.mpg out.m1v out.mp2

(es un fastidio no poder pipear mplex, pero hasta donde s� no es f�cil
sin alterar sustancialmente el programa)

> Que valores usas para el bitrate de video y de sonido? y el quantum?
> cu�l es a tu juicio la mejor relaci�n calidad / compensaci�n?

Ejemplos arriba.  Nota la ausencia de -S en mplex (esto casi seguro de
que realmente no quieres esa opci�n), y el uso de -B en mpeg2enc.

Sobre ese "quantum", si te refieres al "quantization" de mpeg2enc, yo
no lo uso (genera streams de bitrate variable, con los que algunos
fierros reproductores hacen feo).  En vez de ello, la calidad la
controlo alterando el criterio con el que el codificador descarta
malos candidatos durante la estimaci�n de movimiento (opciones -4 y
-2).  Las opciones de arriba son, en mi opini�n, las adecuadas para un
VCD de buena calidad (-4 1 ser�a mejor, pero realmente yo no soy capaz
de ver el efecto, y s� requiere sustancialmente m�s tiempo de CPU).
Un "preview" r�pido lo consigues con -4 4 -2 4.  Estas opciones no
comprometen la compatibilidad de tu stream con reproductores
chapuceros.

> uf! son muchas preguntas, ya lo s�, responde s�lo a lo que quieras.

Listo, ah� tienes.  Un �ltimo tip: no es que este m�todo se pueda
"distribuir" en una granja de CPUs... pero lo que casi siempre hago es
separar la codificaci�n del audio y el video en CPUs distintos.  �sto
es trivial insertando netcat en las pipas, e.g.:

Host A (encoder):

 nc -p 9999 -l -w 3 | nice yuvdenoise |\
  nice yuvscaler -I ACTIVE_432x328+8+4 -M BICUBIC -O VCD -n n |\
  nice mpeg2enc -a 2 -n n -F 4 -4 2 -2 1 -B 250 -s -f 1 -o out.m1v

Host B (decoder):

 mkfifo stream.yuv
 mplayer -nocache -ni -frames 123456 -ao pcm -vo yuv4mpeg input.avi&
 cat stream.yuv | nc -w 3 192.168.1.2 9999

(la pipa de audio no se muestra por simplicidad)

Espero que algo de �sto te sirva.  Aparte de la codificaci�n, quiz� te
interese poner men�es en tus VCDs, generar secuencias de cr�ditos,
etc.  Para algunasde esas cosas tengo un par de truquitos, igual de
rococ� que �stos, pero efectivos.  Aunque probablemente lo mejor sea
no discutirlos en listas de Debian.

En cualquier caso, si me disculpas, ahora mismo *realmente* tengo que
ponerme a trabajar :-)

 -CR

Responder a