À propos du projet

Ce dépôt est un tutoriel éducatif pour apprendre à utiliser FFmpeg comme bibliothèque (libav) afin de créer des programmes multimédias. Il a été conçu comme remplacement moderne des tutoriels obsolètes et est disponible en plusieurs langues. Le contenu commence par une introduction aux fondamentaux des médias, expliquant ce que sont la vidéo, l'audio, les codecs et les conteneurs. Il propose ensuite un cours accéléré sur l'utilisation de l'outil en ligne de commande FFmpeg, couvrant les opérations vidéo courantes telles que le transcodage (conversion de codecs), le transmuxing (changement de conteneurs), le transrating (changement de débits), le transsizing (changement de résolution) et le streaming adaptatif utilisant DASH. Le cœur du dépôt est la section « Apprenez FFmpeg libav à la dure », qui propose des walkthroughs de code en C. Elle couvre : - Chapitre 0 : Un programme « hello world » qui lit un fichier multimédia, extrait les métadonnées, décode les trames et les enregistre en images en niveaux de gris. Il explique l'architecture FFmpeg libav, incluant des composants comme AVFormatContext, AVStream, AVPacket, AVCodec et AVFrame. - Chapitre 1 : Une explication de la synchronisation audio et vidéo, détaillant les horodatages de présentation (PTS), les timebases et la façon dont les lecteurs vidéo cadencent le rendu des trames. - Chapitre 2 : Code de remuxing. - Chapitre 3 : Code de transcodage. Le tutoriel utilise Docker comme environnement de développement et d'exécution pour éviter les problèmes de compilation, et inclut un Makefile pour récupérer des vidéos de test et exécuter des exemples. Bien que le code soit écrit en C, l'auteur note que les concepts sont facilement applicables à d'autres langages disposant de bindings FFmpeg, tels que Python et Go.