# FFmpeg

FFmpeg est une collection de logiciels libres destinés au traitement de flux audio ou vidéo (enregistrement, lecture ou conversion d'un format à un autre). Cette bibliothèque est utilisée par de nombreux autres logiciels ou services comme VLC, iTunes ou YouTube.
Développé sur GNU/Linux, FFmpeg peut être compilé sur la plupart des systèmes d'exploitation, y compris Windows. Le projet est distribué sous licence libre, GPL 2+ ou LGPL 2.1+ en fonction des options de compilation du projet.
Le nom FFmpeg est constitué du nom du groupe de travail MPEG et des deux F provenant de l'abréviation de « fast forward » (« avance rapide ») en anglais.

## Histoire

Ce projet a été créé par Fabrice Bellard en 2000, et est maintenant maintenu par Michael Niedermayer. Il est actuellement hébergé sur les serveurs du projet MPlayer.
En 2024, FFmpeg a reçu 157 580 € du Sovereign Tech Fund jusqu'à la fin de 2025.

## Composants

Le projet est constitué de plusieurs composants, outils en ligne de commande ou bibliothèques logicielles :
* ffmpeg l'utilitaire éponyme de conversion des formats vidéo. Il prend aussi en charge l'encodage en temps réel depuis une carte TV ;
* ffserver est un serveur HTTP destiné à la diffusion de contenu en continu (streaming) ;
* ffplay permet de lire un fichier multimédia (il est basé sur les bibliothèques SDL et FFmpeg).
Bibliothèques :
* libavcodec contient tous les encodeurs et décodeurs audio/video de FFmpeg. La plupart des codecs ont été redéveloppés à partir de zéro pour assurer les meilleures performances et la réutilisabilité du code source, une partie d'entre eux ont été développés par rétro-ingénierie ;
* libavformat contient un analyseur syntaxique (un parser en anglais, parcoureur en français) et un générateur pour les formats audio/video les plus communs.

## Liste des formats conteneurs audio/vidéo pris en charge

* AVI
* MPEG
* ASF
* MOV
* OGG
* Matroska (dont WebM)
* WAVE

## Liste des formats de compression pris en charge

FFmpeg est probablement le logiciel d'encodage/décodage prenant en charge le plus de formats.

### Audio

* FLAC, compression sans perte
* MPEG-1 Audio Layer 2 (mp2), MPEG-1/2 Audio Layer 3 (mp3), MPEG-4 AAC
* speex
* vorbis
* WMA
* OPUS
* G711, G721, G722, G723, G726, G729
* ADPCM
* AMR
* AC-3

### Vidéo

* AV1 (avec librav1e depuis la 3.3, mais svt-av1, plus performant depuis la version 4.4)
* Dirac
* MJPEG
* MPEG-1, MPEG-2, MPEG-4 AVC (H.264), MPEG-4 HEVC (H.265)
* theora
* Snow
* Sorenson 3 utilisé par le format de film QuickTime
* VP8, VP9
* WMV

### Image

Ces formats sont principalement utilisés pour monter une animation ou pour extraire des images
* AVIF
* JPEG
* JPEG XL
* OpenEXR
* PNG

## Liste des outils multimédias qui utilisent FFmpeg

* Blender (depuis la version 2.42)
* Emby (en) Media Server
* DLNow (téléchargement et convertisseur vidéo YouTube)
* ffdshow (filtre DirectShow pour Windows)
* ffmpeg-php : cette bibliothèque permet d'obtenir les informations d'une vidéo (taille, longueur, nombre d'images, etc) ou encore de générer une image GIF animée d'une vidéo.
* Format Factory
* GStreamer
* iSquint (convertisseur format iPod pour Mac)
* The KMPlayer
* Kodi (ex XMBC)
* Konvertor
* MPlayer
* CasparCG
* Ps3 Media Server
* MumbleDJ: Player audio sur mumble
* Quick Media Converter
* Super Video Converter (convertisseur vidéo pour windows)
* Shutter encoder (convertisseur vidéo multi-plateforme) Site du projet
* Video Transcoder : une application Android pour transcoder et couper - Site du projet
* VLC media player
* Vmix
* WinFF : interface utilisateur libre de FFmpeg, pour GNU/Linux et Windows.
* Xine