Compilando MPlayer

Si has creado algún documento interesante, este es su sitio

Moderador: Moderadores

Compilando MPlayer

Notapor Death_Master » Mar Jul 26, 2005 7:55 pm

Hace algo más de un mes prometí escribir este manual. Por falta de tiempo, he tardado bastante más de lo que pensaba en un principio, pero ya está aquí.

Siempre he considerado a MPlayer el mejor reproductor multimedia que he probado en cualquier sistema. Conforme pasa el tiempo y el proyecto madura e incorpora nuevas funcionalidades, voy reafirmando mi opinión.

El único punto en contra que le he visto siempre es la dificultad para los novatos a la hora de configurarlo, compilarlo e instalarlo correctamente, de forma que se le pueda sacar todo el jugo. Este texto pretende ser una ayuda para todos aquellos que alguna vez han intentado compilar sin éxito MPlayer; o para aquellos que, aún habiéndolo logrado, tienen problemas para reproducir ciertos formatos.

Espero que os guste... ya me contaréis. ;)

Links de descarga

Fichero de información (mirror)
Documento PDF (mirror)
Firma digital (mirror)
Omnium potentior est sapientia
Avatar de Usuario
Death_Master
Gran Wadalbertita
Gran Wadalbertita
 
Mensajes: 2925
Registrado: Mié Ene 26, 2005 10:36 pm
Ubicación: 404

Notapor Popolous » Mar Jul 26, 2005 10:36 pm

Descargado y en cuanto tenga un hueco, lo leo y te cuento.

Seguro que viniendo de ti, todo un incunable.

¡Saludos!
Popolous
Wadalbertita
Wadalbertita
 
Mensajes: 1946
Registrado: Mié Ene 26, 2005 10:40 pm
Ubicación: E=mc^2

Notapor KroNeath » Jue Jul 13, 2006 2:10 am

Reabro este post para preguntarles sobre algunos problemas que tengo cuando compilo el mplayer :(, realmente ya no se que hacer, estoy desesperado :cry:. Empece poco a poco a solucionar algunos errores, todos en el proceso de ./configure, cuando llega la hora de hacer el make cefini!! error!!.

Antes mencionar que el Mplayer, pack de codec y Xvid han sido todos actualizados.

- MPlayer v1.0pre7 actualizado a MPlayer v1.0pre8 (revisar cambios).
- Codecs: 20051120 ha pasado por varias actualizaciones hasta llegar a 20060611 (revisar cambios).
- XviD 1.1.0-beta2 actualizado a Xvid 1.1.0 (revisar cambios).

Eso para estar al día :D. Bueno sigo, tengo Debian Sid, antes lo había compilado en Sarge y no tuve estos problemas, se los describo a continuación.

Al hacer ./configure:

Warning:
configure: WARNING: no correct assembler was found - Compiling generic sources only


Se soluciona instalando nasm.

Código: Seleccionar todo
apt-get install nasm


Error 1: Si aparece algo relacionado con "pkg-config", instalarlo con...

Código: Seleccionar todo
apt-get install pkg-config


Error 2:
Error: PNG support required for GUI compilation, please install libpng and libpng-dev packages


Solución: Instalar la librería libpng12-dev.

Código: Seleccionar todo
apt-get install libpng12-dev


Error 3:
Error: X11 support required for GUI compilation


Solución: En la carpeta donde tenemos el mplayer que sería /home/kroneath/MPlayer-1.0pre8 (esto puede variar de acuerdo al nombre de usuario que se tenga), dentro de MPlayer-1.0pre8 nos dirigimos a la carpeta debian luego miramos el archivo control con nuestro editor favorito (vivivivi...), lo que interesa es:

Build-Depends: libgtk1.2-dev | libgtk2.0-dev, libpng12-dev, zlib1g-dev, x-dev, libx11-dev, libxext-dev, libxinerama-dev, libxv-dev, debhelper (>= 2)


Debemos instalar esos paquetes, fijarse que libpng12-dev y debhelper ya esta instalada, solo queda hacer...

Código: Seleccionar todo
apt-get install libgtk1.2-dev libgtk2.0-dev zlib1g-dev x-dev libx11-dev libxext-dev libxinerama-dev libxv-dev


Nota: Para buscar un paquete escribir "dpkg -l | grep <nombre_paquete>" (sin comillas).

Hasta aquí todo bien, llega el momento de hacer el make :(, he aquí el problema.

Código: Seleccionar todo
mplayer.o:(.data+0x4e4): undefined reference to `tv_param_alsa'
mplayer.o:(.data+0x2618): undefined reference to `rtspStreamOverTCP'
mplayer.o:(.data+0x263c): undefined reference to `rtsp_port'
libavcodec/libavcodec.a(mpegvideo.o): In function `write_slice_end':
mpegvideo.c:(.text+0x97a8): undefined reference to `ff_mpeg4_stuffing'
mpegvideo.c:(.text+0x97c2): undefined reference to `ff_mpeg4_merge_partitions'
libavcodec/libavcodec.a(mpegvideo.o): In function `MPV_encode_init':
mpegvideo.c:(.text+0xd5ae): undefined reference to `ff_h263_chroma_qscale_table'
mpegvideo.c:(.text+0xd6e2): undefined reference to `ff_mpeg4_default_intra_matrix'
mpegvideo.c:(.text+0xd6f2): undefined reference to `ff_mpeg4_default_non_intra_matrix'
mpegvideo.c:(.text+0xd752): undefined reference to `h263_get_picture_format'
mpegvideo.c:(.text+0xdc13): undefined reference to `h263_encode_init'
libavcodec/libavcodec.a(mpegvideo.o): In function `encode_picture':
mpegvideo.c:(.text+0xe785): undefined reference to `ff_clean_h263_qscales'
mpegvideo.c:(.text+0xe7a9): undefined reference to `ff_set_mpeg4_time'
mpegvideo.c:(.text+0xf124): undefined reference to `ff_clean_mpeg4_qscales'
mpegvideo.c:(.text+0xf1e0): undefined reference to `ff_clean_mpeg4_qscales'
mpegvideo.c:(.text+0xf246): undefined reference to `h263_encode_picture_header'
mpegvideo.c:(.text+0xf4be): undefined reference to `ff_clean_h263_qscales'
mpegvideo.c:(.text+0xf4d3): undefined reference to `mpeg4_encode_picture_header'
mpegvideo.c:(.text+0xf5a3): undefined reference to `ff_flv_encode_picture_header'
libavcodec/libavcodec.a(mpegvideo.o): In function `encode_mb_hq':
mpegvideo.c:(.text+0x1b8ff): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x1bd44): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x1e234): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x20781): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x2160a): undefined reference to `mpeg4_encode_mb'
mpegvideo.c:(.text+0x216a6): undefined reference to `h263_encode_mb'
mpegvideo.c:(.text+0x21f50): undefined reference to `mpeg4_encode_mb'
mpegvideo.c:(.text+0x21fec): undefined reference to `h263_encode_mb'
libavcodec/libavcodec.a(mpegvideo.o): In function `encode_thread':
mpegvideo.c:(.text+0x22317): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x225ee): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x22f74): undefined reference to `mpeg4_encode_mb'
mpegvideo.c:(.text+0x22fe9): undefined reference to `h263_encode_mb'
mpegvideo.c:(.text+0x23052): undefined reference to `ff_h263_get_gob_height'
mpegvideo.c:(.text+0x23d89): undefined reference to `h263_encode_gob_header'
mpegvideo.c:(.text+0x23e2f): undefined reference to `ff_mpeg4_encode_video_packet_header'
mpegvideo.c:(.text+0x23e37): undefined reference to `ff_mpeg4_clean_buffers'
mpegvideo.c:(.text+0x24108): undefined reference to `ff_mpeg4_set_direct_mv'
mpegvideo.c:(.text+0x24530): undefined reference to `ff_h263_update_motion_val'
mpegvideo.c:(.text+0x24640): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x24c5d): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x25267): undefined reference to `ff_h263_update_motion_val'
mpegvideo.c:(.text+0x25458): undefined reference to `ff_h263_loop_filter'
mpegvideo.c:(.text+0x25ca0): undefined reference to `ff_set_qscale'
mpegvideo.c:(.text+0x26a98): undefined reference to `ff_mpeg4_init_partitions'
mpegvideo.c:(.text+0x27090): undefined reference to `ff_mpeg4_set_direct_mv'
mpegvideo.c:(.text+0x272c4): undefined reference to `ff_mpeg4_init_partitions'
libavcodec/libavcodec.a(dsputil.o): In function `h263_h_loop_filter_c':
dsputil.c:(.text+0x16548): undefined reference to `ff_h263_loop_filter_strength'
libavcodec/libavcodec.a(dsputil.o): In function `h263_v_loop_filter_c':
dsputil.c:(.text+0x1668b): undefined reference to `ff_h263_loop_filter_strength'
libavcodec/libavcodec.a(parser.o): In function `mpeg4video_parse':
parser.c:(.text+0x104d): undefined reference to `ff_mpeg4_decode_picture_header'
parser.c:(.text+0x10e4): undefined reference to `ff_mpeg4_decode_picture_header'
libavcodec/libavcodec.a(msmpeg4.o): In function `common_init':
msmpeg4.c:(.text+0x1333): undefined reference to `DCtab_lum'
msmpeg4.c:(.text+0x1340): undefined reference to `DCtab_lum'
msmpeg4.c:(.text+0x1379): undefined reference to `DCtab_chrom'
msmpeg4.c:(.text+0x1388): undefined reference to `DCtab_chrom'
msmpeg4.c:(.text+0x13e3): undefined reference to `DCtab_chrom'
msmpeg4.c:(.text+0x13f6): undefined reference to `DCtab_chrom'
msmpeg4.c:(.text+0x14f1): undefined reference to `ff_mpeg4_y_dc_scale_table'
msmpeg4.c:(.text+0x14f6): undefined reference to `ff_mpeg4_c_dc_scale_table'
libavcodec/libavcodec.a(msmpeg4.o): In function `ff_msmpeg4_decode_init':
msmpeg4.c:(.text+0x1b1d): undefined reference to `init_vlc_rl'
msmpeg4.c:(.text+0x1b47): undefined reference to `init_vlc_rl'
msmpeg4.c:(.text+0x1b71): undefined reference to `init_vlc_rl'
msmpeg4.c:(.text+0x1b9b): undefined reference to `init_vlc_rl'
msmpeg4.c:(.text+0x1bc5): undefined reference to `init_vlc_rl'
libavcodec/libavcodec.a(msmpeg4.o):msmpeg4.c:(.text+0x1bef): more undefined references to `init_vlc_rl' follow
libavcodec/libavcodec.a(msmpeg4.o): In function `ff_msmpeg4_decode_init':
msmpeg4.c:(.text+0x1efa): undefined reference to `cbpy_tab'
msmpeg4.c:(.text+0x1f1e): undefined reference to `cbpy_tab'
msmpeg4.c:(.text+0x201a): undefined reference to `mvtab'
msmpeg4.c:(.text+0x2023): undefined reference to `mvtab'
msmpeg4.c:(.text+0x2228): undefined reference to `intra_MCBPC_bits'
msmpeg4.c:(.text+0x2248): undefined reference to `intra_MCBPC_code'
msmpeg4.c:(.text+0x2293): undefined reference to `inter_MCBPC_bits'
msmpeg4.c:(.text+0x22a5): undefined reference to `inter_MCBPC_code'
libavcodec/libavcodec.a(msmpeg4.o): In function `msmpeg4_encode_mb':
msmpeg4.c:(.text+0x3410): undefined reference to `h263_pred_motion'
msmpeg4.c:(.text+0x36bb): undefined reference to `cbpy_tab'
msmpeg4.c:(.text+0x36c3): undefined reference to `cbpy_tab'
msmpeg4.c:(.text+0x372f): undefined reference to `cbpy_tab'
msmpeg4.c:(.text+0x3737): undefined reference to `cbpy_tab'
msmpeg4.c:(.text+0x37a4): undefined reference to `h263_pred_motion'
msmpeg4.c:(.text+0x37b9): undefined reference to `mvtab'
msmpeg4.c:(.text+0x37c3): undefined reference to `mvtab'
msmpeg4.c:(.text+0x3915): undefined reference to `mvtab'
msmpeg4.c:(.text+0x391d): undefined reference to `mvtab'
msmpeg4.c:(.text+0x398a): undefined reference to `mvtab'
libavcodec/libavcodec.a(msmpeg4.o):msmpeg4.c:(.text+0x3994): more undefined references to `mvtab' follow
libavcodec/libavcodec.a(msmpeg4.o): In function `msmpeg4_encode_mb':
msmpeg4.c:(.text+0x3c51): undefined reference to `ff_mpeg4_clean_buffers'
libavcodec/libavcodec.a(msmpeg4.o): In function `ff_wmv2_encode_mb':
msmpeg4.c:(.text+0x3fc7): undefined reference to `h263_pred_motion'
msmpeg4.c:(.text+0x427e): undefined reference to `ff_mpeg4_clean_buffers'
libavcodec/libavcodec.a(msmpeg4.o): In function `msmpeg4_decode_block':
msmpeg4.c:(.text+0x60f7): undefined reference to `mpeg4_pred_ac'
libavcodec/libavcodec.a(msmpeg4.o): In function `msmpeg4v34_decode_mb':
msmpeg4.c:(.text+0x773a): undefined reference to `h263_pred_motion'
libavcodec/libavcodec.a(msmpeg4.o): In function `msmpeg4v12_decode_mb':
msmpeg4.c:(.text+0x788b): undefined reference to `h263_pred_motion'
libavcodec/libavcodec.a(msmpeg4.o):(.data+0x260): undefined reference to `intra_vlc'
libavcodec/libavcodec.a(msmpeg4.o):(.data+0x264): undefined reference to `intra_run'
libavcodec/libavcodec.a(msmpeg4.o):(.data+0x268): undefined reference to `intra_level'
libavcodec/libavcodec.a(msmpeg4.o):(.data+0x494): undefined reference to `inter_vlc'
libavcodec/libavcodec.a(msmpeg4.o):(.data+0x498): undefined reference to `inter_run'
libavcodec/libavcodec.a(msmpeg4.o):(.data+0x49c): undefined reference to `inter_level'
libavcodec/libavcodec.a(h263dec.o): In function `decode_slice':
h263dec.c:(.text+0x2c8): undefined reference to `ff_set_qscale'
h263dec.c:(.text+0x311): undefined reference to `ff_set_qscale'
h263dec.c:(.text+0x3a5): undefined reference to `ff_h263_update_motion_val'
h263dec.c:(.text+0x46c): undefined reference to `ff_h263_loop_filter'
h263dec.c:(.text+0x77d): undefined reference to `ff_mpeg4_decode_partitions'
h263dec.c:(.text+0x7ba): undefined reference to `ff_h263_loop_filter'
libavcodec/libavcodec.a(h263dec.o): In function `ff_h263_decode_init':
h263dec.c:(.text+0x9a1): undefined reference to `ff_h263_decode_mb'
h263dec.c:(.text+0xa38): undefined reference to `h263_decode_init_vlc'
h263dec.c:(.text+0xa68): undefined reference to `ff_mpeg4_decode_mb'
libavcodec/libavcodec.a(h263dec.o): In function `ff_h263_decode_frame':
h263dec.c:(.text+0xcbc): undefined reference to `ff_mpeg4_decode_picture_header'
h263dec.c:(.text+0x12e1): undefined reference to `flv_h263_decode_picture_header'
h263dec.c:(.text+0x13c4): undefined reference to `h263_decode_picture_header'
h263dec.c:(.text+0x1406): undefined reference to `ff_mpeg4_decode_picture_header'
h263dec.c:(.text+0x152c): undefined reference to `intel_h263_decode_picture_header'
h263dec.c:(.text+0x179f): undefined reference to `ff_mpeg4_clean_buffers'
h263dec.c:(.text+0x1824): undefined reference to `ff_h263_get_gob_height'
h263dec.c:(.text+0x18d2): undefined reference to `ff_h263_resync'
libavcodec/libavcodec.a(h261.o): In function `h261_decode_init':
h261.c:(.text+0x6f7): undefined reference to `init_vlc_rl'
libavcodec/libavcodec.a(h261.o): In function `ff_h261_encode_mb':
h261.c:(.text+0x1566): undefined reference to `ff_set_qscale'
libavcodec/libavcodec.a(h261.o): In function `h261_decode_frame':
h261.c:(.text+0x2147): undefined reference to `ff_set_qscale'
h261.c:(.text+0x2404): undefined reference to `ff_set_qscale'
libavcodec/libavcodec.a(rv10.o): In function `rv10_decode_packet':
rv10.c:(.text+0x227): undefined reference to `ff_h263_decode_mba'
rv10.c:(.text+0x3d7): undefined reference to `ff_aic_dc_scale_table'
rv10.c:(.text+0x3e2): undefined reference to `ff_aic_dc_scale_table'
rv10.c:(.text+0x3f7): undefined reference to `ff_h263_chroma_qscale_table'
rv10.c:(.text+0x40f): undefined reference to `ff_set_qscale'
rv10.c:(.text+0x522): undefined reference to `ff_h263_decode_mb'
rv10.c:(.text+0x551): undefined reference to `ff_h263_update_motion_val'
rv10.c:(.text+0x579): undefined reference to `ff_h263_loop_filter'
libavcodec/libavcodec.a(rv10.o): In function `rv10_decode_init':
rv10.c:(.text+0xe0e): undefined reference to `h263_decode_init_vlc'
libavcodec/libavcodec.a(rv10.o): In function `rv20_encode_picture_header':
rv10.c:(.text+0x13bb): undefined reference to `ff_h263_encode_mba'
rv10.c:(.text+0x13fb): undefined reference to `ff_aic_dc_scale_table'
rv10.c:(.text+0x1400): undefined reference to `ff_aic_dc_scale_table'
libavcodec/libavcodec.a(snow.o): In function `encode_init':
snow.c:(.text+0xf3ec): undefined reference to `h263_encode_init'
libavcodec/libavcodec.a(svq1.o): In function `svq1_encode_init':
svq1.c:(.text+0x1444): undefined reference to `h263_encode_init'
libavcodec/libavcodec.a(svq1.o): In function `svq1_decode_init':
svq1.c:(.text+0x2c6c): undefined reference to `mvtab'
svq1.c:(.text+0x2ca5): undefined reference to `mvtab'
libavcodec/libavcodec.a(svq1.o): In function `svq1_encode_plane':
svq1.c:(.text+0x383b): undefined reference to `h263_pred_motion'
svq1.c:(.text+0x3a52): undefined reference to `ff_h263_encode_motion'
svq1.c:(.text+0x3a72): undefined reference to `ff_h263_encode_motion'
libavcodec/libavcodec.a(vc9.o): In function `vc9_decode_block':
vc9.c:(.text+0x4a8): undefined reference to `mpeg4_pred_ac'
libavcodec/libavcodec.a(dsputil_mmx.o): In function `h263_v_loop_filter_mmx':
dsputil_mmx.c:(.text+0x1de4): undefined reference to `ff_h263_loop_filter_strength'
libavcodec/libavcodec.a(dsputil_mmx.o): In function `h263_h_loop_filter_mmx':
dsputil_mmx.c:(.text+0x5562a): undefined reference to `ff_h263_loop_filter_strength'
collect2: ld returned 1 exit status
make: *** [mplayer] Error 1


Disculpen si es muy extenso, tratando de hacer algo instale las librerías libavcodec-dev, libavcodec0d, libavformat-dev, libavformat0d, libpostproc0d, libpostproc-dev, todas esta son utilizadas por ffmpeg que pueden tener relación con todos esos mensajes de reference to ff_... eso es lo que creo xD (o estare equivocado), por eso mis salvadores son ustedes :D.

He buscado por todos lados y nada de nada a no ser que haya que aplicar algún patch en algún fichero, pero ni idea.

Saludos.

--EDIT--
Felicitaciones a Death Master por este gran manual ;).
--FIN-EDIT--
...Como parte del Plan de Dominación Mundial se están contemplando las siguientes posibilidades:
-> Adoptar el C
-> Adoptar el esperanto y darle vidilla.
-> Adoptar el latín y resucitarle del todo.
-> Adoptar el kligoniano y estar dispuestos a que nos saquen coplas o en los papeles.
-> Adoptar el élfico y.... En fín, todos sabemos que pasaría entonces.
-> Generar nuestra propia lengua. A ser posible que compile directamente."...
desde la enciclopedia
:badgrin:
Avatar de Usuario
KroNeath
:-D
:-D
 
Mensajes: 82
Registrado: Lun Abr 03, 2006 5:20 am

Notapor KroNeath » Vie Jul 14, 2006 7:38 pm

¿Qué podría significar undefined reference to? Será acaso que no encuentre la ruta de la librería. Seguire buscando cualquier cosa informo.

Saludines :-D.
...Como parte del Plan de Dominación Mundial se están contemplando las siguientes posibilidades:
-> Adoptar el C
-> Adoptar el esperanto y darle vidilla.
-> Adoptar el latín y resucitarle del todo.
-> Adoptar el kligoniano y estar dispuestos a que nos saquen coplas o en los papeles.
-> Adoptar el élfico y.... En fín, todos sabemos que pasaría entonces.
-> Generar nuestra propia lengua. A ser posible que compile directamente."...
desde la enciclopedia
:badgrin:
Avatar de Usuario
KroNeath
:-D
:-D
 
Mensajes: 82
Registrado: Lun Abr 03, 2006 5:20 am


Volver a Faq

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado