--
To UNSUBSCRIBE, email to debian-user-s...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org
Dado que mencionas que quieres ver tu video en un reproductor de DVD,
asumo que no quieres convertir a MJPEG, sino a MPEG. Específicamente,
a MPEG apropiado para VCD o SVCD. MJPEG es un formato usado para
editar video digital, y no se ve en reproductores de DVD.
Si estoy asumiendo correctamente, entonces lo primero que tienes que
hacer es verificar el "framerate" de tu video (el número de cuadros
por segundo). mplayer te lo dice cuando reproduce tu video:
------------------------------------------------------------------------
VIDEO: MPEG1 352x240 (aspect 12) 29.97 fps 1152.0 kbps (144.0 kb...
------------------------------------------------------------------------
En mi ejemplo, el framerate es 29.97 (30000/1001, NTSC estándar). Lo
que tienes qué verificar es que sea un framerate compatible con VCD y
con la norma de tu región del mundo (NTSC, PAL). Debería ser uno de
éstos:
24000.0/1001.0 (NTSC 3:2 pulldown converted FILM)
24.0 (NATIVE FILM)
25.0 (PAL/SECAM VIDEO/converted FILM)
30000.0/1001.0 (NTSC VIDEO)
30.0
50.0 (PAL FIELD RATE)
60000.0/1001.0 (NTSC FIELD RATE)
60.0
Si el framerate de tu video no está en esa lista, maestro, no es tu
día de suerte. Si *realmente* tienes mucho interés en ver ese video
en tu DVD, desempolva tu libro de C y escríbeme en privado.
Si vas a generar NTSC y el framerate es de cine o PAL, asegúrate de
informar a mpeg2enc que vas a usar "3:2 pulldown" (y si vas a mezclar
PAL con 3:2 pulldown o framerate de cine, espero que la naturaleza no
te haya maldecido con un "oido absoluto"). Si el framerate es 50,
59.94 ó 60, tu video seguramente está "entrelazado" ("interlaced").
Asegúrate de informar de ésto a las herramientas (no creo que sea tu
caso, dado que la cámara es digital).
Si aún estás conmigo, revisa este mensaje:
http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200307/msg02472.html
Es parte de una conversación que sostuve con José Luis Cruz hace unos
meses. Cerca del final hay recetas para sacar video de mplayer y
codificarlo con mpeg2enc, toolame y mplex.
Altera las líneas de comando de las herramientas como sea necesario
(RTFMs). Tips: Dado que tu fuente es digital, el paso por yuvdenoise
probablemente no es necesario. Si el video ya está en la resolución
correcta para el formato que vas a generar (VCD o SVCD, NTSC o PAL),
quizá puedas omitir yuvscaler, pero no creo que sea tu caso. Nota que
esa vez estábamos tratando con video widescreen, de forma que
probablemente las opciones no aplican directamente a tu caso. Del
audio, si tu cámara ya "samplea" a 44100, puedes omitir el paso por
sox(1).
Que te sea leve.
-CR
Lo que a mi me muestra no se parece mucho esto es un ejemplo
#######################################################################
mplayer Imagen\ 024.mov
MPlayer 0.91-3.3.1 (C) 2000-2003 MPlayer Team
CPU: Advanced Micro Devices Athlon TB Thunderbird (Family: 6, Stepping:
2)
Detected cache-line size is 64 bytes
MMX2 supported but disabled
CPUflags: MMX: 1 MMX2: 0 3DNow: 1 3DNow2: 1 SSE: 0 SSE2: 0
Compiled for x86 CPU with extensions: MMX 3DNow 3DNowEx SSE
Reading config file /etc/mplayer/mplayer.conf
Reading config file /home/trujo/.mplayer/config
Reading /home/trujo/.mplayer/codecs.conf: can't open
'/home/trujo/.mplayer/codecs.conf': No existe el fichero o el directorio
Reading /etc/mplayer/codecs.conf: 50 audio & 136 video codecs
font: can't open file: /home/trujo/.mplayer/font/font.desc
Font /usr/share/mplayer/font/font.desc loaded successfully! (206 chars)
Linux RTC init error in ioctl (rtc_irqp_set 1024): Permiso denegado
Try adding "echo 1024 > /proc/sys/dev/rtc/max-user-freq" to your system
startup scripts.
Using usleep() timing
Can't open input config file /home/trujo/.mplayer/input.conf: No existe
el fichero o el directorio
Input config file /etc/mplayer/input.conf parsed: 52 binds
Opening joystick device /dev/input/js0
Can't open joystick device /dev/input/js0 : Permiso denegado
Can't init input joystick
Setting up LIRC support...
mplayer: could not connect to socket
mplayer: No existe el fichero o el directorio
Failed to open LIRC support.
You will not be able to use your remote control.
Playing Imagen 024.mov
Cache fill: 0,00% (0 bytes) QuickTime/MOV file format detected.
--------------
MOV track #0: 30 chunks, 90 samples
Image size: 309 x 206 (24 bpp)
Display size: 309 x 206
Fourcc: h263 Codec: 'H.263'
--------------
MOV track #1: 30 chunks, 0 samples
Audio bits: 16 chans: 1 rate: 7575
Fourcc: ulaw
--------------
MOV: longest streams: A: #1 (30 samples) V: #0 (90 samples)
==========================================================================
Opening audio decoder: [alaw] aLaw/uLaw audio decoder
AUDIO: 7575 Hz, 1 ch, 16 bit (0x10), ratio: 7575->15150 (60,6 kbit)
Selected audio codec: [ulaw] afm:alaw (uLaw)
==========================================================================
vo: X11 running at 1024x768 with depth 16 and 16 bpp (":0.0" => local
display)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh263] vfm:ffmpeg (FFmpeg H263+ decoder)
==========================================================================
Checking audio filter chain for 7575Hz/1ch/16bit -> 7575Hz/2ch/16bit...
AF_pre: af format: 2 bps, 1 ch, 7575 hz, little endian signed int
AF_pre: 7575Hz 1ch Signed 16-bit (Little-Endian)
SDL: Samplerate: 7575Hz Channels: Stereo Format Signed 16-bit
(Little-Endian)
AO: [sdl] 7575Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 7575Hz/1ch/16bit -> 7575Hz/2ch/16bit...
Starting playback...
VDec: vo config request - 352 x 288 (preferred csp: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [x11] 352x288 => 352x288 Planar YV12
Using MMX for colorspace transform
SwScaler: using unscaled Planar YV12 -> BGR 16-bit special converter
A: 5,8 V: 5,9 A-V: -0,125 ct: 0,128 90/ 90 8% 2% 0,5% 3 0 0%%
Exiting... (End of file)
####################################################################
se ve y oye perfectamente.
> Si aún estás conmigo, revisa este mensaje:
>
> http://lists.debian.org/debian-user-spanish/2003/debian-user-spanish-200307/msg02472.html
>
En esta conversación veo que hablais de transcode.
a mi me da conflicto con las kde se sid y no me gustaria tener que
reinstalarlas (tengo un modem de 56K). ¿Son impresindibles?
--
Por favor, NO utilice formatos de archivo propietarios para el
intercambio de documentos, como DOC y XLS, sino HTML, RTF, TXT,
CSV o cualquier otro que no obligue a utilizar un programa de un
fabricante concreto para tratar la información contenida en él.
SALUD
--
Antes que otra cosa, fe de erratas. Esto es una descarada falsedad:
> > Si el framerate de tu video no está en esa lista, maestro, no es
> > tu día de suerte. Si *realmente* tienes mucho interés en ver ese
> > video en tu DVD, desempolva tu libro de C y escríbeme en privado.
En esta última investigación vi que las mjpegtools incluyen ahora la
herramienta yuvfps(1). El framerate, pues, ya no es un problema.
Adicionalmente, descubrí que mencoder puede hacer lo mismo (-ofps).
Supongo que será mejor que yuvfps para streams de framerate muy
variable.
Ahora sí, decías de lo que te muestra mplayer...
> Lo que a mi me muestra no se parece mucho esto es un ejemplo
...
Intenta mplayer -identify fichero.mov , y busca una línea que diga
"ID_VIDEO_FPS=n".
Si aparece una barbaridad como cero, ó "1000.0", quizá mplayer no sabe
mostrar el framerate, o quizá se trata de un video de framerate
variable. Eso es muy poco común en MOVs, pero es posible (en cambio,
es la norma para ASFs). Puedes intentar averiguar el framerate usando
el método que expone este muchacho:
http://zebra.fh-weingarten.de/~maxi/html/mplayer-users/2002-07/msg01161.html
Si el framerate de tu stream no es 24.0, 25.0 ó 50.0 (asumo de tu mail
que estás usando PAL), o es de framerate variable, vas tener que
convertirlo. Elige tu veneno:
1 - Puedes usar yuvfps en tu pipa de codificación. Esto puede
desincronizar el audio si el framerate varía durante el stream.
2 - Puedes usar mencoder para generar un AVI intermedio. Si no
puedes usar -ovc copy, esto requiere mucho disco (para rawrgb) o
puede degradar la calidad (si recomprimes con algún codec).
Repito, esos enjuagues sólo son necesarios para videos con framerate
exótico.
> En esta conversación veo que hablais de transcode. a mi me da
> conflicto con las kde se sid y no me gustaria tener que
> reinstalarlas (tengo un modem de 56K). ¿Son impresindibles?
transcode no es necesario. Aunque quizá sea más fácil hacer la
conversión con transcode, no sé. Yo sólo he usado mjpegtools.
Realmente no he buscado alternativas porque las mjpegtools generan
video de una calidad excelente, y porque trabajo muy cómodamente con
scripts de shell, FIFOs, pipas y demás. Pero estoy consciente de que
para alguien con menos (de)formación unixera todo esto debe sonar
espantoso...
No es tan difícil...
:-) <--- sonrisa no muy convincente :-)
Ojalá que alguien sugiriera una alternativa.
-CR
> Intenta mplayer -identify fichero.mov , y busca una línea que diga
> "ID_VIDEO_FPS=n".
>
ID_VIDEO_FPS=14,987
¿es muy exotico?
Antes que otra cosa, fe de erratas. Esto es una descarada falsedad:
>
> > > Si el framerate de tu video no está en esa lista, maestro, no es
> > > tu día de suerte. Si *realmente* tienes mucho interés en ver ese
> > > video en tu DVD, desempolva tu libro de C y escríbeme en privado.
>
>
> http://zebra.fh-weingarten.de/~maxi/html/mplayer-users/2002-07/msg01161.html
>
me da no disponible
> Si el framerate de tu stream no es 24.0, 25.0 ó 50.0 (asumo de tu mail
> que estás usando PAL), o es de framerate variable, vas tener que
> convertirlo. Elige tu veneno:
>
Si es PAL
> 1 - Puedes usar yuvfps en tu pipa de codificación. Esto puede
> desincronizar el audio si el framerate varía durante el stream.
>
> 2 - Puedes usar mencoder para generar un AVI intermedio. Si no
> puedes usar -ovc copy, esto requiere mucho disco (para rawrgb) o
> puede degradar la calidad (si recomprimes con algún codec).
>
> Repito, esos enjuagues sólo son necesarios para videos con framerate
> exótico.
>
> > En esta conversación veo que hablais de transcode. a mi me da
> > conflicto con las kde se sid y no me gustaria tener que
> > reinstalarlas (tengo un modem de 56K). ¿Son impresindibles?
>
> transcode no es necesario. Aunque quizá sea más fácil hacer la
> conversión con transcode, no sé. Yo sólo he usado mjpegtools.
>
> Realmente no he buscado alternativas porque las mjpegtools generan
> video de una calidad excelente, y porque trabajo muy cómodamente con
> scripts de shell, FIFOs, pipas y demás. Pero estoy consciente de que
> para alguien con menos (de)formación unixera todo esto debe sonar
> espantoso...
>
Mi idea es crear unb scriptpara pasarlo cadavez que descarge fotos de la
camara (que captura pequeñas secuencias de video) y me las convierta
automaticamente antes de grabar el cd, por heso no he preguntado por
"factorias de cine" como lvs o cinerela
> No es tan difícil...
i si lo es me jodo y aprendo
> :-) <--- sonrisa no muy convincente :-)
--
Por favor, NO utilice formatos de archivo propietarios para el
intercambio de documentos, como DOC y XLS, sino HTML, RTF, TXT,
CSV o cualquier otro que no obligue a utilizar un programa de un
fabricante concreto para tratar la información contenida en él.
SALUD
Simón, bastante. ¿Así sale, con una coma?
¿Serán quince o quince mil?
> > http://zebra.fh-weingarten.de/~maxi/html/mplayer-users/2002-07/msg01161.html
> me da no disponible
Curioso. Acabo de probar el URI, y desde aquí baja bien.
> Mi idea es crear unb scriptpara pasarlo cadavez que descarge fotos
> de la camara (que captura pequeñas secuencias de video) y me las
> convierta automaticamente antes de grabar el cd, por heso no he
> preguntado por "factorias de cine" como lvs o cinerela
Ah, bien. Una disculpa, en todo caso, por si sentiste que te traté
con condescendencia. A veces tiendo a asumir la microsoftización por
defecto en la gente... :-(
Para generar MPEG apropiado para VCD PAL, el proceso del video es mas
o menos así:
i. Se extrae del video original un stream de video en formato
YUV4MPEG
ii. Se ajusta el tamaño de los cuadros del stream al tamaño adecuado
para VCD PAL (352x288), si es necesario
iii. Se ajusta el framerate a 25 fps, si es necesario
iv. Se comprime como video MPEG-1 usando parámetros para VCD
(detalles abajo, y en el manual de mpeg2enc)
El proceso del audio es:
v. Se extrae del MOV un stream PCM (WAV)
vi. Se ajusta el samplerate a 44100 samples/s, si es necesario
vii. Se comprime como audio MPEG-1 layer 2 (MP2)
Teniendo el video y audio comprimidos, se combinan (se "multiplexan")
en lo que se llama un "program/system stream". Este stream es el
video VCD final, que le puedes dar de comer a vcdimager para que él se
lo de a cdrdao, o lo que sea.
Para SVCD, el proceso es similar, excepto porque el tamaño de los
cuadros es distinto (480x576) y la compresión del video es MPEG-2.
Siguen ejemplos, muy parecidos a los de hace unos meses. Los streams
YUV4MPEG y PCM son video/audio *sin* compresión, y pueden crecer
muchísimo. Por eso tanto baile con FIFOs: para no tener que
almacenarlos en el disco.
------------------------------------------------------------------------
cd /tmp
mkfifo stream.yuv
mkfifo audiodump.wav
# Proceso del video. Esto asume que no hay necesidad de mover el
# "aspect ratio", y el video original está a quince fps. Quizá
# deberías usar -s 15000:1001 o incluso 14987:1000, no sé. No creo
# que importe, a menos que el video sea muy largo.
cat stream.yuv | yuvscaler -n p -M BICUBIC -O VCD | \
yuvfps -s 15:1 -r 25:1 | \
mpeg2enc -a 2 -n p -F 3 -4 2 -2 1 -B 250 -s -f 1 -o out.m1v &
# Proceso del audio. Si no tienes toolame, puedes usar mp2enc,
# incluido con mjpegtools.
cat audiodump.wav | sox -t wav - -t wav -r 44100 - resample -ql |\
toolame -s 44.1 -b 224 -m s -p 2 /dev/stdin out.mp2 &
# En este punto, las dos pipelines anteriores están bloqueadas
# esperando datos en los FIFOs. Esto arranca la conversion:
mplayer -vo yuv4mpeg -ao pcm fichero.mov
# Finalmente, cuando la conversion termina, combinas el video con
# el audio. Usa -O n si el audio y el video salen defasados.
mplex -f 1 -o out.mpg out.m1v out.mp2
# Si todo marcha bien, todo ésto ya es basura:
rm stream.yuv audiodump.wav out.m1v out.mp2
------------------------------------------------------------------------
Eso fue casi un script. Falta solo comprobar errores y parametrizar
cosas.
Nota que estoy usando parámetros para calidad alta (léase, eso va a
correr lento). Cambia la cuantización de mpeg2enc y el modo de
resample de sox para agilizar las cosas.
Para SVCD, cambia los parámetros de yuvscaler y mpeg2enc como indican
los manuales (-O SVCD / -f 4).
Si el framerate te da problemas (si no eran quince fps, después de
todo), puedes intentar generar un AVI temporal con mencoder...
mencoder -ovc copy -nosound -ofps 25 -o temp.avi
...y usarlo como origen de video para mplayer, brincándote el paso por
yuvfps en el pipeline. El audio lo puedes tomar del MOV original.
Nota que "-ovc copy" a veces mete ruido. Si eso te pasa, entonces, si
tienes mucho espacio en disco, usa "-ovc rawrgb". De lo contrario,
"-ovc lavc -lavcopts vcodec=mjpeg:vhq:vqscale=2" (esto último causa
una recompresión que degradará la calidad de tu video; trata de
evitarlo).
Espero que algo de esto te sirva.
-CR