Kompilieren von VLC: cannot find -lavformat_pic

Digital Recording
gedanke
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. Januar 2006, 00:44

Kompilieren von VLC: cannot find -lavformat_pic

Beitrag von gedanke »

Hallo,
ich bekomme vlc-0.8.0 unter Ubuntu 5.10 Breezy nicht richtig installiert.
./configure läuft ohne Fehler durch, aber bei make wird dann mit diesen Meldungen abgebrochen:

Code: Alles auswählen

fi
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
gcc -Wsign-compare -Wall -pipe -o libffmpeg_plugin.so libffmpeg_plugin_a-ffmpeg.o libffmpeg_plugin_a-video.o libffmpeg_plugin_a-audio.o libffmpeg_plugin_a-video_filter.o libffmpeg_plugin_a-chroma.o libffmpeg_plugin_a-encoder.o libffmpeg_plugin_a-postprocess.o libffmpeg_plugin_a-demux.o `top_builddir=../../.. ../../../vlc-config --libs plugin ffmpeg`
[b]/usr/bin/ld: cannot find -lavformat_pic[/b]
collect2: ld gab 1 als Ende-Status zurück
make[6]: *** [libffmpeg_plugin.so] Fehler 1
make[6]: Verlasse Verzeichnis »/home/sebastian/vlc-0.8.0/modules/codec/ffmpeg«
make[5]: *** [all-modules] Fehler 1
make[5]: Verlasse Verzeichnis »/home/sebastian/vlc-0.8.0/modules/codec/ffmpeg«
make[4]: *** [all-recursive] Fehler 1
make[4]: Verlasse Verzeichnis »/home/sebastian/vlc-0.8.0/modules/codec«
make[3]: *** [all] Fehler 2
make[3]: Verlasse Verzeichnis »/home/sebastian/vlc-0.8.0/modules/codec«
make[2]: *** [all-recursive] Fehler 1
make[2]: Verlasse Verzeichnis »/home/sebastian/vlc-0.8.0/modules«
make[1]: *** [all-recursive] Fehler 1
make[1]: Verlasse Verzeichnis »/home/sebastian/vlc-0.8.0«
make: *** [all] Fehler 2

Code: Alles auswählen

/usr/bin/ld: cannot find -lavformat_pic
Hierzu habe ich hier: http://www.linuxforen.de/forums/showthr ... format_pic gelesen, man müsse die ffmpeg development-Pakete installieren.
Diese kann ich jedoch nirgends finden.
libavformat-dev, libpostproc-dev und das normale ffmpeg-Paket sind bereits installiert.
Vielleicht weiß jemand Rat?
gedanke
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. Januar 2006, 00:44

Beitrag von gedanke »

Oder gibt es vielleicht ein Alternativprogramm zu VLC?
Ich brauche einfach nur eine Lösung, DivX-Dateien von einem Linuxserver auf der Dbox sehen zu können.
Houdini
Developer
Beiträge: 2183
Registriert: Mittwoch 10. Dezember 2003, 07:59

Beitrag von Houdini »

warum nimmst du nicht einen fertigen vlc für linux?
gedanke
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. Januar 2006, 00:44

Beitrag von gedanke »

hab ich auch schon probiert, aber was das für Abhängigkeitsprobleme mit sich bringt....! Bekomme es mit Synaptic & Konsorten einfach nicht installiert.

Aber:
Hab's jetzt kompiliert bekommen!
So hat's funktioniert: ffmpeg via Synaptic entfernt (relativ aktuelle Ubuntu-Version) und den Quellcode eines älteren ffmpeg heruntergeladen (ffmpeg-20051126 - hier: http://www.videolan.org/mirror.php?mirr ... 26.tar.bz2).
Konfiguration & Installation des Sourcecodes hat sofort funktioniert.
Anschließend lief auch das Kompilieren von vlc-0.8.0 problemlos durch.

Jetzt hab ich nur folgendes Problem:
die GUI von VLC macht ein paar Probleme; das Programm wird nur halb angezeigt und Menüs überhaupt nicht, beim Anklicken irgendwo innerhalb des Programms bekomme ich

Code: Alles auswählen

[00000218] main dialogs provider error: no dialogs provider module matched "any"
[00000214] skins2 interface error: No suitable dialogs provider found
Habe jetzt noch irgendwo gelesen, man solle am besten die Version 0.7.2 nehmen, die sei am stabilsten und obiges Problem wäre wohl bekannt unter V0.8.0.

Problem:
edit:
libavcodec.a wird nicht gefunden:

Code: Alles auswählen

./configure --with-ffmpeg-tree=/usr/include/ffmpeg
configure: error: cannot find /usr/include/ffmpeg/libavcodec/libavcodec.a, make sure you compiled libavcodec in /usr/include/ffmpeg
Ich habe aber ffmpeg mit folgenden Optionen installiert:

Code: Alles auswählen

./configure --enable-shared-pp --enable-pp --enable-gpl --libdir=/home/sebastian/ffmpeg-20051126/libavcodec
aber die Datei libavcodec.a wurde nicht installiert, nur die Datei avcodec.h
gedanke
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. Januar 2006, 00:44

Beitrag von gedanke »

also falls noch jemand Probleme mit der Installation unter Ubuntu hat - so hat's bei mir funktioniert (nicht immer die neuesten Versionen, aber bin froh dass ich's jetzt überhaupt geschafft habe):

ffmpeg-20040520 von videolan.org (http://downloads.videolan.org/pub/video ... 20.tar.bz2)

libdvdcss-1.2.8 von videolan.org
(http://downloads.videolan.org/pub/video ... 2.8.tar.gz)

vlc-0.7.2 von videolan.org
(http://downloads.videolan.org/pub/video ... 7.2.tar.gz)

Alle drei runterladen und entpacken (in meinem Fall in mein home-Verzeichnis: /home/sebastian/)

Bei mir hat alles nur mit GCC 3.3 funktioniert; vorher lief bei mir GCC 4.0.
Installation GCC 3.3:

Code: Alles auswählen

sudo apt-get install gcc-3.3 cpp-3.3 g++-3.3
Die vorherige GCC 4.0 muss nicht entfernt werden (ging bei mir überhaupt nicht, da Adept dann fast sämtliche KDE-Pakete gelöscht hätte), also einfach beide installiert lassen, nur die Verknüpfung auf GCC 3.3 ändern:

Code: Alles auswählen

cd /usr/bin
sudo rm gcc g++ cpp 
sudo ln -s gcc-3.3 gcc
sudo ln -s g++-3.3 g++
sudo ln -s cpp-3.3 cpp
1. Im ffmpeg-20040520-Verzeichnis

Code: Alles auswählen

./configure --enable-shared --enable-pp --enable-gpl --libdir=/home/sebastian/ffmpeg-20040520/libavcodec
sudo make
sudo make install
2. Die libdvdcss ließ sich ohne irgendwelche Optionen konfigurieren und kompilieren - im libdvdcss-1.2.8-Verzeichnis:

Code: Alles auswählen

./configure
sudo make
sudo make install
3. VLC-Installation im vlc-0.7.2-Verzeichnis:

Code: Alles auswählen

./configure --disable-wxwindows --disable-skins2 --with-ffmpeg-tree=/home/sebastian/ffmpeg-20040520
sudo make
sudo make install
Eventuell wieder die Verknüpfung wieder auf GCC 4.0 ändern:

Code: Alles auswählen

cd /usr/bin
sudo rm gcc g++ cpp 
sudo ln -s gcc-4.0 gcc
sudo ln -s g++-4.0 g++
sudo ln -s cpp-4.0 cpp 
Warum das Ganze (zumindest bei mir) nicht mit der GCC 4.0 und mit vlc-0.8.0 oder ffmpeg-0.4.9-pre1 funktioniert, weiß ich nicht, aber alles was ich brauche ist auch in den beschriebenen Versionen enthalten; vielleicht hilft es ja jemand anderem weiter.

Folgende Fehler erhalte ich bei "sudo make" unter Verwendung von vlc-0.8.1:

Code: Alles auswählen

video.c: In Funktion »ffmpeg_NewPictBuf«:
video.c:183: error: structure has no member named `frame_rate'
video.c:183: error: structure has no member named `frame_rate_base'
video.c:185: error: structure has no member named `frame_rate'
video.c:186: error: structure has no member named `frame_rate_base'
video.c: In Funktion »DecodeVideo__0_8_1«:
video.c:634: error: structure has no member named `frame_rate'
video.c:638: error: structure has no member named `frame_rate_base'
video.c:639: error: structure has no member named `frame_rate'
make[6]: *** [libffmpeg_plugin_a-video.o] Fehler 1
Würde mich interessieren, was das bedeutet oder was hier falsch läuft. Jemand eine Idee?
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

gedanke hat geschrieben: Folgende Fehler erhalte ich bei "sudo make" unter Verwendung von vlc-0.8.1:

Code: Alles auswählen

video.c: In Funktion »ffmpeg_NewPictBuf«:
video.c:183: error: structure has no member named `frame_rate'
video.c:183: error: structure has no member named `frame_rate_base'
video.c:185: error: structure has no member named `frame_rate'
video.c:186: error: structure has no member named `frame_rate_base'
video.c: In Funktion »DecodeVideo__0_8_1«:
video.c:634: error: structure has no member named `frame_rate'
video.c:638: error: structure has no member named `frame_rate_base'
video.c:639: error: structure has no member named `frame_rate'
make[6]: *** [libffmpeg_plugin_a-video.o] Fehler 1
Würde mich interessieren, was das bedeutet oder was hier falsch läuft. Jemand eine Idee?
Kenne den vlc-Quellcode zwar nicht, aber sieht so aus als würde die Version der ffmpeg-Header in deinem System nicht mit dem zusammenpassen was vlc erwartet.
gedanke
Interessierter
Interessierter
Beiträge: 31
Registriert: Donnerstag 12. Januar 2006, 00:44

Beitrag von gedanke »

Aber warum unterscheiden sich die Erwartungen von VLC so sehr zwischen den zwei Versionen?
Npq
Senior Member
Beiträge: 1339
Registriert: Donnerstag 24. April 2003, 12:12

Beitrag von Npq »

So, mal kurz nachgeschaut, es kann weder mit der 0.8.0 noch mit der 0.8.1 klappen. Einfache Begründung: zu alt.

Die Felder, die da fehlen wurden am 30.4.2005 aus der ffmpeg-Headerdatei herausgenommen bzw. umbenannt und die Version 0.8.1 stammt noch aus dem Jahr 2004.

Die 0.8.2 sollte hingegen damit bauen. Dort ist an der entsprechenden Stelle ein #ifdef eingebaut, so daß auch der alte Header noch funktioniert.

Warum die 0.8.0 bei dir trotzdem baut entzieht sich meiner Kenntnis, evtl. ist es eine speziell gepatchte Version?