logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [19/08/2018 12:55]
kao Retrait liens obsoletes
doc:media:ffmpeg [07/12/2019 09:40]
smolski crop découpe et recadrage (en cours de test
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-get update && apt-get install libav-tools</​code>​+<code root>apt update && apt install libav-tools</​code>​
  
 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 31: Ligne 31:
  
 Ou directement en ligne de commande comme on va le détailler ci-dessous. Ou directement en ligne de commande comme on va le détailler ci-dessous.
 +
 +Une documentation est disponible directement dans l'​application,​ ou sur le site officiel : https://​ffmpeg.org/​
 +<code user>​ffmpeg -h</​code>​
  
 ===== Préambule ===== ===== Préambule =====
Ligne 57: Ligne 60:
 </​file>​ </​file>​
 Le D signifie la capacité à le lire, et E la possibilité d'​encapsuler dans le format. Le D signifie la capacité à le lire, et E la possibilité d'​encapsuler dans le format.
 +
 +Il est possible de voir les options du muxer ou demuxer disponibles pour un format spécifique comme par exemple avec //matroka// (.mkv) :
 +<code user>​ffmpeg -h muxer=matroska</​code>​
  
 ==== Les codecs ==== ==== Les codecs ====
Ligne 63: Ligne 69:
 De la même manière que pour les formats, ffmpeg liste les codecs qu'il est capable de gérer: De la même manière que pour les formats, ffmpeg liste les codecs qu'il est capable de gérer:
 <code user>​ffmpeg -codecs</​code>​ <code user>​ffmpeg -codecs</​code>​
 +
 +Il est possible de voir les options disponibles d'un encoder ou décoder pour un codec spécifique comme par exemple //vp9//:
 +<code user>​ffmpeg -h encoder=vp9</​code>​
  
 ==== Les filtres ==== ==== Les filtres ====
Ligne 68: Ligne 77:
 ffmpeg dispose aussi d'une base importante de filtres qui permettent de modifier le contenu de chaque flux, comme changer la résolution,​ modifier le volume d'une piste, incruster un logo etc.... ffmpeg dispose aussi d'une base importante de filtres qui permettent de modifier le contenu de chaque flux, comme changer la résolution,​ modifier le volume d'une piste, incruster un logo etc....
 <code user>​ffmpeg -filters</​code>​ <code user>​ffmpeg -filters</​code>​
 +Il est possible de voir les options disponibles d'un filtre spécifique comme par exemple avec //scale// :
 +<code user>​ffmpeg -h filter=scale</​code>​
 +
 +
  
 ==== Formats + Codecs + filtres ==== ==== Formats + Codecs + filtres ====
Ligne 83: Ligne 96:
 Heureusement le libre fournit plusieurs formats ainsi que plusieurs codecs libre de droit : Heureusement le libre fournit plusieurs formats ainsi que plusieurs codecs libre de droit :
   * Dans les formats citons: mkv, webm, ogv, ogg...   * Dans les formats citons: mkv, webm, ogv, ogg...
-  * Dans les codecs vidéos citons: vp9, vp8, theora(vp3),​ dirac...+  * Dans les codecs vidéos citons: ​AV1,vp9, vp8, theora(vp3),​ dirac...
   * Dans les codecs audio citons: flac, opus, vorbis et bien d'​autres...   * Dans les codecs audio citons: flac, opus, vorbis et bien d'​autres...
  
Ligne 227: Ligne 240:
 |-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) |
 +|-crf | permet de définir un niveau de qualité entre 0 et 63 (petit nombre = meilleure qualité mais plus de temps de calcul) (défaut 23)|
  
-== Note : ==+=== CRF (Constant Rate Factor) ​=
 + Il faut utiliser le CRF pour définir une qualité d'​image constante. L'​objectif est d'​obtenir une qualité d'​image stable entre plusieurs vidéos. À durée égale, la taille du fichier peut varier suivant si la vidéo est facilement compressible ou pas. Un dessin animé avec des aplats prendra moins de place qu'un match de foot avec des panoramiques sur 80000 spectateurs. L'​échelle crf est logarithmique entre 0 et 63, une différence de 6 points double ou divise par 2 environ la taille du fichier final. 
 +Un petit nombre égal une meilleure qualité mais plus de temps de calcul, la valeur est souvent par défaut 23.
  
-Il suffit ​de changer en sortie ​l'extension vidéo mkv en mp2mp4, etc... pour que la convertion se fasse dans le format vidéo indiqué;-)+Le choix du CRF dépends du type d'​image à encoder, de la résolution ​de l'imagede qualité souhaité ou encore de la taille du fichier désiré. Vous pouvez faire des tests sur des segments avant de procéder à l'​encodage total.
  
 ==== Encoder la vidéo en VP8 ==== ==== Encoder la vidéo en VP8 ====
Ligne 274: Ligne 290:
  
 Une documentation plus détaillée en anglais est disponible ici : https://​trac.ffmpeg.org/​wiki/​Encode/​H.265 et ici http://​x265.readthedocs.org/​en/​default/​ Une documentation plus détaillée en anglais est disponible ici : https://​trac.ffmpeg.org/​wiki/​Encode/​H.265 et ici http://​x265.readthedocs.org/​en/​default/​
 +
 +==== Encoder VOB en MKV ====
 +
 +  * https://​debian-facile.org/​viewtopic.php?​id=24453
  
 ==== Aspect 16:9 ==== ==== Aspect 16:9 ====
Ligne 280: Ligne 300:
 <code user>​ffmpeg -i film.mkv -aspect 16:9 -c copy film2.mkv</​code>​ <code user>​ffmpeg -i film.mkv -aspect 16:9 -c copy film2.mkv</​code>​
  
-==== CRF (Constant Rate Factor) ==== 
- 
-Il faut utiliser le CRF pour définir une qualité d'​image constante. L'​objectif est d'​obtenir une qualité d'​image stable entre plusieurs vidéos. À durée égale, la taille du fichier peut varier suivant si la vidéo est facilement compressible ou pas.\\ 
-<note tip>Une vidéo de 30mn avec beaucoup de scènes fixes, typiquement une conférence,​ sera beaucoup moins lourde qu'une vidéo de 30mn avec des explosions et effets stroboscopiques tout du long. L'​encodeur fait varier le bitrate pour s'​adapter à différentes scènes, en gardant comme objectif une certaine qualité d'​image.</​note>​ 
- 
-L'​encodage en 1 ou 2 passes en spécifiant un bitrate était utile à une certaine époque pour utiliser le maximum de place disponibles sur des supports comme le CD ou le DVD, typiquement obtenir la meilleure qualité de vidéo sur 700Mo exactement. En définissant un bitrate de 1000kb/s (vidéo+audio) pour une vidéo de 30mn00s, on obtient un fichier de 219,72 Mio exactement (ajouter quelques Mio pour le conteneur mkv). \\ 
-Si tu ne comptes pas utiliser ces formats de stockage, je te conseille vivement d'​utiliser le CRF. Pour info, un encodage en 2 passes ne fait que définir précisément un CRF lors de la première passe, et fait un encodage tout à fait normal en 2ème passe avec le CRF défini précédemment. 
- 
-Voir discussion avec un des devs du x264 : 
-  * https://​forum.doom9.org/​showthread.php?​t=143904 
-Par défaut le CRF est fixé à 23, ce qui donne une très bonne qualité. 
-  * Réduire ce facteur accroit la qualité de l'​image,​ 
-  * l'​augmenter abaisse la qualité de l'​image. 
-L'​échelle est logarithmique,​ une différence de 6 points double ou divise par 2 environ la taille du fichier final 
-  * Un CRF de 18-20 donne une qualité très proche des disques commerciaux,​ 
-  * un CRF de 26-28 est suffisant pour une conférence. 
-<note important>​Attention toutefois, la définition de la vidéo est importante. \\ 
-Une vidéo en 1080p à CRF 23 sera excellente, alors qu'une vidéo en 240p à CRF 23 pourrait faire apparaître des artefacts.</​note>​ 
  
 ===== Encoder le son ===== ===== Encoder le son =====
Ligne 418: Ligne 420:
  
 <note important>​FFmpeg ne semble pas respecter le nombre d'​image par seconde. Si les capacités de la machine le permettent, il pourra aller au delà, la vidéo sera donc ralentie.</​note>​ <note important>​FFmpeg ne semble pas respecter le nombre d'​image par seconde. Si les capacités de la machine le permettent, il pourra aller au delà, la vidéo sera donc ralentie.</​note>​
 +
 +===== cat - Regrouper plusieurs vidéos VOB en mp4 =====
 +
 +  * [[doc:​media:​libdvdcss2 | cat-convertion-en-mp4]]
  
 ===== Regrouper plusieurs vidéos mp4 en 1 seule ===== ===== Regrouper plusieurs vidéos mp4 en 1 seule =====
Ligne 510: Ligne 516:
 |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.
 +
  
 =====Liens===== =====Liens=====
doc/media/ffmpeg.txt · Dernière modification: 03/12/2023 17:28 par Croutons

Pied de page des forums

Propulsé par FluxBB