FFmpeg-6.1.1

Introduction à FFmpeg

FFmpeg est une solution pour enregistrer et convertir des flux audio et vidéo. C'est un convertisseur audio et vidéo très rapide et il peut aussi acquérir à partir d'une source audio et vidéo en direct. Conçu pour être intuitif, l'interface en ligne de commande (ffmpeg) tente de couvrir tous les paramètres lorsque cela est possible. FFmpeg peut convertir aussi entre des vitesses d'échantillon et redimensionner des vidéos à la volée avec un filtre polyphases de haute qualité. FFmpeg peut utiliser une source vidéo compatible Video4Linux et n'importe quelle source audio Open Sound System.

This package is known to build and work properly using an LFS 12.1 platform.

Informations sur le paquet

  • Téléchargement (HTTP) : https://ffmpeg.org/releases/ffmpeg-6.1.1.tar.xz

  • Téléchargement (FTP) :

  • Somme de contrôle MD5 : 341d719415b7f95bb59f5016f2864ac6

  • Taille du téléchargement : 10 Mo

  • Estimation de l'espace disque requis : 237 Mo (plus 1,5 Go pour la suite FATE et ses tests, plus 792 Mo pour la doc)

  • Estimation du temps de construction : 1,3 SBU (avec parallélisme = 4, plus 3,2 SBU (avec THREADS=4) pour lancer la suite FATE une fois les fichiers d'exemple téléchargés, plus 0,3 SBU pour la documentation doxygen)

Téléchargements supplémentaires

Dépendances de FFmpeg

Recommandées

Recommandées pour une utilisation de bureau

Facultatives

Doxygen-1.10.0, Fontconfig-2.15.0, FriBidi-1.0.13, frei0r-plugins-1.8.0, libcdio-2.1.0 (pour identifier et jouer des CD), libdrm-2.4.120 (pour l'entrée « kmsgrab »), libwebp-1.3.2, opencv-4.9.0, OpenJPEG-2.5.0, GnuTLS-3.8.3, PulseAudio-17.0, Samba-4.19.5, Speex-1.2.1, texlive-20230313 (ou install-tl-unx) pour la documentation S et PDF, v4l-utils-1.26.1, Vulkan-Loader-1.3.277, XviD-1.3.7, un environnement graphique, dav1d, Flite, GSM, libaacplus, libbluray, libcaca, libcelt, libdc1394, libdca, libiec61883, libilbc, libmodplug, libnut (checkout git), librtmp, libssh, libtheora, OpenAL, OpenCore AMR, Srt, Schroedinger, TwoLAME, vo-aaenc, vo-amrwbenc et ZVBI

Installation de FFmpeg

Tout d'abord, appliquez un correctif qui ajoute une API nécessaire pour la construction de certains paquets :

patch -Np1 -i ../ffmpeg-6.1.1-chromium_method-1.patch

Installez FFmpeg en exécutant les commandes suivantes :

./configure --prefix=/usr        \
            --enable-gpl         \
            --enable-version3    \
            --enable-nonfree     \
            --disable-static     \
            --enable-shared      \
            --disable-debug      \
            --enable-libaom      \
            --enable-libass      \
            --enable-libfdk-aac  \
            --enable-libfreetype \
            --enable-libmp3lame  \
            --enable-libopus     \
            --enable-libvorbis   \
            --enable-libvpx      \
            --enable-libx264     \
            --enable-libx265     \
            --enable-openssl     \
            --disable-vulkan     \
            --ignore-tests=enhanced-flv-av1 \
            --docdir=/usr/share/doc/ffmpeg-6.1.1 &&

make &&

gcc tools/qt-faststart.c -o tools/qt-faststart

La documentation HTML a été construite à l'étape précédente. Si texlive-20230313 et que vous souhaitez des versions PDF et Postscript de la documentation, tapez les commandes suivantes :

pushd doc &&
for DOCNAME in `basename -s .html *.html`
do
    texi2pdf -b $DOCNAME.texi &&
    texi2dvi -b $DOCNAME.texi &&

    dvips    -o $DOCNAME.ps   \
                $DOCNAME.dvi
done &&
popd &&
unset DOCNAME

Si vous avez installé Doxygen-1.10.0 et si vous souhaitez construire (si --disable-doc a été utilisé) ou reconstruire la documentation html, lancez :

doxygen doc/Doxyfile

La suite de tests fate inclut des comparaisons avec des fichiers installés, et ne doit pas être lancée avant que le paquet ne soit installé. Cependant, si vous souhaitez la lancer, les instructions sont données en dessous.

Maintenant, en tant qu'utilisateur root :

make install &&

install -v -m755    tools/qt-faststart /usr/bin &&
install -v -m755 -d           /usr/share/doc/ffmpeg-6.1.1 &&
install -v -m644    doc/*.txt /usr/share/doc/ffmpeg-6.1.1

Si les documentations PDF et Postscript sont construites, tapez les commandes suivantes, en tant qu'utilisateur root pour les installer :

install -v -m644 doc/*.pdf /usr/share/doc/ffmpeg-6.1.1 &&
install -v -m644 doc/*.ps  /usr/share/doc/ffmpeg-6.1.1

Si vous avez utilisé doxygen pour créer la documentation de l'API manuellement, installez-la en exécutant les commandes suivantes en tant qu'utilisateur root :

install -v -m755 -d /usr/share/doc/ffmpeg-6.1.1/api                     &&
cp -vr doc/doxy/html/* /usr/share/doc/ffmpeg-6.1.1/api                  &&
find /usr/share/doc/ffmpeg-6.1.1/api -type f -exec chmod -c 0644 \{} \; &&
find /usr/share/doc/ffmpeg-6.1.1/api -type d -exec chmod -c 0755 \{} \;

Pour tester correctement l'installation vous devez avoir installé rsync-3.2.7 et suivre les instructions de FFmpeg Automated Testing Environment (FATE). D'abord, environ 1 Go de fichiers d'exemple utilisés pour lancer FATE sont téléchargés avec la commande :

make fate-rsync SAMPLES=fate-suite/

Le répertoire fate-suite est créé et les fichiers sont téléchargés ici. Cette commande lance en fait une commande rsync pour obtenir les fichiers d'échantillons. Vous voudrez peut-être compresser et grader le répertoire pour tester de nouveau, pour tester sur un autre système, ou quand une nouvelle version de ffmpeg est publiée. Ensuite, déballez les fichiers d'échantillons dans le répertoire des sources, et lancez la commande make fate-rsync… ci-dessus, pour synchroniser avec le dépôt. La taille et le temps de téléchargement sont considérablement réduits. Les valeurs estimées dans « Information du paquet » n'incluent pas le SBU du téléchargement. Comme quelques échantillons peuvent être enlevés dans les nouvelles versions, pour vous assurer que les échantillons locaux et du serveur de fate sont identique lorsque vous utilisez des échantillons précédemment sauvegardés, lancez la commande suivante :

rsync -vrltLW  --delete --timeout=60 --contimeout=60 \
      rsync://fate-suite.ffmpeg.org/fate-suite/ fate-suite/

Ensuite, exécutez FATE avec les commandes suivantes (il y a plus de 3 800 tests dans la suite) :

make fate THREADS=N SAMPLES=fate-suite/ | tee ../fate.log &&
grep ^TEST ../fate.log | wc -l

N est un entier, N ≤ nombre de threads dans le système.

Une exécution réussie ne renvoie pas d'erreur ni d'avertissements, juste une liste de tests et le total à la fin.

Explication des commandes

find ... ; : corrige les permissions des fichiers et des répertoires de documentation.

--enable-libfreetype : Active le support de Freetype.

--enable-gpl : Active l'utilisation du code GPL et permet le support du post-traitement, swscal et bien d'autres fonctionnalités.

--enable-version3 : Active l'utilisation du code sous (L)GPL version 3.

--enable-nonfree : Active l'utilisation du code non libre. Remarquez que les bibliothèques et les binaires qui en résultent ne seront pas distribuables.

--disable-static : Ce paramètre empêche l'installation des versions statiques des bibliothèques.

--enable-shared : Active la construction des bibliothèques partagée, sinon seules les bibliothèques statiques sont construites et installées.

--disable-debug : désactive la construction des symboles de débogage dans les programmes et les bibliothèques.

--enable-libaom : active l'encodage audio et vidéo AV1 via libaom.

--enable-libass : Active le rendu du format de sous-titres ASS/SSA via libass.

--enable-libdrm : utilisez ce paramètre si libdrm-2.4.120 est installée, pour construire le module d'entrée « kmsgrab » qui est utile pour la capture de l'écran et le streaming.

--enable-libfdk-aac : Active l'encodage audio dans le format AAC via libfdk-aac.

--enable-libmp3lame : Active l'encodage audio MP3 via libmp3lame.

--enable-libvorbis --enable-libvpx : Active l'encodage en WebM via libvorbis et libvpx.

--enable-libx264 : Active l'encodage H.264/MPEG-4 AVC en haute qualité via libx264.

--enable-libx265 : Active l'encodage H.265/HEVC en haute qualité via libx265.

--enable-openssl : active le protocole HTTPS pour les flux réseaux.

--disable-vulkan : désactive Vulkan pour la version actuelle de Vulkan-Loader-1.3.277 à cause d'un conflit d'API.

--ignore-tests=... : désactive les tests qui échouent à se lancer sur BLFS sans les paquets facultatifs. Actuellement le test AV1 est désactivé car il nécessite dav1d pour décoder de l'AV1 sur le CPU. Le test peut fonctionner si vous avez un GPU qui peut décoder de l'AV1, mais cela n'a pas été testé.

--enable-gnutls : utilisez cette option à la place de --enable-openssl si vous voulez utiliser GnuTLS au lieu d'OpenSSL pour le protocole HTTPS.

--disable-doc : Désactive la construction de la documentation html. Ceci n'est nécessaire que si Doxygen-1.10.0 est installé et que vous ne souhaitez pas construire la documentation html.

--enable-libpulse : Active la prise en charge de Pulseaudio pour la sortie audio.

gcc tools/qt-faststart.c -o tools/qt-faststart : Cela construit le programme qt-faststart qui peut modifier les films formatés en QuickTime (.mov ou .mp4) pour que les informations d'en-tête soient placées au début du fichier au lieu de la fin. Cela permet de lire le film avant que le fichier entier ne soit téléchargé.

[Note]

Note

Le support de la plupart des paquets dépendants demande l'utilisation d'options passées au script configure. Regardez la sortie de ./configure --help pour une information complète à propos de l'activation des paquets dépendants.

Contenu

Programmes installés: ffmpeg, ffplay, ffprobe et qt-faststart
Bibliothèques installées: libavcodec.so, libavdevice.so, libavfilter.so, libavformat.so, libavutil.so, libpostproc.so, libswresample.so et libswscale.so
Répertoires installés: /usr/include/libav{codec,device,filter,format,util}, /usr/include/libpostproc, /usr/include/libsw{resample,scale}, /usr/share/doc/ffmpeg-6.1.1 et /usr/share/ffmpeg

Descriptions courtes

ffmpeg

est un outil en ligne de commande pour convertir des fichiers vidéo, des flux réseaux et des entrées d'une carte TV en divers formats vidéo

ffplay

est un lecteur média très simple et portable utilisant les bibliothèques de ffmpeg et la bibliothèque SDL

ffprobe

rassemble des informations à partir de flux multimédia et les affiche d'une manière lisible par un homme ou une machine

qt-faststart

déplace le fichier d'index à l'avant des vidéos quicktime (mov/mp4)

libavcodec.so

est une bibliothèque contenant les codecs FFmpeg (pour l'encodage et le décodage)

libavdevice.so

est la bibliothèque FFmpeg pour la manipulation des périphériques

libavfilter.so

est une bibliothèque de filtres capables de modifier des vidéos ou des sons entre un décodeur et un encodeur (ou une sortie)

libavformat.so

est une bibliothèque contenant la gestion des formats de fichier (code de multiplexage et de démultiplexage pour plusieurs formats) utilisée par ffplay et permettant de générer des flux audio et vidéo

libavresample.so

est une bibliothèque contenant les fonction pour le rééchantillonage audio et vidéo.

libavutil.so

est la bibliothèque d'utilitaires pour FFmpeg

libpostproc.so

est la bibliothèque de post-traitement pour FFmpeg

libswresample.so

est la bibliothèque de FFmpeg pour la transformation audio, elle contient des fonctions pour convertir les formats d'échantillon audio

libswscale.so

est la bibliothèque de redimensionnement d'images de FFmpeg