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 Prochaine révision Les deux révisions suivantes | ||
doc:media:ffmpeg [11/09/2019 21:53] smolski [Introduction] |
doc:media:ffmpeg [26/05/2022 11:15] smolski [Extraire un flux] |
||
---|---|---|---|
Ligne 10: | Ligne 10: | ||
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2504 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2504 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | {{/file-R021ef1f149c0db9a48fa309d80a15165.png}} | ||
===== Introduction ===== | ===== Introduction ===== | ||
Ligne 17: | Ligne 17: | ||
Aujourd'hui, il est préférable d'utiliser avconv à la place de ffmpeg tout en conservant les mêmes options. \\ | Aujourd'hui, il est préférable d'utiliser avconv à la place de ffmpeg tout en conservant les mêmes options. \\ | ||
Pour ce faire, si ce n'est déjà fait, installer : | Pour ce faire, si ce n'est déjà fait, installer : | ||
- | <code root>apt update && apt install libav-tools</code> | + | <code root>apt update && apt install libav-tools</code> |
+ | <note important>le paquet libav-tools n'existe pas dans Buster</note> | ||
Et lancez vos commandes en remplaçant //ffmpeg// par **avconv**, tout simplement. | Et lancez vos commandes en remplaçant //ffmpeg// par **avconv**, tout simplement. | ||
Ligne 207: | Ligne 208: | ||
Et l'on peut, très bien, faire une conversion dans la foulée : | Et l'on peut, très bien, faire une conversion dans la foulée : | ||
<code user>ffmpeg -i tears_of_steel.mkv -map 0:2 -acodec libmp3lame -ar 44100 -ac 2 -ab 192k tears_of_steel_BO.mp3</code> | <code user>ffmpeg -i tears_of_steel.mkv -map 0:2 -acodec libmp3lame -ar 44100 -ac 2 -ab 192k tears_of_steel_BO.mp3</code> | ||
+ | |||
+ | Méthode-2/plus simple : | ||
+ | <code user>ffmpeg -i video_origine.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3</code> | ||
+ | Source : | ||
+ | [[http://www.jcartier.net/FFMpeg-par-l-exemple.html]] | ||
====Extraire un sous-titre ==== | ====Extraire un sous-titre ==== | ||
Ligne 221: | Ligne 227: | ||
<code user>ffmpeg -ss 00:06:46 -i tears_of_steel.mkv -c copy -to 00:01:00 tears_of_steel_extrait.mkv</code> | <code user>ffmpeg -ss 00:06:46 -i tears_of_steel.mkv -c copy -to 00:01:00 tears_of_steel_extrait.mkv</code> | ||
+ | ==== Pour couper un vob ==== | ||
+ | |||
+ | <code user>ffmpeg -fflags +genpts -i "ton_vob.VOB" -ss 00:05:00 -t 00:01:00 -map 0:v -map 0:a -c:v copy -c:a copy -y out.VOB</code> | ||
+ | |||
+ | à partir de: | ||
+ | <code>-ss 00:05:00</code> | ||
+ | |||
+ | pour une durée de une minute : | ||
+ | <code>-t 00:01:00</code> | ||
+ | |||
+ | Voir sur le forum : | ||
+ | [[https://debian-facile.org/viewtopic.php?pid=366931#p366931]] | ||
+ | |||
+ | Merci aux participants pour cette solution bien pratique. :) | ||
===== Augmenter le nombre de threads ===== | ===== Augmenter le nombre de threads ===== | ||
Ligne 340: | Ligne 360: | ||
==== Transformer une série d’images en vidéo ==== | ==== Transformer une série d’images en vidéo ==== | ||
- | <code user>ffmpeg -f image2 -i image%d.jpg video.mpg</code> | + | Dans un répertoire nommé par exemple //images// on rassemble les fichiers JPG que l'on veut assembler en vidéo. \\ |
+ | Pour faciliter le processus, ces fichiers doivent être numérotées, par exemple : \\ | ||
+ | image1.jpg image2.jpg image3.jpg... | ||
+ | On lance ensuite la commande : | ||
+ | <code user>ffmpeg -f images -i image%d.jpg video.mpg</code> | ||
- | Ce qui transformera les images du répertoire courant nommées image1.jpg, image2.jpg, image3.jpg, ... en un fichier vidéo nommé video.mpg. \\ | + | Ce qui transformera les images contenues dans le répertoire images : image1.jpg, image2.jpg, image3.jpg ... en un fichier vidéo nommé video.mpg. \\ |
Notons que %d sera automatiquement transformé en 1, 2, 3, 4, 5... | Notons que %d sera automatiquement transformé en 1, 2, 3, 4, 5... | ||
Si l’on a des images nommées image001.jpg, image002.jpg, image003.jpg, ... vous utiliserez la commande : | Si l’on a des images nommées image001.jpg, image002.jpg, image003.jpg, ... vous utiliserez la commande : | ||
- | <code user>ffmpeg -f image2 -i image%03d.jpg video.mpg</code> | + | <code user>ffmpeg -f images -i image%03d.jpg video.mpg</code> |
Mais on peut aussi utiliser d’autres types de format d’images : PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TGA, TIFF, SGI, PTX | Mais on peut aussi utiliser d’autres types de format d’images : PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TGA, TIFF, SGI, PTX | ||
Ligne 500: | Ligne 524: | ||
Source de la boucle : | Source de la boucle : | ||
* [[utilisateurs:smolski:tutos:copies-incrementees]] | * [[utilisateurs:smolski:tutos:copies-incrementees]] | ||
+ | |||
+ | === Concatener facile === | ||
+ | |||
+ | <note>À tester...</note> | ||
+ | |||
+ | Pour concaténer des mkv avec ffmpeg il faut faire comme suit : | ||
+ | Créer un fichier avec le contenu : | ||
+ | |||
+ | <code user>file 'partie1.mkv' | ||
+ | <code user>file 'partie2.mkv'</code> | ||
+ | |||
+ | Appelons ce fichier « list-mkv.txt ». | ||
+ | Alors la commande : | ||
+ | |||
+ | <code user>ffmpeg -f concat -i list-mkv.txt -c copy output.mkv</code> | ||
+ | |||
+ | Source sur le forum : | ||
+ | * https://debian-facile.org/viewtopic.php?pid=345771#p345771 | ||
=== Pense-bête à ska === | === Pense-bête à ska === | ||
Ligne 516: | Ligne 558: | ||
|Audio Vorbis, qualité | -c:a libvorbis | -q:a 0 (~64 kbps)\\ -q:a 2 (~96 kbps\\ -q:a 3 (~112 kbps standard)\\ -q:a 4 (~128 kbps)\\ -q:a 5 (~160 kbps) | | |Audio Vorbis, qualité | -c:a libvorbis | -q:a 0 (~64 kbps)\\ -q:a 2 (~96 kbps\\ -q:a 3 (~112 kbps standard)\\ -q:a 4 (~128 kbps)\\ -q:a 5 (~160 kbps) | | ||
|Conversion audio multi-canaux vers stéréo |-ac 2 | | |Conversion audio multi-canaux vers stéréo |-ac 2 | | ||
+ | |||
+ | ===== Crop - découpe et recadrage vidéo ===== | ||
+ | |||
+ | <note important>Tuto en cours - Commandes en tests à suivre... ;)</note> | ||
+ | |||
+ | Les options | ||
+ | * out_w est la largeur du rectangle de sortie | ||
+ | * out_h est la hauteur du rectangle de sortie | ||
+ | * x et y indiquent le coin supérieur gauche du rectangle de sortie | ||
+ | |||
+ | === Exemples === | ||
+ | |||
+ | <code user>ffmpeg -i in.mp4 -vf "crop=out_w:out_h:x:y" out.mp4</code> | ||
+ | |||
+ | === Recadrer en 80x60 === | ||
+ | |||
+ | Original en 320x240 | ||
+ | |||
+ | Faire un crop de 80×60, depuis la position (200, 100) : | ||
+ | <code user>ffmpeg -i in.mp4 -vf "crop=80:60:200:100" -c:a copy out.mp4</code> | ||
+ | |||
+ | === Recadrer le quart inférieur droit === | ||
+ | |||
+ | <code user>ffmpeg -i in.mp4 -vf "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4</code> | ||
+ | Ou bien : | ||
+ | <code user>ffmpeg -i in.mp4 -vf "crop=240:120:240:120" -c:a copy out.mp4</code> | ||
+ | |||
+ | === Découpez 20 pixels par le haut et 20 par le bas === | ||
+ | |||
+ | <code user>ffmpeg -i in.mp4 -vf "crop=in_w:in_h-40" -c:a copy out.mp4</code> | ||
+ | <note tip>Le filtre centrera automatiquement le rognage si x et y sont omis.</note> | ||
+ | |||
+ | === Prévisualisation === | ||
+ | |||
+ | Vous pouvez réaliser un recadrage (//heh heh heh//) et le prévisualiser en direct avec ffplay : | ||
+ | <code user>ffplay -i input -vf "crop=in_w:in_h-40"</code> | ||
+ | |||
+ | De cette façon, vous pouvez expérimenter et ajuster votre recadrage sans avoir besoin d'encoder, de visualiser ni de recommencer. | ||
+ | |||
+ | =====Réparer un fichier mp4===== | ||
+ | |||
+ | Il peut arriver qu'un pompage sur le net ne soit pas correctement recodé (par ex. on aura un fichier vidéo et un fichier audio non fusionnés). | ||
+ | youtube-dl annonce dans ce cas que la «conversion» n'a pas abouti; à mon avis il s'agit d'une fusion et non d'une conversion. | ||
+ | |||
+ | ffmpeg est capable de faire cette fusion: | ||
+ | |||
+ | <code user>ffmpeg -i <fichier vidéo> -i <fichier audio> <fichier final>.mp4</code> | ||
+ | |||
+ | |||
=====Liens===== | =====Liens===== | ||
- | * Forum df - Améliorer la qualité des vidéos : [[https://debian-facile.org/viewtopic.php?pid=244397#p244397]] | + | * Forum df - Améliorer la qualité des vidéos : [[https://debian-facile.org |
+ | /viewtopic.php?pid=244397#p244397]] | ||
+ | * Forum df - Encoder en haute qualité : https://debian-facile.org//viewtopic.php?pid=329699#p329699 | ||
* Site officiel: (en)[[http://ffmpeg.org/]] | * Site officiel: (en)[[http://ffmpeg.org/]] | ||
* Documentation ffmpeg: (en)[[http://trac.ffmpeg.org/wiki]] | * Documentation ffmpeg: (en)[[http://trac.ffmpeg.org/wiki]] |