Pagina 1 di 2

Compilazione vlc

Inviato: gio 21 dic 2006, 3:07
da Dani

Codice: Seleziona tutto

gcc -Wsign-compare -Wall -march=prescott -O3 -pipe -fomit-frame-pointer -pipe -o libffmpeg_plugin.so -g -shared -fpic -fPIC -u vlc_entry__0_8_6  libffmpeg_plugin.a -L/usr/lib -lpthread -lpostproc -lavformat -lavcodec -lz -ldts -lgsm /usr/lib/libmp3lame.so -lxvidcore -lx264 /usr/lib/libdc1394_control.so /usr/lib/libfaac.so /usr/lib/libfaad.so /usr/lib/libraw1394.so /usr/lib/libvorbisenc.so -lavutil /usr/lib/libvorbis.so /usr/lib/libogg.so -lm
/usr/lib/gcc/i486-slackware-linux/3.4.6/../../../../i486-slackware-linux/bin/ld: cannot find -ldts
collect2: ld returned 1 exit status
make[6]: *** [libffmpeg_plugin.so] Error 1
make[6]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec/ffmpeg'
make[5]: *** [all-modules] Error 1
make[5]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec/ffmpeg'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6'
make: *** [all] Error 2
dani[vlc-0.8.6]$     
Che faccio? :(

Inviato: gio 21 dic 2006, 8:21
da albatros
Io mi muoverei così, pur non avendo mai installato vlc...
Dal messaggio direi che ti manca la libreria dts...
Se cerchi libdts con google trovi subito:
http://developers.videolan.org/libdca.html
Dando una rapida occhiata credo sia la libreria che ti manca, dato che vedo viene usata anche da vlc...

;)

Inviato: gio 21 dic 2006, 8:27
da gohanz

Inviato: gio 21 dic 2006, 17:19
da Dani
ehm, ora dà un altro errore:

Codice: Seleziona tutto

opengl.c:102:22: GL/glu.h: No such file or directory
opengl.c: In function `Init':
opengl.c:514: warning: implicit declaration of function `gluLookAt'
make[4]: *** [libopengl_plugin_a-opengl.o] Error 1
make[4]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/video_output'
make[3]: *** [all-modules] Error 1
make[3]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/video_output'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6'
make: *** [all] Error 2


Inviato: gio 21 dic 2006, 17:45
da gohanz
Devi installare le librerie Mesa

Inviato: ven 22 dic 2006, 20:58
da Dani
Ok, sono riuscito a compilarlo ma non riesco a riprodurre nessun video, o meglio riesco a riprodurre solo l'audio.

Codice: Seleziona tutto

dani[~]$ vlc
VLC media player 0.8.6 Janus
[00000284] main decoder error: no suitable decoder module for fourcc `XVID'.
VLC probably does not support this sound or video format.

Inviato: ven 22 dic 2006, 21:06
da gohanz
Dai questo comando da shell

Codice: Seleziona tutto

vlc -v --reset-config --reset-plugins-cache -l | grep wx
Inoltre ricompila FFmpeg eliminando dal configure

--enable-swscaler
--enable-x264
--enable-dc1394

Inviato: ven 22 dic 2006, 21:47
da Dani
gohanz ha scritto:Dai questo comando da shell

Codice: Seleziona tutto

vlc -v --reset-config --reset-plugins-cache -l | grep wx
Fatto, dice:

Codice: Seleziona tutto


dani[~]$ vlc -v --reset-config --reset-plugins-cache -l | grep wx
VLC media player 0.8.6 Janus
[00000001] main private warning: cannot load module `/usr/lib/vlc/codec/libffmpeg_plugin.so' (libpostproc.so.51: cannot open shared object file: No such file or directory)
[00000001] main private warning: cannot load module `/usr/lib/vlc/stream_out/libstream_out_switcher_plugin.so' (libavformat.so.51: cannot open shared object file: No such file or directory)
  wxwidgets             wxWidgets interface module
  wxwidgets             wxWidgets dialogs provider
Inoltre ricompila FFmpeg eliminando dal configure

--enable-swscaler
--enable-x264
--enable-dc1394
Ho scaricato questo, l'ho compilato così:

Codice: Seleziona tutto

dani[~]$ CHOST="i686-pc-linux-gnu" CFLAGS="-march=prescott -O3 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" ./ffmpeg-checkout-2006-12-22/configure --prefix=/usr --enable-vorbis --enable-faad --enable-faac --enable-libgsm --enable-xvid  --enable-libogg --enable-gpl
ma una volta installato, avvio vlc, apro il video e...

Codice: Seleziona tutto

VLC media player 0.8.6 Janus
[00000280] avi private warning: unknown chunk (not loaded)
[00000283] main decoder error: no suitable decoder module for fourcc `XVID'.
VLC probably does not support this sound or video format.
:(

Inviato: sab 23 dic 2006, 8:32
da gohanz
Togli anche --enable-libgsm

ricompila FFmpeg e poi recompila VLC con il nuovo FFmpeg, poi vedi che funziona tutto.
Il problema è dovuto al fatto che VLC non è compatabile con tutte la API offerte da FFmpeg.

Se vuoi un consiglio, tra l'altro sto preparando un nuovo pacchetto con queste caratterisiche, compila staticamente FFmpeg all'interno di VLC.
Basta passare al configure di VLC

--with-ffmpeg-tree=/tmp/ffmpeg \

All'interno di /tmp/ffmpeg fai la compilazione dello stesso FFmpeg senza make install.

In questo modo VLC avrà il supporto FFmpeg builtin e non andrà in conflitto, con versioni shared dello stesso

Inviato: mer 27 dic 2006, 1:47
da Dani
Ho ricompilato ffmpeg:

Codice: Seleziona tutto

CHOST="i686-pc-linux-gnu" CFLAGS="-march=prescott -O3 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" ./ffmpeg-checkout-2006-12-22/configure --enable-vorbis --enable-faad --enable-faac --enable-xvid  --enable-libogg --enable-gpl --enable-pp
Ho dovuto aggiungere --enable-pp perchè si interrompeva la compilazione di vlc dato che mancava questo supporto, e poi ho ricompilato vlc con -with-ffmpeg-tree come mi hai suggerito.
Durante la compilazione di vlc, pero':

Codice: Seleziona tutto

Making all in ffmpeg
make[5]: Entering directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec/ffmpeg'
make[6]: Entering directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec/ffmpeg'
if gcc -DHAVE_CONFIG_H -I. -I. -I../../..   -DSYS_LINUX -I../../../include `top_builddir="../../.." ../../../vlc-config --cflags builtin pic ffmpeg` -Wsign-compare -Wall -march=prescott -O3 -pipe -fomit-frame-pointer -pipe -MT libffmpeg_a-ffmpeg.o -MD -MP -MF ".deps/libffmpeg_a-ffmpeg.Tpo" \
          -c -o libffmpeg_a-ffmpeg.o `test -f 'ffmpeg.c' || echo './'`ffmpeg.c; \
        then mv -f ".deps/libffmpeg_a-ffmpeg.Tpo" ".deps/libffmpeg_a-ffmpeg.Po"; \
        else rm -f ".deps/libffmpeg_a-ffmpeg.Tpo"; exit 1; \
        fi
ffmpeg.c:36:24: avcodec.h: No such file or directory
ffmpeg.c:40:5: #error You must have a libavcodec >= 4680 (get CVS)
In file included from ffmpeg.c:43:
ffmpeg.h:44: error: syntax error before "AVCodecContext"
ffmpeg.h:50: error: syntax error before "AVCodecContext"
ffmpeg.h:85: error: syntax error before "AVFrame"
ffmpeg.c:63: error: syntax error before "AVCodecContext"
ffmpeg.c:63: warning: no semicolon at end of struct or union
ffmpeg.c:64: warning: type defaults to `int' in declaration of `p_codec'
ffmpeg.c:64: warning: data definition has no type or storage class
ffmpeg.c:65: error: syntax error before '}' token
ffmpeg.c: In function `OpenDecoder':
ffmpeg.c:231: error: `AVCodecContext' undeclared (first use in this function)
ffmpeg.c:231: error: (Each undeclared identifier is reported only once
ffmpeg.c:231: error: for each function it appears in.)
ffmpeg.c:231: error: `p_context' undeclared (first use in this function)
ffmpeg.c:232: error: `AVCodec' undeclared (first use in this function)
ffmpeg.c:242: error: `CODEC_ID_AAC' undeclared (first use in this function)
ffmpeg.c:253: warning: implicit declaration of function `avcodec_find_decoder'
ffmpeg.c:253: warning: assignment makes pointer from integer without a cast
ffmpeg.c:261: warning: implicit declaration of function `avcodec_alloc_context'
ffmpeg.c:271: error: `FF_MM_MMX' undeclared (first use in this function)
ffmpeg.c:275: error: `FF_MM_MMXEXT' undeclared (first use in this function)
ffmpeg.c:279: error: `FF_MM_3DNOW' undeclared (first use in this function)
ffmpeg.c:283: error: `FF_MM_SSE' undeclared (first use in this function)
ffmpeg.c:287: error: `FF_MM_SSE2' undeclared (first use in this function)
ffmpeg.c:307: error: dereferencing pointer to incomplete type
ffmpeg.c: In function `CloseDecoder':
ffmpeg.c:323: error: dereferencing pointer to incomplete type
ffmpeg.c:333: error: dereferencing pointer to incomplete type
ffmpeg.c:335: error: dereferencing pointer to incomplete type
ffmpeg.c:336: error: dereferencing pointer to incomplete type
ffmpeg.c:337: error: dereferencing pointer to incomplete type
ffmpeg.c:339: warning: implicit declaration of function `avcodec_close'
ffmpeg.c:339: error: dereferencing pointer to incomplete type
ffmpeg.c:341: error: dereferencing pointer to incomplete type
ffmpeg.c:342: warning: implicit declaration of function `av_free'
ffmpeg.c:342: error: dereferencing pointer to incomplete type


[cut]

ffmpeg.c:1137: error: `CODEC_ID_PCM_U32LE' undeclared here (not in a function)
ffmpeg.c:1137: error: initializer element is not constant
ffmpeg.c:1137: error: (near initialization for `codecs_table[134].i_codec')
ffmpeg.c:1138: error: initializer element is not constant
ffmpeg.c:1138: error: (near initialization for `codecs_table[134]')
ffmpeg.c:1139: error: `CODEC_ID_PCM_U32BE' undeclared here (not in a function)
ffmpeg.c:1139: error: initializer element is not constant
ffmpeg.c:1139: error: (near initialization for `codecs_table[135].i_codec')
ffmpeg.c:1140: error: initializer element is not constant
ffmpeg.c:1140: error: (near initialization for `codecs_table[135]')
ffmpeg.c:1141: error: `CODEC_ID_PCM_ALAW' undeclared here (not in a function)
ffmpeg.c:1141: error: initializer element is not constant
ffmpeg.c:1141: error: (near initialization for `codecs_table[136].i_codec')
ffmpeg.c:1142: error: initializer element is not constant
ffmpeg.c:1142: error: (near initialization for `codecs_table[136]')
ffmpeg.c:1143: error: `CODEC_ID_PCM_MULAW' undeclared here (not in a function)
ffmpeg.c:1143: error: initializer element is not constant
ffmpeg.c:1143: error: (near initialization for `codecs_table[137].i_codec')
ffmpeg.c:1144: error: initializer element is not constant
ffmpeg.c:1144: error: (near initialization for `codecs_table[137]')
ffmpeg.c:1146: error: initializer element is not constant
ffmpeg.c:1146: error: (near initialization for `codecs_table[138]')
make[6]: *** [libffmpeg_a-ffmpeg.o] Error 1
make[6]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec/ffmpeg'
make[5]: *** [all-modules] Error 1
make[5]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec/ffmpeg'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules/codec'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dani/archivio/multimedia/vlc-0.8.6'
make: *** [all] Error 2


Ho tagliato una parte perchè sono oltre 1000 righe di errori :shock:

Inviato: mer 27 dic 2006, 8:19
da gohanz
A -with-ffmpeg-tree devi aggiungere il percorso dove si trova FFmpeg compilato. Quindi -with-ffmpeg-tree=/directory compilazione FFmpeg.
L'errore è dovuto al fatto che non trova la directory di compilazione di FFmpeg.
Quindi hai sbagliato la riga di configurazione -with-ffmpeg-tree=/direcory

Inviato: gio 28 dic 2006, 16:07
da Dani
Ehm...E' quello che ho fatto :!:

Inviato: gio 28 dic 2006, 19:07
da gohanz
Guarda l'errore è lo dice

Codice: Seleziona tutto

avcodec.h: No such file or directory
Come si chiama la directory di compilazione di FFmpeg, dove hai dato il make! Sei sicuro che la compilazione di FFmpeg sia andata a buon fine! Ricorda che non serve il make install. Poi che opzione hai passato al configure di VLC per indicare la directory di compilazione FFmpeg?

Nel mio SlackBuild ad esempio

ho

--with-ffmpeg-tree=/tmp/tgz/ffmpeg \

Inviato: ven 29 dic 2006, 2:22
da Dani
Ho fatto così:

Ho creato in ~/archivio/lib/ la directory ffmpeg dentro la quale ho estratto le ffmpeg.

Poi dalla directory ~/archivio/lib/ffmpeg:

Codice: Seleziona tutto

dani[ffmpeg]$ CHOST="i686-pc-linux-gnu" CFLAGS="-march=prescott -O3 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" ./ffmpeg-checkout-2006-12-22/configure  --enable-vorbis --enable-faad --enable-faac --enable-xvid  --enable-libogg --enable-gpl --enable-pp
Quindi sono entrato nella directory di vlc dalla quale ho dato:

Codice: Seleziona tutto

dani[vlc-0.8.6]$ CHOST="i686-pc-linux-gnu" CFLAGS="-march=prescott -O3 -pipe -fomit-frame-pointer" CXXFLAGS="${CFLAGS}" ./configure --prefix=/usr --sysconfdir=/etc --enable-debug --enable-release --enable-live555 --enable-faad --enable-twolame --enable-flac --enable-theora --enable-snapshot --enable-svgalib --enable-arts --enable-ncurses --enable-wxwindows --with-ffmpeg-tree=/home/dani/archivio/lib/ffmpeg/
Ma durante il make mi dà questo errore !

Inviato: ven 29 dic 2006, 3:04
da Dani
Dani ha scritto: Ho creato in ~/archivio/lib/ la directory ffmpeg dentro la quale ho estratto le ffmpeg.
Ecco dove sbagliavo ! Immagine

Mi rimane un ultimo problema: non riesco a vedere i wmv... Immagine