Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
atelier:chantier:ffmpeg-generalites [22/06/2024 16:55] lagrenouille [exemples de commandes ffmpeg] |
atelier:chantier:ffmpeg-generalites [24/09/2024 16:35] (Version actuelle) vv222 [ffmpeg : généralités non exhaustif] Retrait d’un avertissement périmé |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
* Niveau requis :{{tag>débutant avisé}} | * Niveau requis :{{tag>débutant avisé}} | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>en-chantier à-tester à-placer}} | + | * Suivi : {{tag>à-tester à-placer}} |
- | * Création par [[user>lagrenouille ]] [[user>vv222]][[user>zorro ]] [[user>tintin ]] 21/06/2024 | + | * Création par [[user>lagrenouille ]] [[user>vv222]] 21/06/2024 |
* Testé par <...> le <...> | * Testé par <...> le <...> | ||
- | * Commentaires sur le forum : [[:url-invalide | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) À PAS:-P | + | * Commentaires sur le forum : [[:url-invalide | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
- | **Nota :** | + | |
- | + | ||
- | Contributeurs, les petits tux sont là pour vous aider!' | + | |
- | + | ||
- | **Si ce tuto n'avait pas d'autres contributeurs dans le mois qui suivent, il sera effacé définitivement** | + | |
===== Installation ===== | ===== Installation ===== | ||
L’installation sous debian est assez simple, en console sous root : | L’installation sous debian est assez simple, en console sous root : | ||
Ligne 27: | Ligne 22: | ||
====présentation==== | ====présentation==== | ||
- | Le codec est un algorithme qui permet d'encoder la vidéo ou le son afin de l'adapter au protocole de transport (IP,DVB,fichier...) notamment en réduisant le débit(Kbits/s). Selon les codecs, la compression peut s'accompagner d'une perte de qualité dans l'image ou le son plus ou moins importante. | + | Le codec est un algorithme qui permet d'encoder la vidéo ou le son afin de l'adapter au protocole de transport (IP,DVB,fichier...) notamment en réduisant le débit(Kbits/s). |
+ | |||
+ | Selon les codecs, la compression peut s'accompagner d'une perte de qualité dans l'image ou le son plus ou moins importante. | ||
De la même manière que pour les formats, FFmpeg/Libav liste les codecs qu'il est capable de gérer: | De la même manière que pour les formats, FFmpeg/Libav liste les codecs qu'il est capable de gérer: | ||
- | | Codecs: |la commandes ‘<code user>ffmpeg -codecs</code>’ renvoie un grand nombre de réponses. | | + | Codecs: cette commande renvoie un grand nombre de réponses. |
+ | |||
+ | <code user>ffmpeg -codecs</code> | ||
+ | |||
+ | renvoie un grand nombre de réponses. | ||
- | | D | = Decoding supported | | + | **D** = Decoding supported |
- | | E | = Encoding supported | | + | **E** = Encoding supported |
- | | V |= Video codec | | + | **V** = Video codec |
- | | A | = Audio codec | | + | **A** = Audio codec |
- | | S | = Subtitle codec | | + | **S** = Subtitle codec |
- | | D | = Data codec | | + | **D** = Data codec |
- | | T | = Attachment codec | | + | **T** = Attachment codec |
- | | I | = Intra frame-only codec | | + | **I** = Intra frame-only codec |
- | | L | = Lossy compression | | + | **L** = Lossy compression |
- | | S | = Lossless compression | | + | **S** = Lossless compression |
- | et ‘<code user>ffmpeg -filters</code>’ retourne elle aussi, une grande quantité d’informations | + | et |
+ | <code user>ffmpeg -filters</code> | ||
+ | retourne elle aussi, une grande quantité d’informations | ||
Dans les formats citons mkv, webm, ogv, ogg. Dans les codecs vidéos citons : vp9, vp8, theora(vp3) | Dans les formats citons mkv, webm, ogv, ogg. Dans les codecs vidéos citons : vp9, vp8, theora(vp3) | ||
Ligne 89: | Ligne 93: | ||
**Pour mieux comprendre les options d’encodages des vidéos :** | **Pour mieux comprendre les options d’encodages des vidéos :** | ||
- | | -b | configuration du débit binaire par défaut 200 kbps | | + | **-b** configuration du débit binaire par défaut 200 kbps |
- | | -sameq | copie à l'identique le débit binaire | | + | **-sameq** copie à l'identique le débit binaire |
- | | -s | configuration de la taille du cadre d'affichage | | + | **-s** configuration de la taille du cadre d'affichage |
- | | -aspect | configuration du format d'affichage (4:3, 16:9 ou 1.3333, 1.7777) | | + | **-aspect** configuration du format d'affichage (4:3, 16:9 ou 1.3333, 1.7777) |
- | | -vcodec ou -c:v | décision du choix du codec | | + | **-vcodec ou -c:v** décision du choix du codec |
- | | -pass | nombre de passage à l'encodage, une passe (-pass 1) ou deux passes (-pass 2) | | + | **-pass** nombre de passage à l'encodage, une passe (-pass 1) ou deux passes (-pass 2) |
- | | -qmin | détermine le seuil minimum du débit binaire variable (VBR)| | + | **-qmax** détermine le seuil maximum du débit binaire variable (VBR) |
- | | -qmax | détermine le seuil maximum du débit binaire variable (VBR) | | + | **-f** sélectionne le nom du conteneur |
- | | -f | sélectionne le nom du conteneur | | + | **-r** définit le nombre d'images par seconde |
- | | -r | définit le nombre d'images par seconde | | + | **-crf** (constant rate factor) permet de définir un niveau de qualité entre 0 et 51 (petit nombre = meilleure qualité, module facilement le ratio poid/qualité. |
- | | -crf | permet de définir un niveau de qualité entre 0 et 51 (petit nombre = meilleure qualité, mais plus de temps de calcul) en H264/Mpeg4.| | + | Plus on donne un nombre proche de zéro plus le fichier et proche de sa source et donc lourd. En général en fonction du besoin on attribue des valeurs entre 15 et 25. |
+ | mais plus de temps de calcul) en H264/Mpeg4. | ||
- | | 264 ou MPEG-4. Le codec H. 264 | est répandu pour la simple raison qu'il permet d'encoder des images de qualité DVD avec une fraction de la bande passante requise par les techniques de compression | | + | 0 = (Lossless) super lourd, identique à la source. |
- | | framerate 30 | nombre d'images par secondes | | + | 10 = lourd, grande qualité |
+ | |||
+ | 30 = léger, mauvaise qualité | ||
- | | video_size 1280×720 | taille de la vidéo | | + | **264 ou MPEG-4.** Le codec H. 264 est répandu pour la simple raison qu'il permet d'encoder des images de qualité DVD avec une fraction de la bande passante requise par les techniques de compression |
- | | f x11grab | capturer la sortie X | | + | **framerate 30** nombre d'images par secondes |
- | | i “$DISPLAY” | apturer l'écran par défaut | | + | **video_size 1280×720** taille de la vidéo |
- | | vcodec mpeg4 | utiliser le codec vidéo mpeg4 | | + | **f x11grab** capturer la sortie X |
- | | b 1200 | bitrate à 1200 kb ( le bitrate audio) | | + | **i “$DISPLAY”** apturer l'écran par défaut |
- | | qscale 1 | zoom à 100% | | + | **vcodec mpeg4** utiliser le codec vidéo mpeg4 |
- | ====l'audio==== | + | **b 1200** bitrate à 1200 kb ( le bitrate audio) |
- | ** | + | |
- | les options d’encodages pour le son** | + | |
- | | -acodec ou -c:a | détermine le choix du codec | | + | **qscale 1** zoom à 100% |
+ | |||
+ | **-preset** Détermine la vitesse d’encodage, une vitesse plus lente permet au logiciel d’optimiser le fichier pour gagner encore de la place, les valeurs disponibles sont : | ||
+ | |||
+ | ultrafast | ||
+ | |||
+ | superfast | ||
+ | |||
+ | veryfast | ||
+ | |||
+ | faster | ||
+ | |||
+ | fast | ||
+ | |||
+ | medium (default) | ||
+ | |||
+ | slow | ||
+ | |||
+ | slower | ||
+ | |||
+ | veryslow | ||
+ | |||
+ | ====AUDIO==== | ||
+ | |||
+ | **les options d’encodages pour le son** | ||
+ | |||
+ | **-acodec ou -c:a** détermine le choix du codec | ||
- | | -ar | configuration de la fréquence d'échantillonnage (44100 Hz) | | + | **-ar** configuration de la fréquence d'échantillonnage (44100 Hz) |
- | | -ab | configuration du débit binaire par défaut 64 kbps (-ab 128kb) | | + | **-ab** configuration du débit binaire par défaut 64 kbps (-ab 128kb) |
- | | -ac | configure le nombre de canaux (mono-stéréo) | | + | **-ac** configure le nombre de canaux (mono-stéréo) |
- | | -aac | (-acodec aac) | | + | **-aac** (-acodec aac) |
Dans les codecs audio citons : flac, opus, vorbis et bien d'autre. | Dans les codecs audio citons : flac, opus, vorbis et bien d'autre. | ||
Ligne 176: | Ligne 207: | ||
VOIR le tuto de cemoi: | VOIR le tuto de cemoi: | ||
- | [[https://debian-facile.org/utilisateurs:cemoi:tutos:h265?s[]=ffmpeg]] | + | **LIEN:** [[https://debian-facile.org/utilisateurs:cemoi:tutos:h265?s[]=ffmpeg]] |
====video-copie-transformation==== | ====video-copie-transformation==== | ||
- | Voir ce lien:[[utilisateurs:smolski:tutos:tuto-video-copie-transformation|Copie Videos et Transformation]] | + | **LIEN:** [[utilisateurs:smolski:tutos:tuto-video-copie-transformation|Copie Videos et Transformation]] |
==== Convertir des vidéos==== | ==== Convertir des vidéos==== | ||
+ | |||
Commençons par une application simple, convertir une vidéo au format MP4 en une vidéo MPEG.ou vice-versa | Commençons par une application simple, convertir une vidéo au format MP4 en une vidéo MPEG.ou vice-versa | ||
<code user>ffmpeg -i vidéo.mp4 vidéo.mpeg</code> | <code user>ffmpeg -i vidéo.mp4 vidéo.mpeg</code> | ||
Ligne 191: | Ligne 223: | ||
Conversion AVI en FLV | Conversion AVI en FLV | ||
<code user>ffmpeg -i vidéo.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv vidéo.flv</code> | <code user>ffmpeg -i vidéo.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv vidéo.flv</code> | ||
+ | |||
+ | Convertir une vidéo en forçant un bitrate | ||
+ | <code user>ffmpeg -i CLDM.mp4 -b:v 512k -b:a 96k CLDM-2.ogg</code> | ||
explications des paramètres : | explications des paramètres : | ||
Ligne 220: | Ligne 255: | ||
==== Extraction de la piste audio ==== | ==== Extraction de la piste audio ==== | ||
- | === Audio encodé en Opus (recommandé pour une lecture sur ordinateur) === | + | **LIEN:** [[doc:media:ffmpeg:extraction-audio|Extraire une piste audio d’un fichier multimédia avec ffmpeg]] |
- | > Opus est un format ouvert de compression audio avec pertes, sans redevances et normalisé par l'Internet Engineering Task Force (IETF), conçu pour coder efficacement la voix et plus largement l'audio dans un format unique, tout en ayant une latence suffisamment faible pour la communication en temps réel et une complexité suffisamment faible pour les processeurs embarqués peu puissants. Opus remplace Vorbis et Speex pour les nouvelles applications et différents tests d'écoute en aveugle l'ont jugé supérieur à tous les autres formats audio à tous les débits, y compris MP3, AAC et HE-AAC. | + | ====Transformer une vidéo en une série images==== |
- | [[https://fr.wikipedia.org/wiki/Opus_Interactive_Audio_Codec|Opus Interactive Audio Codec]] (Wikipédia) | + | convertir une vidéo MP4 vers une image animée GIF non compressée |
- | == Fichier audio en stéréo (pour la musique) == | + | <code user>ffmpeg -i vidéo.mp4 vidéo.gif</code> |
- | <code user>ffmpeg -i source.mkv -map 0:a -c:a libopus -ac 2 destination.ogg</code> | + | ====Transformer webm ou mp4 une vidéo en mp3==== |
+ | <code user>ffmpeg -i Marlene-Dietrich-Lili_Marleen.webm Marlene-Dietrich-Lili_Marleen.mp3</code> | ||
- | * **-i source.mkv** : Utiliser le fichier "source.mkv" comme source ; | + | ====Compresser une vidéo==== |
- | * **-map 0:a** : Ne conserver que la piste audio du premier fichier donné comme source ; | + | |
- | * **-c:a libopus** : Encoder le fichier de sortie en Opus ; | + | |
- | * **-ac 2** : Utiliser deux canaux audio (stéréo) dans le fichier de sortie ; | + | |
- | * **destination.ogg** : Écrire la sortie dans un nouveau fichier nommé "destination.ogg". | + | |
- | + | ||
- | == Fichier audio en mono (pour les émissions de radio ou podcasts) == | + | |
- | <code user>ffmpeg -i source.mkv -map 0:a -c:a libopus -ac 1 destination.ogg</code> | + | Compresser une vidéo, est souvent utile pour mettre en ligne, et ainsi alléger le poids du fichier, il existe une multitude de façon de coder cette conversion, j'en mettrai que celles que j'ai testé. |
- | * **-i source.mkv** : Utiliser le fichier "source.mkv" comme source ; | + | <code user>ffmpeg -i mavidéo.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 mavidéocompressé.mp4</code> |
- | * **-map 0:a** : Ne conserver que la piste audio du premier fichier donné comme source ; | + | |
- | * **-c:a libopus** : Encoder le fichier de sortie en Opus ; | + | |
- | * **-ac 1** : Utiliser canal audio audio (mono) dans le fichier de sortie ; | + | |
- | * **destination.ogg** : Écrire la sortie dans un nouveau fichier nommé "destination.ogg". | + | |
- | === Audio encodé en MP3 (pour lire sur un appareil ne prenant en charge que ce format) === | + | <code user> ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4</code> |
- | <code user>ffmpeg -i video.mp4 audio.mp3</code> | + | Ici, "-crf 23" est utilisé pour contrôler la qualité de la vidéo compressée |
- | Par défaut, l’extracteur se fait avec une qualité de 128kb/s. Si vous souhaitez préciser une autre qualité, | + | 18 produira une meilleure qualité mais un fichier plus volumineux |
- | ajoutez le paramètre -ab avec la valeur. Par exemple, -ab 320kb/s. | + | 28 produira une qualité plus faible mais un fichier plus petit |
- | === Audio copié sans ré-encodage (pour conserver la qualité, et le poids, d’origine) === | + | "-b:a 128k" fixe le débit audio à 128 kbps (kilobits par seconde) |
- | <code user>ffmpeg -i source.mkv -map 0:a -c:a copy destination.mka</code> | + | Compresser ma vidéo baba.mp4 |
- | + | <code user>ffmpeg -i baba.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 new_baba.mp4</code> | |
- | * **-i source.mkv** : Utiliser le fichier "source.mkv" comme source ; | + | |
- | * **-map 0:a** : Ne conserver que la piste audio du premier fichier donné comme source ; | + | |
- | * **-c:a copy** : Copier le flux audio sans le ré-encoder ; | + | |
- | * **destination.mka** : Écrire la sortie dans un nouveau fichier nommé "destination.mka". | + | |
- | + | ||
- | ====Transformer une vidéo en une série images==== | + | |
- | + | ||
- | convertir une vidéo MP4 vers une image animée GIF non compressée | + | |
- | + | ||
- | <code user>ffmpeg -i vidéo.mp4 vidéo.gif</code> | + | |
- | + | ||
- | ====Transformer webm ou mp4 une vidéo en mp3==== | + | |
- | <code user>ffmpeg -i Marlene-Dietrich-Lili_Marleen.webm Marlene-Dietrich-Lili_Marleen.mp3</code> | + | |
- | + | ||
- | ====convertir des images=== | + | |
- | + | ||
- | ====Compresser une vidéo==== | + | |
====redimensionner une vidéo==== | ====redimensionner une vidéo==== | ||
Ligne 294: | Ligne 303: | ||
<code user>ffplay Fabrizio-andré-le-passanti.mp3</code> | <code user>ffplay Fabrizio-andré-le-passanti.mp3</code> | ||
+ | |||
+ | monter ou diminuer le son de 10 décibels : | ||
+ | |||
+ | <code user>ffmpeg -i video.mp4 -vcodec copy -af "volume=10dB" video-augmentee.mp4</code> | ||
+ | |||
+ | On peut aussi baisser le son : | ||
+ | <code user> | ||
+ | ffmpeg -i video.mp4 -vcodec copy -af "volume=-5dB" video-diminuee.mp4</code> | ||
+ | |||
+ | redimensionner ma vidéo en 1280x720 | ||
+ | <code user>ffmpeg -i video.mkv -vf scale=-1:720 video-720p.mkv</code> | ||
+ | |||
====Capturer le premier écran (ou une partie de l'écran)==== | ====Capturer le premier écran (ou une partie de l'écran)==== | ||
Ligne 320: | Ligne 341: | ||
**-i** image%d.jpg, %d est transformé en 1, 2, 3, 4, 5..etc... | **-i** image%d.jpg, %d est transformé en 1, 2, 3, 4, 5..etc... | ||
- | ====faire un diaporama musical avec ffmpeg==== | + | -crf permet de définir un niveau de qualité |
- | [[https://debian-facile.org/utilisateurs:lagrenouille:tutos:ffmpeg-faire-un-diaporama_musical]] | + | |
+ | ====faire un diaporama musical, à partir d'images==== | ||
+ | **LIEN:** [[https://debian-facile.org/utilisateurs:lagrenouille:tutos:ffmpeg-faire-un-diaporama_musical]] | ||
====ffmpeg==== | ====ffmpeg==== | ||
tuto de Pititux le 22-04-2010 | tuto de Pititux le 22-04-2010 | ||
- | [[https://debian-facile.org/doc:media:ffmpeg]] | + | |
+ | **LIEN:** [[https://debian-facile.org/doc:media:ffmpeg]] | ||
=====Liens divers ffmpeg sur le web===== | =====Liens divers ffmpeg sur le web===== | ||