mardi 17 mars 2009
Vlc 0.8.6f: Streaming pour du .3gp vers transcodage en h264/mp3
Par david techer, mardi 17 mars 2009 à 10:45 :: Multiméda sous GNU/Linux
Les notes qui suivent sont une évolution de http://www.davidgis.fr/documentation/vlc-0.8.6d-h264-support/html/index.html. Ici c'est vlc-0.8.6f que je teste au lieu de vlc-0.8.6d...
On met à  jour la variable racine des répertoires sources
export SRC=/mnt/vlc-src
Compilation de amrnb/amrwb
cd $SRC/amrnb-7.0.0.2 ./configure --enable-shared=no --enable-static=yes makede même pour amrwb-7.0.0.3
cd $SRC/amrwb-7.0.0.3 ./configure --enable-shared=no --enable-static=yes make
Recompilation de ffmpeg et de VLC
On nettoie les sources de fmpeg et on recompile ffmpeg en ajoutant les options voulues
cd $SRC/ffmpeg ./configure --enable-gpl --enable-pp --disable-shared --enable-static --disable-debug \ --enable-libmp3lame --enable-libfaac --enable-pthreads --enable-libamr-wb --enable-libamr-nb \ --extra-ldflags="-L$SRC/faac/libfaac/.libs -L$SRC/lame/libmp3lame/.libs -L$SRC/amrnb-7.0.0.2/.libs -L$SRC/amrwb-7.0.0.3/.libs" \ --extra-cflags="-I$SRC/faac/include -I$SRC/lame/include -I$SRC/amrnb-7.0.0.2 -I$SRC/amrwb-7.0.0.3/" \ --extra-libs="$SRC/lame/libmp3lame/.libs/libmp3lame.a $SRC/amrnb-7.0.0.2/.libs/libamrnb.a $SRC/amrwb-7.0.0.3/.libs/libamrwb.a"
On recompile liba52 en mode static
cd $SRC/a52 ./configure --enable-shared=no --enable-static=yes make
On met à  jour les variables
export SRC="/mnt/vlc-src" export CFLAGS="-I$SRC/faac/include -I$SRC/lame/include -I$SRC/amrnb-7.0.0.2 -I$SRC/amrwb-7.0.0.3" export CXXFLAGS=$CFLAGS export LDFLAGS="$SRC/faac/libfaac/.libs/libfaac.a $SRC/lame/libmp3lame/.libs/libmp3lame.a \ $SRC/a52/liba52/.libs/liba52.a $SRC/amrnb-7.0.0.2/.libs/libamrnb.a $SRC/amrwb-7.0.0.3/.libs/libamrwb.a"
cd $SRC/vlc-0.8.6f ./configure --prefix=/opt/streaming --enable-release --enable-static --enable-sout \ --enable-live555 --enable-ffmpeg --with-ffmpeg-faac --with-ffmpeg-mp3lame \ --enable-libmpeg2 --enable-x264 --enable-ncurses --enable-dvbpsi --with-included-gettext \ --enable-a52 --disable-x11 --disable-mad --disable-growl --disable-notify --disable-dvdnav \ --disable-gnomevfs --disable-libcdio --disable-libcddb --disable-cdda --disable-vcd --disable-screen \ --disable-ogg --disable-mkv --disable-mod --disable-mpc --disable-quicktime --disable-dts --disable-vorbis\ --disable-speex --disable-png --disable-cmml --disable-xvideo --disable-glx --disable-xinerama\ --disable-opengl --disable-sdl --disable-sdl-image --disable-freetype --disable-fribidi \ --disable-libxml2 --disable-fb --disable-wxwidgets --disable-visual --disable-daap --disable-bonjour\ --disable-gnutls --disable-skins2 --with-live555-tree=$SRC/live --with-ffmpeg-tree=$SRC/ffmpeg \ --with-libmpeg2-tree=$SRC/mpeg2dec --with-x264-tree=$SRC/x264 --with-dvbpsi-tree=$SRC/libdvbpsi \ --with-a52-tree=$SRC/a52
Faire un vi sur vlc-config
A la ligne
x264) cppflags="${cppflags} -I/mnt/vlc-src/x264" ldflags="${ldflags} -lx264 -L/mnt/vlc-src/x264 -lm" ;;
Il faut rajouter $SRC/amrnb-7.0.0.2/.libs/libamrnb.a $SRC/amrwb-7.0.0.3/.libs/libamrwb.a
pour obtenir
x264) cppflags="${cppflags} -I/mnt/vlc-src/x264" ldflags="${ldflags} -lx264 -L/mnt/vlc-src/x264 -lm $SRC/amrnb-7.0.0.2/.libs/libamrnb.a $SRC/amrwb-7.0.0.3/.libs/libamrwb.a" ;;
Et on compile et on installe
make make install
Test sur un fichier 3gp
Pour les tests, on fait
/opt/streaming/bin/vlc [fichier].3gp --sout '#transcode{vcodec=h264,acodec=mp3,vb=256,width=240,height=176,fps=29,deinterlace}:\ standard{mux=asf,dst=:[PORT],access=http}:sout-transcode-soverlay=0' -I dummy