# [Résolu] [vlc] Impossible de lire des divx, xvid, h264, ...

## aXi

Hello,

Tout est dans le titre...

Après quelques recherches, il semblerait que le problï¿½me vienne d'une erreur lors du chargement du module ffmpeg :

Après un 

```

$ vlc -v --reset-plugins-cache

VLC media player 0.8.6b Janus

[00000001] main private warning: cannot load module `/usr/lib/vlc/codec/libffmpeg_plugin.so' (/usr/lib/libavformat.so.51: undefined symbol: av_aes_size)

[00000001] main private warning: cannot load module `/usr/lib/vlc/codec/libquicktime_plugin.so' (/usr/lib/vlc/codec/libquicktime_plugin.so: undefined symbol: NewHandleClear)

```

Il n'a donc pas l'air de charger le module ffmpeg (et celui pour les quicktime accessoirement)

J'ai déjà essayé de recompiler ffmpeg et vlc, fait un revdep-rebuild. J'ai évidemment cherché des topic parlant de ce problème sur le forum, ainsi que sur bugs.gentoo, mais rien. Pourtant, deux autres personnes sur gentoo que je connais ont le même soucis..ce n'est pas que moi...

Je me rappelle malheureusement plus depuis quand exactement c'est arrivé (donc depuis quel packet...)

Voici mes flags :

```

[I] media-video/vlc

     Available versions:  0.8.6-r1 0.8.6b

     Installed versions:  0.8.6b(15:15:40 30. 05. 07)(-3dfx X a52 aalib alsa -altivec -arts avahi -bidi -cdda -cddb -corba -daap -dc1394 -debug -directfb -dts -dvb dvd esd -fbcon flac -ggi -gnutls hal -httpd -jack libcaca libnotify -lirc -live matroska -mod mp3 mpeg musepack ncurses nsplugin ogg opengl -optimisememory oss png -rtsp samba -sdl -sdl-image -seamonkey -shout -skins -speex -stream svg -svga -theora truetype -upnp -v4l vcd -vlm vorbis win32codecs wxwindows x264 xinerama xml xosd xv)

     Homepage:            http://www.videolan.org/vlc/

     Description:         VLC media player - Video player and streamer

[I] media-video/ffmpeg

     Available versions:  0.4.9_p20050226-r3 0.4.9_p20051216 ~0.4.9_p20060302 0.4.9_p20060530 ~0.4.9_p20060816 0.4.9_p20061016 0.4.9_p20070129 ~0.4.9_p20070325 0.4.9_p20070330 [M]~0.4.9_p20070525

     Installed versions:  0.4.9_p20070330(14:51:30 30. 05. 07)(X a52 aac -altivec -amr -debug -doc -dts encode -ieee1394 -imlib mmx -network ogg oss -sdl -test -theora -threads truetype -v4l vorbis x264 xvid zlib)

     Homepage:            http://ffmpeg.org/

     Description:         Complete solution to record, convert and stream audio and video. Includes libavcodec. SVN revision 8560
```

Si quelqu'un a une idée...

++Last edited by aXi on Sun Jun 03, 2007 8:54 pm; edited 1 time in total

----------

## xaviermiller

salut,

As-tu bien activé les USE qu'il faut ? Pour vérifier

```
emerge -av vlc
```

Sinon, les messages d'erreur indiquent des références absentes. Solution

```
emerge -DuN world

revdep-rebuild -i
```

----------

## aXi

Salut,

J'ai beau regarder plusieurs fois la liste de flags pour vlc, mais il me semble qu'ils y sont tous. Regarde par toi-même... J'ai remarqué par contre qu'il n'y avait plus de flag ffmpeg (alors qu'il y était il y a quelques versions)...

J'ai réessayé ce que tu m'as dis, mais revdep-rebuild ne trouve aucun break...je vais pas recompiler vlc 10 fois non plus  :Shocked: 

J'ai pas l'impression que ce soit un problème de newbye, mais un truc plus grave (api break ou je sais pas...)

----------

## xaviermiller

et as-tu jeté un oeil sur bgo ?

----------

## aXi

 *XavierMiller wrote:*   

> et as-tu jeté un oeil sur bgo ?

 

Oui (je l'ai mis dans mon post d'ailleur  :Wink:  )

Mais rien de particulier...

----------

## Desintegr

Essaye de désinstaller ffmpeg et vlc en vérifiant bien que tous les fichiers sont bien supprimés.

Ensuite recompile dans l'ordre ffmpeg puis vlc.

----------

## aXi

 *Desintegr wrote:*   

> Essaye de désinstaller ffmpeg et vlc en vérifiant bien que tous les fichiers sont bien supprimés.
> 
> Ensuite recompile dans l'ordre ffmpeg puis vlc.

 

Je l'ai rententé, mais non...

Xine arrive très bien à utiliser ffmpeg pourtant...

----------

## daiji

J'ai exactement le même problème chez moi et rien à faire... bizzare..

----------

## AgentMat

vire win32codecs ca peut foutre que le bordel ^^ (et on lit tres bien les wmv/mpeg sans)

----------

## daiji

perso je les ai pas, et mon vlc me fait pas moins la tête :p

----------

## AgentMat

hum ca me rappelle un probleme de merde que j avais eu sur libGL.so. En gros j avais compile la derniere version bien mais mon driver pointait sur un autre repertoire (sur une ancienne version de la lib) du coup la lib se chargeait pas.

ca pourrait expliquer le "undefined symbol: av_aes_size) " il trouve une librairie avec le nom qu il cherche mais c est pas la bonne version. Essaye de voir la date de ton libffmepg.plugin.so voir si c est pas une version qui date de mathusalem. Si c est le cas trouve la bonne et fais un symlink ^^

----------

## Alexis

 *AgentMat wrote:*   

>  Essaye de voir la date de ton libffmepg.plugin.so voir si c est pas une version qui date de mathusalem. Si c est le cas trouve la bonne et fais un symlink ^^

 

très mauvaise idée ça, si le soname change, y'a une raison. La bonne solution est le revdep-rebuild.

Le problème du undefined symbol est justement du à ce genre de choses (ou alors ffmpeg qui a changé un peu l'abi sans changer le soname).

Essaie de voir à quoi /usr/lib/vlc/codec/libffmpeg_plugin.so est linké avec ldd, de même pour /usr/lib/vlc/codec/libquicktime_plugin.so

Moi j'dirais qu'ils sont mal linkés si t'as déjà recompilé vlc apres ffmpeg & libquicktime. Ce genre de problème peut arriver typiquement si t'as un vieux ffmpeg dans /usr/local

----------

## aXi

Bon, après plusieurs essais, je suis sur que ce n'est ni un problème de flags, ni un problème de soname ou de link(revdep-rebuild). 

J'ai finalement trouvé que ça marchait avec ffmpeg-0.4.9_20061016...j'ai essayé toutes les version 2007 (même la hard masked 20070525 (à laquelle j'ai du rajouter le patch de la 20070330)), mais aucune ne fonctionne (le symboles inconnus changent parfois en plus! Merci!) .

Pourtant, mon vlc fonctionnait très bien il y a 2 semaines, alors que ça fait plusieurs mois que j'avais les versions 2007**** de ffmpeg. J'en déduis que, pour une raison qui m'échappe, les toutes dernières versions de vlc ne sont plus compatibles avec les dernières version de ffmpeg (changement mineur dans l'ABI ou je sais pas...)

Ce qui m'étonne c'est que les deux personnes que je connais qui utilise gentoo/vlc ont exactement le même problème, alors que personne d'autre ne semble avoir ce problème sur le forum!

Par contre, impossible de charger le module libquicktime-plugin! Ce qui m'étonne ici, c'est que le symbole inconnu vient directement du module lui-même vlc! (vlc ne semble pas utiliser le package libquicktime d'après ldd)...

Je peux pas mettre le sujet comme [Résolu], car rétrograder de version pour que ça marche n'est pas une solution...

en attendant d'avoir mieux...

----------

## Alexis

 *aXi wrote:*   

> 
> 
> Pourtant, mon vlc fonctionnait très bien il y a 2 semaines, alors que ça fait plusieurs mois que j'avais les versions 2007**** de ffmpeg. J'en déduis que, pour une raison qui m'échappe, les toutes dernières versions de vlc ne sont plus compatibles avec les dernières version de ffmpeg (changement mineur dans l'ABI ou je sais pas...)
> 
> (snip)
> ...

 

T'aurais pas des cflags / ldflags un peu violents ?

Tu pourrais poster ton emerge --info stp ? 

Et c'est normal que ldd te trouve rien sur le binaire vlc, il charge ses modules par dlopen  :Wink: 

----------

## aXi

 *Alexis wrote:*   

> 
> 
> T'aurais pas des cflags / ldflags un peu violents ?
> 
> Tu pourrais poster ton emerge --info stp ? 
> ...

 

J'ai des cflags standard il me semble, je suis pas fou au point de mettre du O3  :Wink: 

```

Portage 2.1.2.7 (default-linux/x86/2007.0, gcc-4.1.2, glibc-2.5-r3, 2.6.21-gentoo-r1 i686)

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

System uname: 2.6.21-gentoo-r1 i686 Intel(R) Pentium(R) M processor 1.70GHz

Gentoo Base System release 1.12.9

Timestamp of tree: Sat, 02 Jun 2007 16:00:01 +0000

dev-java/java-config: 1.3.7, 2.0.33-r1

dev-lang/python:     2.4.4-r4

dev-python/pycrypto: 2.0.1-r5

sys-apps/sandbox:    1.2.17

sys-devel/autoconf:  2.13, 2.61

sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.16.1-r3

sys-devel/gcc-config: 1.3.16

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.17-r2

ACCEPT_KEYWORDS="x86"

AUTOCLEAN="yes"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=pentium-m -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/X11/xkb"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c"

CXXFLAGS="-O2 -march=pentium-m -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer sandbox sfperms strict"

GENTOO_MIRRORS="ftp://mirror.switch.ch/mirror/gentoo/"

LANG="fr_CH.UTF-8"

LC_ALL="fr_CH.UTF-8"

LINGUAS="fr en"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/portage/local/layman/sunrise /usr/local/overlay/additional /usr/local/overlay/xeffects/trunk"

SYNC="rsync://rsync.gentoo.org/gentoo-portage"

USE="X a52 aac aalib accessibility acl acpi alsa amuled asf avahi berkdb bitmap-fonts browserplugin bzip2 cairo cdaudio cdinstall cdr cli cracklib crypt cups dbus devhelp divx dri dvd dvdr dvdread dvi eds encode esd ffmpeg firefox flac fortran fping gdbm glitz gnome gpm gstreamer gtk gtkhtml hal howl-compat iconv idn imap ipv6 isdnlog java jpeg kqemu lame lcms libcaca libg++ libnotify lm_sensors mad matroska midi mikmod mmx motif mozbranding mozilla mp3 mp4 mpeg mplayer msn mudflap musepack nautilus ncurses nls nptl nptlonly nsplugin ogg opengl openmp oss pam pam_console pcre pdf perl png pppd python quicktime rar readline realmedia reflection remote samba serpentine session spell spl sse sse2 ssl stats subtitles svg tcltk tcpd theora tiff tk truetype truetype-fonts type1-fonts unicode usb vcd vidix vorbis wifi win32codecs wma wmp wxwindows x264 x86 xine xinerama xml xorg xosd xprint xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="fr en" USERLAND="GNU" VIDEO_CARDS="fglrx ati"

Unset:  CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

 *Alexis wrote:*   

> 
> 
> Et c'est normal que ldd te trouve rien sur le binaire vlc, il charge ses modules par dlopen 
> 
> 

 

J'ai pas fait ldd sur le binaire vlc, mais sur les modules comme tu m'avais dis, et je trouvais :

```

 $ ldd /usr/lib/vlc/codec/libffmpeg_plugin.so 

        linux-gate.so.1 =>  (0xb7f02000)

        libpthread.so.0 => /lib/libpthread.so.0 (0xb7ebe000)

        libpostproc.so.51 => /usr/lib/libpostproc.so.51 (0xb7eb5000)

        libavformat.so.50 => /usr/lib/zattoo/libavformat.so.50 (0xb7e30000)

        libavcodec.so.51 => /usr/lib/zattoo/libavcodec.so.51 (0xb79f0000)

        libz.so.1 => /lib/libz.so.1 (0xb79dd000)

        libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0xb796d000)

        libxvidcore.so.4 => /usr/lib/libxvidcore.so.4 (0xb785a000)

        libx264.so.54 => /usr/lib/libx264.so.54 (0xb77d3000)

        libfaac.so.0 => /usr/lib/libfaac.so.0 (0xb77c3000)

        libfaad.so.0 => /usr/lib/zattoo/libfaad.so.0 (0xb77ae000)

        libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0xb76b1000)

        libavutil.so.49 => /usr/lib/zattoo/libavutil.so.49 (0xb76ac000)

        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0xb7684000)

        libogg.so.0 => /usr/lib/libogg.so.0 (0xb767f000)

        libm.so.6 => /lib/libm.so.6 (0xb765a000)

        libvlc.so.0 => /usr/lib/libvlc.so.0 (0xb75b8000)

        libc.so.6 => /lib/libc.so.6 (0xb748f000)

        /lib/ld-linux.so.2 (0x80000000)

        libdl.so.2 => /lib/libdl.so.2 (0xb748b000)

        libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb73a7000)

        libmp4v2.so.0 => /usr/lib/libmp4v2.so.0 (0xb72f9000)

        libhal.so.1 => /usr/lib/libhal.so.1 (0xb72ed000)

        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb72ba000)

        librt.so.1 => /lib/librt.so.1 (0xb72b1000)

        libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb7278000)

        libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb726d000)

$ ldd /usr/lib/vlc/codec/libquicktime_plugin.so 

        linux-gate.so.1 =>  (0xb7f07000)

        libpthread.so.0 => /lib/libpthread.so.0 (0xb7eb1000)

        libm.so.6 => /lib/libm.so.6 (0xb7e8c000)

        libvlc.so.0 => /usr/lib/libvlc.so.0 (0xb7dea000)

        libc.so.6 => /lib/libc.so.6 (0xb7cc2000)

        /lib/ld-linux.so.2 (0x80000000)

        libhal.so.1 => /usr/lib/libhal.so.1 (0xb7cb5000)

        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb7c83000)

        librt.so.1 => /lib/librt.so.1 (0xb7c7a000)

        libdl.so.2 => /lib/libdl.so.2 (0xb7c76000)

        libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb7c3d000)

        libogg.so.0 => /usr/lib/libogg.so.0 (0xb7c38000)

        libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb7b53000)

        libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb7b48000)

```

et il me semblait ne pas voir de lien avec la librairie libquicktime dans le module libquicktime_plugin.so

Mais je viens de me rendre compte d'un truc bizarre que j'avais pas remarqué avant : les /usr/lib/zattoo/ un peu partout...et en plus il me semble bien que la date d'installation de zattoo correspond plutot bien avec le début de mes déboires avec vlc ...

Je vais voir si ça vient de ça...

----------

## aXi

Le problème venait effectivement de zattoo, je sais pas ce qu'ils ont fait exactement mais ils remplaçait les libraires de ffmpeg par des librairies perso...il suffit de le désinstaller! Merci les gars!

----------

## Alexis

 *aXi wrote:*   

> Le problème venait effectivement de zattoo, je sais pas ce qu'ils ont fait exactement mais ils remplaçait les libraires de ffmpeg par des librairies perso...il suffit de le désinstaller! Merci les gars!

 

bin, s'il inclut les headers du ffmpeg installé par portage qui lui dit "t'as telle ou telle fonction" et qu'il les cherche dans la lib zattoo, il les trouvera pas forcément puisque la version est différente, d'où ton erreur.

Si tu veux mettre un autre ffmpeg que celui de portage, pourquoi pas, mais vire celui de portage alors pour éviter ces problèmes.

D'ailleurs ça m'avait l'air bien le bordel ton truc, libpostproc était trouvé dans /usr/lib et le reste de ffmpeg dans /usr/lib/zattoo

Ha, et skoi zattoo ?  :Smile: 

----------

## aXi

Lol je me suis pas amusé à faire un ebuild à la main pour zattoo, j'ai repris celui de l'overlay sunrise...

Et le plus foireux, c'est qu'il installait même pas un autre ffmpeg en dépendance (pour zattoo donc), non, il installait quelques .so (typiquement ceux qui apparaissent dans ldd). Donc lorsque je voulais installer vlc, j'étais quand même obligé d'installer ffmpeg de portage...mais je comprends toujours pas pk il se linkait sur celui de zattoo...bon je suis pas un expert en link non plus :-p

Et zattoo c'est un programme pour regarder la télé (chaines publics) en streaming!

http://zattoo.com/

Voilà

----------

