2.2. Codecs soportados
Anterior | Capítulo 2. Características | Siguiente

## 2.2. Codecs soportados

### 2.2.1. Codecs de video

Vea la tabla de estado de codec para una lista completa, generada a diario. Hay unos pocos codecs disponibles para descarga desde nuestra página principal. Cójalos de nuestra página de codecs.

Los más importantes por encima de todo son:

- MPEG1 (VCD) y MPEG2 (DVD) video
- decodificadores nativos para DivX ;-), OpenDivX (DivX4), DivX 5.01, 3ivX, M$ MPEG4 v1, v2 y otras variantes de MPEG4
- decodificador nativo para Windows Media Video 7/8 (WMV1/WMV2), y decodificador Win32 DLL para Windows Media Video 9 (WMV3), ambos usados en archivos `.wmv`
- decodificador Sorenson 1 (SVQ1) nativo
- decodificador Sorenson 3 (SVQ3) nativo
- decodificador 3ivx v1, v2
- Codecs Cinepak y Intel Indeo (3.1,3.2,4.1,5.0)
- MJPEG, AVID, VCR2, ASV2 y otros formatos de hardware
- VIVO 1.0, 2.0, I263 y otras variantes h263(+)
- FLI/FLC
- RealVideo 1.0 & 2.0 de `libavcodec`, y RealVideo 3.0 & 4.0 usando bibliotecas RealPlayer
- decodificador nativo para HuffYUV
- Varios formatos antiguos simples tipo-RLE

Si tiene un codec Win32 no listado aquí que no esté aún soportado, por favor lea el COMO importar codec y ayúdenos a añadir soporte para él.

#### 2.2.1.1. DivX4/DivX5

Esta sección contiene información acerca de los codecs DivX4 y DivX5 de Project Mayo. La primera versión alpha disponible fue OpenDivX 4.0 alpha 47 y 48. Se incluyó soporte para él en MPlayer en el pasado, y construido por defecto. También se usa código de postprocesado para mejorar opcionalmente la calidad visual de las películas MPEG1/2. Ahora usamos el nuestro propio, para todos los tipos de archivos.

La nueva generación de este codec se llama DivX4 y puede incluso decodificar películas hechas con el infame codec DivX! Además es mucho más rápido que las DLLs nativas Win32 DivX pero más lento que `libavcodec`. Por eso su uso como decodificador no se recomienda. Sin embargo, es útil para codificar. Una desventaja de este codec es que no está disponible bajo una licencia de Código Abierto.

DivX4 funciona de dos maneras:

`-vc odivx`
  Usa el codec en el estilo OpenDivX. En este caso produce imágenes YV12 en su propio buffer, y MPlayer hace la conversión en el espacio de color vía libvo. (¡Rápido, recomendado!)
`-vc divx4`
  Usa la conversión en el espacio de color del codec. En este modo puede usar YUY2/UYVY, también. (LENTO)

El método `-vc odivx` es normalmente rápido, debido al hecho de que transfiere los datos de imágenes en formato YV12 (YUV 4:2:0 planar), por eso requiere mucho menos ancho de banda en el bus. Para modos empaquetados en YUV (YUY2, UYVY) use el método `-vc divx4`. Para modos RGB la velocidad es la misma, difiere en función de su profundidad de color actual.

### Nota

Si su controlador `-vo` soporta renderizado directo, entonces `-vc divx4` puede ser más rápido, o incluso la solución más rápida de todas.

La biblioteca de codec binario DivX4/5 puede descargarse desde avifile o divx.com Desempaquételo, ejecute `./install.sh` como root y no olvide añadir `/usr/local/lib` a su `/etc/ld.so.conf` y ejecutar ldconfig.

Obtenga la versión CVS de la biblioteca ANTIGUA OpenDivx del siguiente modo:

1.     cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login

2.     cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore

3. Esta biblioteca se une en un decodificador y codificador que tienen que ser compilados de forma separada. Para la Biblioteca decodificadora, símplemente escriba

       cd divxcore/decore/build/linux
       make
       cp libdivxdecore.so /usr/local/lib
       ln -s libdivxdecore.so /usr/local/lib/libdivxdecore.so.0
       cp ../../src/decore.h /usr/local/include

4. Qué pena, para la biblioteca de codificación no hay un Makefile para Linux disponible, y el código optimizado para MMX solo funciona en Windows. Puede aún compilarla, a persar de todo, usando este Makefile.

       cd ../../../encore/build
       mkdir linux
       cd linux
       cp path/Makefile .
       make
       cp libdivxencore.so /usr/local/lib
       ln -s libdivxencore.so /usr/local/lib/libdivxencore.so.0
       cp ../../src/encore.h /usr/local/include

MPlayer autodetecta DivX4/DivX5 si está correctamente instalado, compile símplemente de la manera habitual. Si no lo detecta, puede que no esté instalado o configurado correctamente.

#### 2.2.1.2. FFmpeg DivX/libavcodec

FFmpeg contiene un paquete de codec de código abierto que es capaz de decodificar flujos con varios codecs de audio y video. ¡También ofrece una facilidad impresionante para codificar y una velocidad mayor que los codecs Win32 o las bibliotecas DivX.com DivX4/5!

Contiene un montón de codecs bonitos, especialmente importantes son las variantes de MPEG4: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). También es muy interesante el decodificador de WMA.

El codec más reciente merecedor de créditos es el codec Sorenson 3 (SVQ3). Es la primera implementación de código abierto. Es incluso más rápido que el original. ¡Asegúrese de que prefiere éste antes que el codec binario!

Para una lista completa de los codecs soportados visite la página de FFmpeg. Codecs soportados de video y de audio.

Si usa una liberación de MPlayer que tiene `libavcodec` dentro del paquete, constrúyalo de la manera habitual. Si usa MPlayer desde CVS debe extraer `libavcodec` desde el árbol CVS de FFmpeg ya que las liberaciones de FFmpeg son raras. El CVS es bastante estable y ofrece muchas características. Para ello haga lo siguiente:

1.     cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login

2.     cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co ffmpeg

3. Mueva el directorio `libavcodec` desde los fuentes de FFmpeg al raíz del árbol CVS de MPlayer. Debe quedar como ésto: `>main/libavcodec`

   Hacer enlace simbólico no es suficiente, ¡debe copiarlo/moverlo!

4. Si prefiere tener `libavcodec` actualizado al mismo tiempo que actualiza el CVS de MPlayer, ponga la siguiente línea en su archivo `main/CVS/Entries`:

       D/libavcodec////

5. Compile. `configure` debe detectar los problemas antes de la compilación.

### Nota

MPlayer desde CVS contiene un subdirectorio `libavcodec` pero éste ¡no contiene el código para `libavcodec`! Debe seguir los pasos anteriores para obtener el código para esta biblioteca.

Con FFmpeg y mi Matrox G400, puedo ver hasta las peliculas DivX de mas alta resolución sin perder frames en mi K6-2 500.

#### 2.2.1.3. Codecs XAnim

INSTALACIÓN Y USO. MPlayer es capaz de usar los codecs XAnim para decodificar. Siga las instrucciones para habilitarlo:

1. Descargue los codecs que desee usar desde el sitio de XAnim. El codec de 3ivx no está aquí, sino en el sitio de 3ivx.

2. O descargue el paquete de codecs desde nuestra página de codecs

3. Use la opción `--with-xanimlibdir` para decir a `configure` dónde encontrar los codecs de XAnim. Por defecto, él mira en `/usr/local/lib/codecs`, `/usr/local/lib/xanim/mods`, `/usr/lib/xanim/mods` y `/usr/lib/xanim`. Alternativamente puede establecer la variable de entorno `XANIM_MOD_DIR` hacia el directorio de los codecs de XAnim.

4. Renombrar/crear enlaces a los archivos, corta lo relacionado con la arquitectura, porque tienen nombres de archivo como estos: `vid_cvid.xa`, `vid_h263.xa`, `vid_iv50.xa`

XAnim es la familia de codecs de video de `xanim`, puede que usted quiera usar la opción `-vfm xanim` para decir a MPlayer que lo use cuando sea posible.

Los codecs probados incluyen: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, h263.

#### 2.2.1.4. Video VIVO

MPlayer puede reproducir videos Vivo (1.0 y 2.0). El mejor codec para los archivos 1.0 es el decodificador FFmpeg H263, puede usarlo con la opción `-vc ffh263`. Para archivos 2.0, use la biblioteca Win32 a través de la opción `-vc vivo`. Si no proporciona opciones en la línea de órdenes MPlayer elige el mejor codec automáticamente.

#### 2.2.1.5. Video MPEG 1/2

MPEG1 y MPEG2 son decodificados por la biblioteca nativa multiplataforma `libmpeg2`, cuyo código fuente está incluido en MPlayer. Puede manejar archivos de video erróneos MPEG 1/2 cacheando la señal `Signal 11` (`segmentation fault`), y reinicializando rápidamente el codec, continuando exactamente por donde ocurrió este fallo. Esta técnica de recuperación no tiene una pérdida de velocidad notable.

#### 2.2.1.6. MS Video1

Este es un codec muy antiguo y muy malo de Microsoft. En el pasado era decodificado con el codec Win32 `msvidc32.dll`, ahora tenemos nuestra propia implementación de código abierto (por Mike Melanson).

#### 2.2.1.7. Cinepak CVID

MPlayer usa su propio decodificador de código abierto, multiplataforma de Cinepak (por Dr. Tim Ferguson) por defecto. Soporta salidas YUV, de modo que es posible escalar por hardware si el controlador de salida de video lo permite.

#### 2.2.1.8. RealVideo

MPlayer soporta la decodificación de todas las versiones de RealVideo:

- RealVideo 1.0, 2.0 (fourcc RV10, RV20) - cod/decodificación soportada por `libavcodec`
- RealVideo 3.0, 4.0 (fourcc RV30, RV40) - decodificación soportada por bibliotecas de RealPlayer

Es recomendable descargar e instalar RealPlayer8 o RealONE, porque MPlayer puede usar sus bibliotecas para decodificar archivos con video en RealVideo 2.0 - 4.0. El script `configure` de MPlayer debe detectar las bibliotecas de RealPlayer en las localizaciones estándar de una instalación completa. Si no lo hace, diga a `configure` dónde buscar con la opción `--with-reallibdir`.

Como segunda opción puede descargar los codecs desde http://www.mplayerhq.hu/MPlayer/releases/codecs/. Después de descargar el paquete de codecs de Real, extráigalo en el directorio `/usr/local/lib/codecs`, o puede especificar una ruta única con la opción `--with-reallibdir`.

### Nota

Las bibliotecas de RealPlayer actualmente solo funcionan con Linux, FreeBSD, NetBSD y Cygwin en las plataformas x86, Alpha and PowerPC (Linux/Alpha and Linux/PowerPC han sido probadas).

#### 2.2.1.9. XviD

XviD es una derivación del desarrollo del codec OpenDivX. Esto ocurrió cuando ProjectMayo cambió OpenDivX a código cerrado DivX4 (ahora DivX5), y la gente del no-ProjectMayo que trabajaba en OpenDivX se cabreó, e inició XviD. Este es el motivo de que ambos proyectos tengan el mismo origen.

VENTAJAS

- código abierto
- su API es compatible con DivX5 añadiendo soporte para que sea más fácil
- soporte de codificación en 2-pasadas
- muy buena calidad codificando, más velocidad que DivX4 (puede optimizarlo para su equipo compilándolo)

DESVENTAJAS

- actualmente no decodifica bien todos los archivos DivX/DivX4 (no hay problema porque `libavcodec` puede reproducirlos)
- bajo desarrollo

INSTALANDO XVID CVS

Actualmente está disponible solo desde CVS. Aquí tiene instrucciones para descargarlo e instalarlo (necesita al menos autoconf 2.50, automake y libtool):

1.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

2.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

3.     cd xvidcore/build/generic

4.     ./bootstrap.sh

5.     ./configure

   Puede añadir algunas opciones (examine la salida de

       ./configure --help

   ).

6.     make && make install

7. Si ha especificado `--enable-divxcompat`, copie `../../src/divx4.h` a `/usr/local/include/`.

8. Recompile MPlayer con `--with-xvidlibdir=`/ruta/a/`libxvidcore.a` `--with-xvidincdir=`/ruta/a/`xvid.h`

#### 2.2.1.10. Sorenson

Sorenson es un codec de video desarrollado por Sorenson Media y licenciado a Apple quien lo distribuye con su Reproductor QuickTime. Actualmente se es capaz de decodificar todas las versiones de los archivos de video Sorenson con los siguientes decodificadores:

- Sorenson Video v1 (fourcc SVQ1) - decodificación soportada por codec nativo (`libavcodec`)
- Sorenson Video v3 (fourcc SVQ3) - decodificación soportada por codec nativo (`libavcodec`)

COMPILANDO MPlayer CON SOPORTE PARA BIBLIOTECAS DE QUICKTIME

### Nota

actualmente solo está soportado por plataformas Intel de 32bit.

1. descargue MPlayer CVS

2. descargue el paquete QuickTime DLL desde http://www.mplayerhq.hu/MPlayer/releases/codecs/

3. extraiga el paquete QuickTime DLL a su directorio de codecs Win32 (por defecto: `/usr/local/lib/codecs/`)

4. compile MPlayer

### 2.2.2. Codecs de Audio

Los codecs de audio más importantes por encima de todo:

- Audio MPEG layer 1/2/3 (MP1/2/3) (código nativo con optimización MMX/SSE/3DNow!)
- Windows Media Audio 7 y 8 (aka WMAv1 y WMAv2) (código nativo, con `libavcodec`)
- Windows Media Audio 9 (WMAv3) (usando DMO DLL)
- AC3 Dolby audio (código nativo, con optimización MMX/SSE/3DNow!)
- AC3 pasando a través de hardware de tarjeta de sonido
- AAC
- codec de audio Ogg Vorbis (biblioteca nativa)
- RealAudio: DNET (AC3 con baja tasa de bits), Cook, Sipro y ATRAC3
- QuickTime: codecs de audio Qualcomm y QDesign
- audio VIVO (g723, Vivo Siren)
- audio Voxware (usando DLL DirectShow)
- alaw y ulaw, varios formatos gsm, adpcm y pcm y otros codecs de audio simples viejos

#### 2.2.2.1. Decodificación AC3 por software

Este es el decodificador por defecto usado para archivos de audio con AC3.

El decodificador AC3 puede crear mezclas de salida de audio para 2, 4, o 6 altavoces. Cuando se configura para 6 altavoces, este decodificador provee salidas por separado para todos los canales AC3 al controlador de sonido, permitiendo una experiencia "sonido surround" completa sin requerir un decodificardor AC3 externo que use el codec hwac3.

Use la opción `-channels` para elegir el número de canales de salida. Use `-channels 2` para una mezcla estéreo. Para una mezcla de 4 canales (salidas Delantero Izquierdo, Delantero Derecho, Surround Izquierdo y Surround Derecho), use `-channels 4`. En este caso, cualquier canal central será mezclado por igual en los canales frontales. `-channels 6` da salida a todos los canales AC3 que fueron codificados - en el orden Izquierdo, Derecho, Surround Izquierdo, Surround Derecho, Centro y LFE.

El número de canales de salida por defecto es 2.

Para usar más de 2 canales de salida, necesita usar OSS, y tener una tarjeta de sonido que soporte el número apropiado de canales via ioctl SNDCTL_DSP_CHANNELS. Un ejemplo de un controlador que lo soporte es emu10k1 (usado por tarjetas Soundblaster Live!) desde Agosto de 2001 o posterior (ALSA CVS también se supone que funciona).

#### 2.2.2.2. Decodificación AC3 por hardware

Necesita una tarjeta de sonido capaz de usar AC3, con salida digital (SP/DIF). El controlador de la tarjeta debe soportar correctamente el formato AFMT_AC3 (C-Media lo hace). Conecte su decodificador AC3 a la salida SP/DIF, y use la opción `-ac hwac3`. Es experimental pero se sabe que funciona con tarjetas C-Media y Soundblaster Live! + controladores ALSA (pero no con OSS) y tarjetas decodificadoras MPEG DXR3/Hollywood+.

#### 2.2.2.3. soporte libmad

libmad es una biblioteca de decodificación de audio MPEG solo de enteros (internamente PCM de 24bit) multiplataforma. No maneja archivos en mal estado muy bien, y algunas veces tiene problemas en las búsquedas, pero puede tener más rendimiento en máquinas sin FPU (tales como ARM) que la mp3lib.

Para activar el soporte, compile con la opción de configuración `--enable-mad`.

#### 2.2.2.4. Audio VIVO

El codec de audio usado en archivos VIVO depende de si se trata de un archivo VIVO/1.0 o VIVO/2.0. Los archivos VIVO/1.0 tienen audio g.723, y los archivos VIVO/2.0 tienen audio Vivo Siren. Ambos están soportados.

#### 2.2.2.5. RealAudio

MPlayer soporta la decodificación de casi todas las versiones de RealAudio:

- RealAudio DNET - decodificación soportada por `liba52`
- RealAudio Cook/Sipro/ATRAC3 - decodificación soportada por bibliotecas RealPlayer

Para saber cómo instalar las bibliotecas RealPlayer, vea la sección formato de archivo RealMedia.

#### 2.2.2.6. Codecs QDesign

Los flujos de audio QDesign (fourcc:QDMC, QDM2) se encuentran en los archivos MOV/QT. Ambas versiones de este codec pueden ser decodificadas con las bibliotecas de QuickTime. Para instrucciones acerca de la instalación vea por favor la sección Sorenson video codec.

#### 2.2.2.7. Codecs Qualcomm

Los flujos de audio de Qualcomm (fourcc:Qclp) se encuentran en los archivos MOV/QT. Pueden ser decodificador con las blibliotecas de QuickTime. Para instrucciones acerca de la instalación vea por favor la sección Sorenson video codec.

#### 2.2.2.8. Codec AAC

AAC (Codificación Avanzada de Audio) es un codec de audio que algunas veces se encuentra en archivos MOV y MP4. Un decodificador llamado FAAD de código abierto está disponible en http://www.audiocoding.com. MPlayer incluye libfaad 2.0RC1, por lo que no necesita obtenerlo por separado.

Si usa gcc 3.2 y falla al compilar nuestro FAAD interno o desea usar la biblioteca externa por alguna otra razón, descargue la biblioteca desde la página de descargas y pase la opción `--enable-external-faad` a `configure`. No necesita todo el faad2 para decodificar archivos AAC, libfaad es suficiente. Constrúyalo como sigue:

    cd faad2/
    chmod +x bootstrap
    ./bootstrap
    ./configure
    cd libfaad
    make
    make install

No hay binarios disponibles en audiocoding.com, pero puede apetegetear paquetes Debian desde la página personal de Christian Marillat, paquetes RPM para Mandrake desde la P.L.F. y RPMs para Red Hat en Grey Sector.

### 2.2.3. COMO importar codecs Win32

#### 2.2.3.1. Codecs VFW

VFW (Video for Windows) es una API antigua para Windows. Sus codecs tienen la extensión `.DLL` o (rara vez) `.DRV`. Si MPlayer falla al reproducir su AVI con este tipo de mensaje:

    Codec de video DESCONOCIDO: HFYU (0x55594648)

Esto significa que su AVI está codificado con un codec que tiene el código fourcc HFYU (HFYU = codec HuffYUV, DIV3 = DivX Low Motion, etc.). Ahora que ya sabe qué es esto, puede encontrar qué DLL's de Windows se cargan para reproducir estos archivos. En su caso, el `system.ini` contiene esa información en una línea similar a:

    VIDC.HFYU=huffyuv.dll

Necesita el archivo `huffyuv.dll`. Note que los codecs de audio son especificados por el prefijo MSACM:

    msacm.l3acm=L3codeca.acm

Éste es el codec MP3. Ahora que tiene toda la información necesaria (fourcc, archivo de codec, AVI ejemplo), envíe su petición de soporte de codec por correo, y suba esos archivos al sitio FTP: `ftp://upload.mplayerhq.hu/MPlayer/incoming/[nombrecodec]/`

### Nota

En Windows NT/2000/XP busque esa información en el registro, p.e. busque "VIDC.HFYU". Para saber cómo tiene que hacer eso, vea el antiguo método DirectShow más abajo.

#### 2.2.3.2. Codecs DirectShow

DirectShow es la nueva API de Video, que es incluso peor que su predecesor. Las cosas son más difíciles con DirectShow, ya que

- `system.ini` no contiene la información necesaria, en lugar de eso está guardada en el registro y
- se necesita el GUID del codec.

Nuevo Método:

Usando Microsoft GraphEdit (rápido)

1. Obtenga GraphEdit desde el SDK DirectX SDK o doom9

2. Inicie graphedit.exe.

3. Desde el menú elija Graph -> Insert Filters.

4. Expanda el objeto `DirectShow Filters`

5. Seleccione el nombre del codec correcto y expanda la lista.

6. En la entrada `DisplayName` busque el texto entre paréntesis después de la barra invertida y escriba (cinco bloques de campos delimitados por saltos, el GUID).

7. El binario del codec es el archivo especificado en la entrada `Filename`.

### Nota

Si no hay `Filename` y `DisplayName` contiene algo como `device:dmo`, entonces es un codec-DMO.

Antíguo Método:

Respire hondo y comience a buscar en el registro...

1. Inicie regedit.

2. Pulse Ctrl+F, desactive las dos primeras casillas de verificación, y active la tercera. Escriba el fourcc del codec (p.e. `TM20`).

3. Debe ver un campo que contiene la ruta y el nombre del archivo (p.e. `C:\WINDOWS\SYSTEM\TM20DEC.AX`).

4. Ahora que tiene el archivo, necesita el GUID. Pruebe a buscar de nuevo, pero ahora busque el nombre del codec, no el fourcc. Su nombre se puede obtener cuando Media Player está reproduciendo el archivo, consultando Archivo -> Propiedades -> Avanzado. Si no es así, la suerte no está de su lado. Pruebe la adivinación (p.e. busque por TrueMotion).

5. Si encuentra el GUID debería ver unos campos FriendlyName y CLSID. Apunte el CLSID de 16 bytes, este es el GUID que necesitará.

### Nota

Si la búsqueda falla, pruebe a activar todas las casillas de verificación. Puede que encuentre coincidencias falsas, pero puede que tenga suerte...

Ahora que tiene toda la información necesaria (fourcc, GUID, archivo de codec, y AVI de ejemplo), envíe la petición de soporte del codec por correo, y suba los archivos al sitio FTP: `ftp://upload.mplayerhq.hu/MPlayer/incoming/[nombrecodec]/`

Anterior | Subir | Siguiente
2.1. Formatos soportados | Inicio | 2.3. Dispositivos de Salida