Il y a quelques temps, j’ai cherché à installer PHP-FFMPEG au coté d’une version personnalisée de PHP, mais ce fut un échec. L’idée était de pouvoir utiliser une version PHP beaucoup plus récente que celle fourni par défaut dans la distribution (Ubuntu 8.04 et PHP 5.2.4 à l’époque).
Aujourd’hui, sous Ubuntu 12.04, j’ai à ma disposition PHP 5.3.10. Or la dernière version stable à ce jour est la 5.5.7. L’objectif n’est pas de courir après la dernière version sortie, mais d’utiliser une version pas trop vieille, et surtout encore maintenue. Il y a encore pas mal de version 5.2 qui traîne alors qu’elle n’est plus maintenue.
Installer PHP n’est pas vraiment compliqué. C’est surtout l’extension PHP-FFMPEG qui est capricieuse. La version du dépôt n’est pas utilisable directement, elle doit avoir été compilée pour la version de PHP utilisée. Si vous essayez de l’utiliser, vous aurez droit à un message d’erreur ressemblant à ceci:
PHP Warning: PHP Startup: ffmpeg: Unable to initialize module Module compiled with module API=20090626 PHP compiled with module API=20121212 These options need to match
La solution est donc de compiler l’extension manuellement, mais encore une fois, la tâche n’est pas aussi simple. En théorie, il suffirait de faire:
apt-get build-dep php5-ffmpeg cd php-ffmpeg phpize ./configure make make install
La commande configure échoue avec cette erreur:
configure: error: ffmpeg shared libraries not found. Make sure ffmpeg is compiled as shared libraries using the --enable-shared option
Il faut une version de FFMPEG compilée avec l’option –enable-shared. Ce qui n’est pas le cas dans Ubuntu. D’ailleurs sous Ubuntu, c’est un fork de FFMPEG qui est installé (avconv).
Pour entrer dans le vif du sujet, nous allons installer FFMPEG, PHP 5.5.6 et PHP-FFMPEG. Dans mon cas, j’ai besoin de PHP en CLI et FPM (pour le web). Je vous présente ma façon de faire, à vous d’adapter à vos besoins.
Bien qu’ici Ubuntu 12.04 soit utilisée, la procédure devrait être la même sous les systèmes basés sur Debian.
Sommaire
Nous allons procéder en 4 étapes.
- Préparation du système
- Installation de FFMPEG et des codecs supplémentaires
- Installation de PHP
- Installation de PHP-FFMPEG
Préparation du système
Nous allons installer le tout dans /opt. Le but étant de réellement séparer ces programmes de ceux du système de base. ffmpeg sera dans /opt/build-ffmpeg et PHP dans /opt/build-php/VERSION, où VERSION sera la version de PHP installée. Ce qui laisse la possibilité de faire cohabiter plusieurs versions (ex: 5.4, 5.5, et les futures).
Nous plaçons les sources des logiciels dans /opt/sources. Nous ferons tout cela sous l’utilisateur root. Sous Ubuntu, tapez simplement :
sudo su -
Après avoir entrez votre mot de passe, vous serez en root.
Maintenant, créons les répertoires cités ci-dessus:
mkdir /opt/build-ffmpeg mkdir /opt/build-php mkdir /opt/sources
Pour compiler les différents logiciels, il faut installer certaines dépendances.
apt-get update && apt-get dist-upgrade apt-get install build-essential git autoconf libtool apt-get build-dep php5 apt-get install libxml2-dev libfcgi-dev libfcgi0ldbl libjpeg62-dbg libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev
Dans l’ordre:
- on met à jour le système.
- build-essential/autoconf/libtool permet d’avoir tout le nécessaire pour compiler et installer les logiciels. Git pour télécharger certaines sources de logiciel.
- ligne 3 et 4 pour permettre de compiler tranquillement PHP.
Installation de FFMPEG
Commençons par installer les codecs nécessaires. Cette partie est optionnelle mais nécessaire pour prendre en charge certains formats (ex: vidéo HD via x264). Vous pouvez choisir les codecs que vous souhaitez utiliser.
Yasm
Yasm n’est pas un codec, mais est nécessaire pour en installer certains (notamment x264). La version des dépôts Ubuntu 12.04, la 1.1.0, n’est pas assez récente pour x264.
cd /opt/sources wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz tar xzf yasm-1.2.0.tar.gz cd yasm-1.2.0 ./configure --prefix=/opt/build-ffmpeg make make install make clean make distclean
On indique bien « –prefix=/opt/build-ffmpeg » pour spécifier la destination de l’installation.
Vous remarquerez un dossier « /opt/build-ffmpeg/bin » où les logiciels sont placés pour être utilisés. Nous allons donc indiquer ce répertoire dans $PATH afin que x264 (par exemple) puisse trouver la nouvelle version de Yasm.
export PATH=/opt/build-ffmpeg/bin:$PATH
Ceci n’est nécessaire que durant l’installation des codecs et de FFMPEG. D’ailleurs, cette commande est temporaire. Si vous vous déconnectez $PATH sera réinitialisée à son état d’origine.
Codec FAAC
cd /opt/sources wget http://downloads.sourceforge.net/faac/faac-1.28.tar.gz tar xzf faac-1.28.tar.gz cd faac-1.28 ./configure --prefix=/opt/build-ffmpeg
Ici, il y a une petite subtilité. Si vous lancez « make » tout de suite, vous aller avoir cette erreur:
erreur: ambiguates old declaration ‘const char* strcasestr(const char*, const char*)’
Il faut ouvrir le fichier common/mp4v2/mpeg4ip.h avec votre éditeur de texte préféré, et commenter la ligne 126 comme ceci:
//char *strcasestr(const char *haystack, const char *needle);
On peut reprendre le cours de l’installation:
make make install make clean make distclean
Codec Lame MP3
cd /opt/sources wget --output-document=lame-3.99.5.tar.gz "http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Flame%2Ffiles%2Flame%2F3.99%2F&ts=1386242655&use_mirror=switch" tar xzf lame-3.99.5.tar.gz cd lame-3.99.5 ./configure --prefix=/opt/build-ffmpeg make make install make clean make distclean
Codec AAC
cd /opt/sources git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac cd fdk-aac autoreconf -fiv ./configure --prefix=/opt/build-ffmpeg --enable-shared make make install make clean make distclean
Codec x264
cd /opt/sources git clone --depth 1 git://git.videolan.org/x264.git cd x264 ./configure --prefix=/opt/build-ffmpeg --enable-static --enable-shared make make install make clean make distclean
Codec VP8/VP9
cd /opt/sources git clone --depth 1 http://git.chromium.org/webm/libvpx.git cd libvpx ./configure --prefix=/opt/build-ffmpeg --disable-examples --enable-shared make make install make clean
Pfiou, c’est fini pour les codecs. Tout doit être bien installé dans « /opt/build-ffmpeg »
Maintenant, passons à l’installation de FFMPEG.
FFMPEG
cd /opt/sources git clone --depth 1 git://source.ffmpeg.org/ffmpeg.git ffmpeg cd ffmpeg ./configure --prefix=/opt/build-ffmpeg \ --enable-shared \ --enable-gpl \ --enable-nonfree \ --enable-pthreads \ --enable-libx264 \ --enable-libfaac \ --enable-libmp3lame \ --enable-libvpx \ --extra-cflags="-I/opt/build-ffmpeg/include" \ --extra-ldflags="-L/opt/build-ffmpeg/lib" \ --extra-libs="-ldl"
Quelques explications.
La commande « configure » indique plusieurs choses. Tout d’abord, les codecs que nous souhaitons activer (ex: –enable-libx264 pour x264). Si vous avez fait le choix de ne pas installer certains codecs, alors supprimez la ligne –enable-xxxx correspondante.
Les options « –extra-cflags » et « –extra-ldflags » sont importantes. Elles indiquent où doit être cherchés les library. Sans ces options, PHP-FFMPEG ne parvient pas à utiliser correctement les libs.
L’option « –enable-shared » est aussi importante, c’est l’objet de ce tuto d’ailleurs. Elle permettra de compiler PHP-FFMPEG.
make make install make clean make distclean
À ce stade, FFMPEG peut-être utilisé en tapant /opt/build-ffmpeg/bin/ffmpeg. Mais vous aurez l’erreur suivante :
ffmpeg: error while loading shared libraries: libavdevice.so.55: cannot open shared object file: No such file or directory
FFMPEG ne cherche pas /opt/buil-ffmpeg/lib pour charger ses libs, d’où l’erreur. Si vous n’avez pas besoin d’utiliser FFMPEG en ligne de commande, alors pas d’inquiétude. PHP-FFMPEG fonctionnera sans problème.
Si toutefois vous souhaitez utiliser FFMPEG en ligne de commande, exécutez les commandes suivantes:
echo "/opt/build-ffmpeg/lib" > /etc/ld.so.conf.d/ffmpeg.conf ldconfig
Vous pouvez tester à nouveau la commande.
C’est tout pour l’installation de FFMPEG.
Installation de PHP
Le plus dur est fait. Nous allons installer PHP 5.5.7.
Sous Ubuntu 12.04, il est nécessaire de créer un lien symbolique pour utiliser correctement les fonctions liées à l’IMAP :
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
Pour information, l’erreur lors de la commande configure sera:
configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
Maintenant, nous allons utiliser une variable pour définir la version de PHP à installer.
Exécutez la commande suivante:
export PHP_INSTALL_VERSION=5.5.7
La dernière version stable a ce jour est la 5.5.7. Vous pouvez grâce à cette variable choisir la version à installer. Ainsi, il n’est pas nécessaire de modifier chaque commande, ce qui facilite la création de script ou les copier/coller 🙂
cd /opt/sources wget "http://de.php.net/get/php-$PHP_INSTALL_VERSION.tar.bz2/from/this/mirror" -O "php-$PHP_INSTALL_VERSION.tar.bz2" tar jxf "php-$PHP_INSTALL_VERSION.tar.bz2" cd "php-$PHP_INSTALL_VERSION" ./configure \ --prefix="/opt/build-php/$PHP_INSTALL_VERSION" \ --with-config-file-path=/opt/build-php/etc \ --with-config-file-scan-dir=/opt/build-php/etc/conf.d \ --with-pdo-pgsql \ --with-zlib-dir \ --with-freetype-dir \ --enable-mbstring \ --with-libxml-dir=/usr \ --enable-soap \ --enable-calendar \ --with-curl \ --with-mcrypt \ --with-zlib \ --with-gd \ --with-pgsql \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-mysql \ --with-pdo-mysql \ --with-mysqli \ --with-jpeg-dir=/usr \ --with-png-dir=/usr \ --enable-gd-native-ttf \ --with-openssl \ --with-libdir=/lib/x86_64-linux-gnu \ --enable-ftp \ --with-imap \ --with-imap-ssl \ --with-kerberos \ --with-gettext \ --with-fpm-user=www-data \ --with-fpm-group=www-data \ --enable-fpm \ --disable-cgi
Précision :
- dans mon cas, j’utilise PHP en Cli et PHP-FPM pour mes sites web (–with-fpm-user=www-data / –with-fpm-group=www-data / –enable-fpm).
- je désactive le mode CGI (–disable-cgi) dont je n’ai pas l’utilité.
- j’ai choisi de créer un dossier commun pour la configuration des différentes versions PHP installées :
- –with-config-file-path précise où se trouve mon fichier php.ini.
- –with-config-file-scan-dir indique où trouver d’autre fichier de configuration (ex: ffmpeg.ini).
On termine l’installation :
make make install make clean make distclean mkdir /opt/build-php/etc/ mkdir /opt/build-php/etc/conf.d
Installation de PHP terminée.
Installation de PHP-FFMPEG
On utilise toujours la variable $PHP_INSTALL_VERSION. Feignant jusqu’au bout !!
cd /opt/sources git clone https://github.com/tony2001/ffmpeg-php.git cd ffmpeg-php/ /opt/build-php/$PHP_INSTALL_VERSION/bin/phpize CPPFLAGS="-I/opt/build-ffmpeg/include" LIBS="-I/opt/build-ffmpeg/lib" ./configure --prefix=/opt/build-php/php-ffmpeg \ --enable-skip-gd-check \ --with-ffmpeg=/opt/build-ffmpeg \ --with-php-config="/opt/build-php/$PHP_INSTALL_VERSION/bin/php-config"
Précisions:
- CPPFLAGS et LIBS indiquent où doivent être trouver les « headers » (include) et les libs de FFMPEG.
- –prefix=/opt/build-php/php-ffmpeg est juste là pour être sur que rien n’est installé ailleurs, mais ce n’est pas utilisé lors du « make install ».
- –enable-skip-gd-check comme GD est inclus dans PHP, on ignore la vérification.
- –with-ffmpeg=/opt/build-ffmpeg indique où se trouve FFMPEG
- –with-php-config chemin vers la commande php-config qui retourne des paramètres de configuration.
Si tout se passe bien, on continue:
make make install make clean make distclean
« make install » va copier le fichier « ffmpeg.so » dans le bon dossier de notre installation de PHP.
Ensuite, on finit par activer l’extension:
echo "extension=ffmpeg.so" > "/opt/build-php/etc/conf.d/20-ffmpeg.ini"
Cette commande ne doit être exécutée qu’une seule fois. Pour les prochaines versions de PHP à installer, ce même fichier sera utilisé (grâce à –with-config-file-scan-dir).
Et pour terminer, on regarde si PHP-FFMPEG est bien pris en compte dans PHP:
/opt/build-php/$PHP_INSTALL_VERSION/bin/php -i | grep "ffmpeg"
Voici à quoi doit ressembler le résultat de la commande :
Additional .ini files parsed => /opt/build-php/etc/conf.d/20-ffmpeg.ini ffmpeg ffmpeg-php version => 0.7.0 ffmpeg-php built on => Dec 13 2013 02:07:54 ffmpeg-php gd support => enabled ffmpeg libavcodec version => Lavc55.45.101 ffmpeg libavcodec license => nonfree and unredistributable ffmpeg libavformat version => Lavf55.22.100 ffmpeg libavformat license => nonfree and unredistributable ffmpeg swscaler version => SwS2.5.101 ffmpeg swscaler license => nonfree and unredistributable ffmpeg codec_list => a64multi(v), a64multi5(v), aasc(v), aic(v), amv(v), amv(v), anm(v), ansi(v), asv1(v), asv1(v), asv2(v), asv2(v), aura(v), aura2(v), avrp(v), avrp(v), avrn(v), avs(v), avui(v), avui(v), ayuv(v), ayuv(v), bethsoftvid(v), bfi(v), binkvideo(v), bmp(v), bmp(v), bmv_video(v), brender_pix(v), c93(v), cavs(v), cdgraphics(v), cdxl(v), cinepak(v), cljr(v), cljr(v), cllc(v), comfortnoise(a), comfortnoise(a), cpia(v), camstudio(v), cyuv(v), dfa(v), dirac(v), dnxhd(v), dnxhd(v), dpx(v), dpx(v), dsicinvideo(v), dvvideo(v), dvvideo(v), dxa(v), dxtory(v), eacmv(v), eamad(v), eatgq(v), eatgv(v), eatqi(v), 8bps(v), 8svx_exp(a), 8svx_fib(a), escape124(v), escape130(v), exr(v), ffv1(v), ffv1(v), ffvhuff(v), ffvhuff(v), flashsv(v), flashsv(v), flashsv2(v), flashsv2(v), flic(v), flv(v), flv(v), 4xm(v), fraps(v), frwu(v), g2m(v), gif(v), gif(v), h261(v), h261(v), h263(v), h263(v), h263i(v), h263p(v), h263p(v), h264(v), hevc(v), hnm4video(v), huffyuv(v), huffyuv(v), idcinvideo(v), iff(v), iff(v), indeo2(v), indeo3(v), indeo4(v), indeo5(v), interplayvideo(v), jpeg2000(v), jpeg2000(v), jpegls(v), jpegls(v), jv(v), kgv1(v), kmvc(v), lagarith(v), ljpeg(v), loco(v), mdec(v), mimic(v), mjpeg(v), mjpeg(v), mjpegb(v), mmvideo(v), motionpixels(v), mpeg1video(v), mpeg1video(v), mpeg2video(v), mpeg2video(v), mpeg4(v), mpeg4(v), mpegvideo(v), msa1(v), msmpeg4v1(v), msmpeg4v2(v), msmpeg4v2(v), msmpeg4(v), msmpeg4(v), msrle(v), mss1(v), mss2(v), msvideo1(v), msvideo1(v), mszh(v), mts2(v), mvc1(v), mvc2(v), mxpeg(v), nuv(v), paf_video(v), pam(v), pam(v), pbm(v), pbm(v), pcx(v), pcx(v), pgm(v), pgm(v), pgmyuv(v), pgmyuv(v), pictor(v), png(v), png(v), ppm(v), ppm(v), prores(v), prores(v), prores_aw(v), prores_ks(v), prores_lgpl(v), ptx(v), qdraw(v), qpeg(v), qtrle(v), qtrle(v), r10k(v), r10k(v), r210(v), r210(v), rawvideo(v), rawvideo(v), rl2(v), roqvideo(v), roqvideo(v), rpza(v), rv10(v), rv10(v), rv20(v), rv20(v), rv30(v), rv40(v), s302m(a), s302m(a), sanm(v), sgi(v), sgi(v), sgirle(v), smackvid(v), smc(v), smvjpeg(v), snow(v), snow(v), sp5x(v), sunrast(v), sunrast(v), svq1(v), svq1(v), svq3(v), targa(v), targa(v), targa_y216(v), theora(v), thp(v), tiertexseqvideo(v), tiff(v), tiff(v), tmv(v), truemotion1(v), truemotion2(v), camtasia(v), tscc2(v), txd(v), ultimotion(v), utvideo(v), utvideo(v), v210(v), v210(v), v210x(v), v308(v), v308(v), v408(v), v408(v), v410(v), v410(v), vb(v), vble(v), vc1(v), vc1image(v), vcr1(v), vmdvideo(v), vmnc(v), vp3(v), vp5(v), vp6(v), vp6a(v), vp6f(v), vp8(v), vp9(v), vqavideo(v), webp(v), wmv1(v), wmv1(v), wmv2(v), wmv2(v), wmv3(v), wmv3image(v), wnv1(v), xan_wc3(v), xan_wc4(v), xbm(v), xbm(v), xface(v), xface(v), xl(v), xwd(v), xwd(v), y41p(v), y41p(v), yop(v), yuv4(v), yuv4(v), 012v(v), zerocodec(v), zlib(v), zlib(v), zmbv(v), zmbv(v), aac(a), aac(a), aac_latm(a), ac3(a), ac3(a), ac3_fixed(a), alac(a), alac(a), als(a), amrnb(a), amrwb(a), ape(a), atrac1(a), atrac3(a), binkaudio_dct(a), binkaudio_rdft(a), bmv_audio(a), cook(a), dca(a), dca(a), dsicinaudio(a), eac3(a), eac3(a), evrc(a), wavesynth(a), flac(a), flac(a), g723_1(a), g723_1(a), g729(a), gsm(a), gsm_ms(a), iac(a), imc(a), mace3(a), mace6(a), metasound(a), mlp(a), mp1(a), mp1float(a), mp2(a), mp2(a), mp2float(a), mp2fixed(a), mp3(a), mp3float(a), mp3adu(a), mp3adufloat(a), mp3on4(a), mp3on4float(a), mpc7(a), mpc8(a), nellymoser(a), nellymoser(a), paf_audio(a), qcelp(a), qdm2(a), real_144(a), real_144(a), real_288(a), ralf(a), shorten(a), sipr(a), smackaud(a), sonic(a), sonic(a), sonicls(a), tak(a), truehd(a), truespeech(a), tta(a), tta(a), twinvq(a), vmdaudio(a), vorbis(a), vorbis(a), wavpack(a), wavpack(a), wmalossless(a), wmapro(a), wmav1(a), wmav1(a), wmav2(a), wmav2(a), wmavoice(a), ws_snd1(a), pcm_alaw(a), pcm_alaw(a), pcm_bluray(a), pcm_dvd(a), pcm_f32be(a), pcm_f32be(a), pcm_f32le(a), pcm_f32le(a), pcm_f64be(a), pcm_f64be(a), pcm_f64le(a), pcm_f64le(a), pcm_lxf(a), pcm_mulaw(a), pcm_mulaw(a), pcm_s8(a), pcm_s8(a), pcm_s8_planar(a), pcm_s8_planar(a), pcm_s16be(a), pcm_s16be(a), pcm_s16be_planar(a), pcm_s16be_planar(a), pcm_s16le(a), pcm_s16le(a), pcm_s16le_planar(a), pcm_s16le_planar(a), pcm_s24be(a), pcm_s24be(a), pcm_s24daud(a), pcm_s24daud(a), pcm_s24le(a), pcm_s24le(a), pcm_s24le_planar(a), pcm_s24le_planar(a), pcm_s32be(a), pcm_s32be(a), pcm_s32le(a), pcm_s32le(a), pcm_s32le_planar(a), pcm_s32le_planar(a), pcm_u8(a), pcm_u8(a), pcm_u16be(a), pcm_u16be(a), pcm_u16le(a), pcm_u16le(a), pcm_u24be(a), pcm_u24be(a), pcm_u24le(a), pcm_u24le(a), pcm_u32be(a), pcm_u32be(a), pcm_u32le(a), pcm_u32le(a), pcm_zork(a), interplay_dpcm(a), roq_dpcm(a), roq_dpcm(a), sol_dpcm(a), xan_dpcm(a), adpcm_4xm(a), adpcm_adx(a), adpcm_adx(a), adpcm_afc(a), adpcm_ct(a), adpcm_dtk(a), adpcm_ea(a), adpcm_ea_maxis_xa(a), adpcm_ea_r1(a), adpcm_ea_r2(a), adpcm_ea_r3(a), adpcm_ea_xas(a), g722(a), g722(a), g726(a), g726(a), g726le(a), adpcm_ima_amv(a), adpcm_ima_apc(a), adpcm_ima_dk3(a), adpcm_ima_dk4(a), adpcm_ima_ea_eacs(a), adpcm_ima_ea_sead(a), adpcm_ima_iss(a), adpcm_ima_oki(a), adpcm_ima_qt(a), adpcm_ima_qt(a), adpcm_ima_rad(a), adpcm_ima_smjpeg(a), adpcm_ima_wav(a), adpcm_ima_wav(a), adpcm_ima_ws(a), adpcm_ms(a), adpcm_ms(a), adpcm_sbpro_2(a), adpcm_sbpro_3(a), adpcm_sbpro_4(a), adpcm_swf(a), adpcm_swf(a), adpcm_thp(a), adpcm_xa(a), adpcm_yamaha(a), adpcm_yamaha(a), vima(a), ssa(s), ssa(s), ass(s), ass(s), dvbsub(s), dvbsub(s), dvdsub(s), dvdsub(s), jacosub(s), microdvd(s), mov_text(s), mov_text(s), mpl2(s), pgssub(s), pjs(s), realtext(s), sami(s), srt(s), srt(s), subrip(s), subrip(s), subviewer(s), subviewer1(s), text(s), vplayer(s), webvtt(s), xsub(s), xsub(s), libfaac(a), libmp3lame(a), libvpx(v), libvpx(v), libvpx-vp9(v), libvpx-vp9(v), libx264(v), libx264rgb(v), bintext(v), xbin(v), idf(v), ffmpeg.allow_persistent => 0 => 0 ffmpeg.show_warnings => 0 => 0
En théorie, vous pouvez maintenant utiliser PHP-FFMPEG avec la nouvelle version de PHP installée. Vous pouvez ensuite recommencer avec une nouvelle version en adaptant la variable $PHP_INSTALL_VERSION.
Sources
Ceci est une adaptation des informations glanées sur les sites suivants :
ffmpeg et Helyar.net : pour l’installation de ffmpeg.
HowtoForge : explique l’installation de plusieurs versions de PHP (pour ISPConfig à la base, mais convient parfaitement même sans utiliser ISPConfig).
tony2001 via GitHub : pour une version améliorée de php-ffmpeg.
Bonjour.
Merci pour ce guide, car il correspond exactement à l’erreur que j’avais en essayant d’installer ffmpeg + php-ffmpeg avec les autres guides.
Du coup, je n’ai aucune erreur pour toute l’installation.
Par contre, quand je fais php -i | grep « ffmpeg »
J’ai cette erreur :
PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php5/20121212/ffmpeg.so’ – /usr/lib/php5/20121212/ffmpeg.so: undefined symbol: avcodec_alloc_frame in Unknown on line 0
Est-ce que vous savez d’où ça peut venir ?
Merci beaucoup d’avance.
Adrien.