lundi 26 septembre 2011
Projet GitHub pour compilation full static de FFmpeg, basé sur cmake
Par david techer, lundi 26 septembre 2011 à 00:55 :: Multiméda sous GNU/Linux

Dans le passé, je m'étais déjà  livré à  ce genre de compilation mais là  c'est vraiment intéressant car gérer par cmake.
Note à  l'attention des utilisateurs de Ubuntu LucidPour ceux qui sont sous Ubuntu Lucid (>=10.04.3), la version decmake
est la 2.8.0. Elle n'est malheureusement pas suffisante pour l'utilisation. J'ai personnellement récupérer la toute dernière version de cmake
(en date du 2011/09/25) c'est la 2.8.5. Elle se compile sans souci. J'ai donc pu par la suite, la tester sans souci.
Pour la récupération du projet
git clone https://github.com/pyke369/sffmpeg.git cd sffmpegAvant de continuer et de lancer la compilation, jetez un coup d'oeil au fichier
CMakeLists.txt
Voici un extrait de son contenu
PROJECT(ffmpeg) CMAKE_MINIMUM_REQUIRED(VERSION 2.8) INCLUDE(ExternalProject) INCLUDE_DIRECTORIES(BEFORE ${CMAKE_BINARY_DIR}/include) LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/lib) EXTERNALPROJECT_ADD( z URL http://zlib.net/zlib-1.2.5.tar.gz PATCH_COMMAND patch Makefile.in ${CMAKE_SOURCE_DIR}/vendor/zlib-1.2.5-static.patch CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --static BUILD_IN_SOURCE 1 ) EXTERNALPROJECT_ADD( openssl URL http://www.openssl.org/source/openssl-1.0.0e.tar.gz CONFIGURE_COMMAND ./config no-shared no-idea no-mdc2 no-rc5 --prefix=${CMAKE_BINARY_DIR} BUILD_COMMAND make depend && make BUILD_IN_SOURCE 1 ) ....Moi ça m'a rappeler la façon de compiler à  la mode Gentoo

Remarque: Le téléchargement de source sur des dépots type SVN ou GIT fonctionne sans souci:
EXTERNALPROJECT_ADD( xavs SVN_REPOSITORY https://xavs.svn.sourceforge.net/svnroot/xavs/trunk CONFIGURE_COMMAND ./configure --prefix=${CMAKE_BINARY_DIR} --enable-shared=no --enable-static=yes BUILD_IN_SOURCE 1 )
Par défaut, l'auteur propose
- x264
- rtmp
- theorea
- speex,
- aac
- dirac 0.4.10 / schroedinger 1.0.9
- xavs
- etc...
Non rien à  dire que d'avoir ffmpeg compilé en full static quand on veut procéder à  une conversion vidéo, sans avoir à  se trimbaler toutes les dépendances