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
ffmpeg [Le 03/01/2016, 15:46]
cafecho [FFmpeg] Trusty et Avconv: précision
ffmpeg [Le 24/09/2023, 10:36] (Version actuelle)
146.70.196.140 [Utilisation]
Ligne 1: Ligne 1:
-{{tag>Precise Trusty ​audio vidéo encodage montage_vidéo capture_vidéo multimédia}}+{{tag>Focal audio vidéo encodage montage_vidéo capture_vidéo multimédia}}
  
 ---- ----
Ligne 6: Ligne 6:
 ====== FFmpeg ====== ====== FFmpeg ======
  
-**FFmpeg** est une application de lecture et encodage de vidéo. Très puissante comme son alter ego [[Mencoder]],​ il assure en [[;​commande_shell|ligne de commande]] la possibilité de convertir les fichiers vidéo d'un format à un autre+**FFmpeg** est une application de lecture et encodage de vidéo. Très puissante comme son alter ego [[Mencoder]],​ il assure en [[;​commande_shell|ligne de commande]] la possibilité de convertir les fichiers vidéo d'un format à un autre, ​dont le **mts** et m2ts.
- +
-<​note>​Pour la [[:​versions|version d'​Ubuntu]] [[:​trusty|Trusty Tahr 14.04]], **FFmpeg** est remplacée par son [[wpfr>​fork]] [[avconv]].</​note>​+
  
 ===== Utilisation graphique ===== ===== Utilisation graphique =====
  
 Il existe des interfaces graphiques permettant de simplifier grandement le transcodage de fichiers : Il existe des interfaces graphiques permettant de simplifier grandement le transcodage de fichiers :
-  * [[http://​ekd.tuxfamily.org/​|EKD]] - EKD est un logiciel libre qui se propose de faire des opérations de post-production aussi bien pour des vidéo, que pour des images. En ce qui concerne les images, EKD fait du traitement par lots. +  * [[http://​ekd.tuxfamily.org/​|EKD]] - EKD est un logiciel libre qui se propose de faire des opérations de post-production aussi bien pour des vidéos, que pour des images. En ce qui concerne les images, EKD fait du traitement par lots. 
-  * [[WinFF]] - Ce logiciel ​vous permet de choisir parmi une liste de profils un encodage vidéo qui conviendra à vos attentes. Par exemple si vous voulez faire une vidéo compatible Blackberry, il ne vous sera même pas nécessaire de savoir quel est l'​encodage interne utilisé+  * [[WinFF]] - Cette application ​vous permet de choisir parmi une liste de profils un encodage vidéo qui conviendra à vos attentes. Par exemple si vous voulez faire une vidéo compatible Blackberry, il ne vous sera même pas nécessaire de savoir quel est l'​encodage interne utilisé.
-  * [[:​arista|Arista Transcoder]] ​ - Type WinFF , avec une interface.+
  
 D'​autres interfaces graphiques ont été créées pour répondre à des attentes spécifiques : D'​autres interfaces graphiques ont été créées pour répondre à des attentes spécifiques :
-  * [[Mobile Media Converter]] - Se propose quant à lui de transcoder vos vidéo ​pour les appareils de lecture vidéo mobiles tels que les téléphones portables les iPod et les lecteurs MP3/MP4. +  * [[Mobile Media Converter]] - Se propose quant à lui de transcoder vos vidéos ​pour les appareils de lecture vidéo mobiles tels que les téléphones portables les iPod et les lecteurs MP3/MP4. 
- +  * [[:​DVDstyler]] - Transcode pour construire des DVD vidéos avec des menus interactifs. 
-D'​autres ​logiciels ​permettent de faire des modifications plus profondes à la vidéo et utilisent FFMpeg pour rendre la vidéo finale :+  * [[:Devede]] - Se propose de transcoder puis graver vos vidéos aux formats CD/DVD. 
 +D'​autres ​applications ​permettent de faire des modifications plus profondes à la vidéo et utilisent FFMpeg pour rendre la vidéo finale :
   * [[Avidemux]] - Sa principale particularité est de permettre l'​application de filtres à la vidéo comme par exemple enlever les bandes noires d'une vidéo. Concernant le transcodage il se débrouille très bien et permet l'​utilisation des principaux codecs en lecture et en écriture (équivalent de Virtualdub).   * [[Avidemux]] - Sa principale particularité est de permettre l'​application de filtres à la vidéo comme par exemple enlever les bandes noires d'une vidéo. Concernant le transcodage il se débrouille très bien et permet l'​utilisation des principaux codecs en lecture et en écriture (équivalent de Virtualdub).
-  * [[Cinelerra]] - Logiciel ​de montage extrêmement ​puissant, ne convient pas aux débutants et ne propose pas une interface simple d'​utilisation en matière de transcodage. Réservez-le à vos effets spéciaux :-D +  * [[Cinelerra]] - Application ​de montage extrêmement ​puissante, ne convient pas aux débutants et ne propose pas une interface simple d'​utilisation en matière de transcodage. Réservez-la à vos effets spéciaux :-D 
-  * [[Kino]] - Logiciel ​de montage et de transcodage ​destiné ​aux débutants. +  * [[Kino]] - Application ​de montage et de transcodage ​destinée ​aux débutants. 
-  * [[http://​sourceforge.net/​projects/​outreel/​files/​|Outreel]] - Une autre GUI pour FFMpeg.+  * [[https://​sourceforge.net/​projects/​outreel/​files/​|Outreel]] - Une autre interface graphique ​pour FFMpeg.
  
-=====Pré-requis===== 
-  * Disposer des [[:​sudo|droits d'​administration]];​ 
-  * Disposer d'une connexion à Internet configurée et activée. 
  
 ===== Installation ===== ===== Installation =====
  
-==== Via les dépôts officiels==== +[[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt>​ffmpeg]]**
-<note important>​__[[:​trusty|Particularité pour Ubuntu Trusty 14.04]]:​__\\ +
-**FFmeg** n'est pas disponible dans les [[:​depots|dépôts officiels]] pour [[:​trusty|Trusty 14.04]]. Il est remplacé par son [[wpfr>​fork]] [[:avconv]] (présent dans le paquet **libav-tools**). Si vous souhaitez utiliser **FFmpeg** à la place de [[:avconv]] il est possible de l'​installer [[#Via un PPA pour Trusty 14.04 uniquement|depuis un PPA]]. +
-</​note>​ +
-[[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt>ffmpeg|ffmpeg]]**+
  
-__Note__: les packages par défaut ne contiennent pas les codecs les plus classiques comme "​mpeg4",​ pour cela il faut [[:​tutoriel:​comment_installer_un_paquet|installer spécifiquement]] **[[apt>​libavcodec54,​libavdevice53,​libavformat54,​libavutil52,​libpostproc52,​libswscale2,​ffmpeg|libavcodec54 libavdevice53 libavformat54 libavutil52 libpostproc52 libswscale2 ffmpeg]]**+===== Utilisation =====
  
-====Via un PPA pour Trusty 14.04 uniquement==== +**Tout ce qui suit parlera de la partie manipulation de fichier Audio Video.**
-<note important>​Les [[:​PPA|dépôts PPA]] sont des [[:​dépôts]] non-officiels et installer un paquet hors des [[:​dépôts]] officiels peut présenter un risque d'​instabilité pour votre système</​note>​+
  
-Pour utiliser ​**FFmpeg** sous [[:​trusty|Ubuntu Trusty 14.04]]: +Cependant, il est utile de savoir que **ffmpeg** intègre par défaut un lecteur minimaliste audio-video **ffplay** utilisable depuis ​le terminal.
-  ​[[:​ppa|Ajoutez le PPA]] **ppa:​kirillshkrogalev/​ffmpeg-next**((https://​launchpad.net/​~kirillshkrogalev/​+archive/​ubuntu/​ffmpeg-next)) à vos sources de logiciels;​ +
-  - [[:​tutoriel:​comment_modifier_sources_maj#​recharger_la_liste_des_paquets|Rechargez la liste de vos paquets]];​ +
-  - [[:​tutoriel:​comment_installer_un_paquet|Installez ​le paquet]] **[[apt>​ffmpeg]]** +
-Ou bien dans un [[:​terminal]],​ saisir les [[:​commande_shell|commandes]] suivantes: <​code>​sudo add-apt-repository ppa:​kirillshkrogalev/​ffmpeg-next +
-sudo apt-get update +
-sudo apt-get install ffmpeg</​code>​+
  
-==== Par compilation ==== +Attention, minimaliste ne veut pas dire peu performant.\\ 
-<note important>​ +Avec toutes les possibilités ​de ffmpeg vous pouvez aller bien plus loin que n'importe quel lecteur.\\ 
-Cette méthode permet d'​installer la toute dernière version ​de FFmpeg, mais celle-ci provenant du serveur [[git|Git]],​ elle est toujours en développement,​ ce qui signifie qu'elle peut se révéler instableL'​utilisation de cette version est donc à vos risques et périls.</​note>​+Seul ressource pour cela ... connaitre les arguments ​à entrer dans la commande terminal.
  
-Il peut être intéressant de compiler FFmpeg afin de bénéficier des dernières optimisations ​et de manipuler des formats qui n'​étaient pas encore supportés. Par exemple ​pour les vidéos haute définition encodées avec x264 qui demandent beaucoup moins de ressources dans les dernières versions(Voir le [[http://​ffmpeg.mplayerhq.hu/​changelog.html|changelog]] de FFmpeg) +En bref : plus léger, plus simple ​et plus qualitatif par défaut. Par choix, plus tout ce que vous voulez ​pour aller plus loin.
-Pour les détails de la compilation,​ rendez-vous à la page : [[tutoriel:​comment_compiler_ffmpeg|Comment compiler FFmpeg]]\\+
  
  
-==== FFmpeg et le support AAC ==== +**Utilisation ​pour lire UN SEUL fichier Audio ou Video**
-Référez-vous à la méthode par compilation : [[tutoriel:​comment_compiler_ffmpeg|Comment compiler FFmpeg]]\\ +
-Et voilà, la version compilée devrait permettre de compresser vos vidéo ​pour la  PSP.+
  
 +Tapez dans le terminal ce qui suit et appuyez sur la touche "​Entrée"​ du clavier\\
  
-===== Utilisation ===== +__Pour un fichier video__\\ 
-//**pré-requis** : savoir utiliser un [[:terminal]]//+<​code>​ffplay "​le_chemin_du_fichier_que_je_veux_lire.mkv"​ (ou .mp4, etc.;​l'​extension du fichier à lire)</code> 
 + 
 +__Pour un fichier audio__\\ 
 +<​code>​ffplay "​le_chemin_du_fichier_que_je_veux_lire.wav"​ (ou .aac, etc.;​l'​extension du fichier à lire)</code> 
 + 
 +//NB les guillemets sont importants car ils vous éviteront une erreur si le chemin a des espaces ou des caractères spéciaux//​ 
 + 
 +Pour arrêter la lecture appuyer sur "​Echap"​ ou "​q"​\\ 
 +**IMPORTANT** Quitter proprement le terminal en tapant ​ //​exit// ​ une fois pour terminer le processus son, et une autre fois pour fermer le terminal\\ 
 +\\ 
 + 
 +**Utilisation pour lire plusieurs fichiers audio ou video CONTENUS __DANS UN SEUL ET MEME REPERTOIRE__**\\ 
 + 
 + 
 +Tapez dans le terminal ce qui suit et appuyez sur la touche "​Entrée" ​ du clavier\\ 
 + 
 +<​code>​cd /​le_chemin_de_votre_repertoire_contenant_les_fichiers_a_lire</​code>​ 
 +puis\\ 
 +<​code>​for f in *.wav ; do ffplay ​-hide_banner -nodisp -autoexit "​$f";​ done</​code>​ 
 + 
 +// si vous lisez une video supprimez dans la commande ci-dessus l'​option -nodisp qui indique de ne pas afficher la fenêtre du graph audio//\\ 
 +//​-hide_banner bloque l'​affichage des infos sur ffmpeg//​\\ 
 +//-autoexit ferme ffplay quand le fichier est lu//\\ 
 +//(.wav à remplacer par votre format .flac .ogg .mp3 .mp4 .m4a .aac .opus .mkv .webm etc.)// 
 + 
 +Ctrl + C pour passer au morceau suivant\\ 
 +Ctrl + Z pour arrêter\\ 
 +**IMPORTANT** Quitter proprement le terminal ​en tapant  ​//exit// ​ une fois pour terminer le processus son, et une autre fois pour fermer le terminal\\ 
 +\\
  
-FFMpeg s'​utilise en [[:​commande_shell|ligne de commande]] dans un **[[terminal]]**.\\ +**Utilisation pour lire TOUT LE CONTENU D'UN RÉPERTOIRE contenant PLUSIEURS DOSSIERS avec des fichiers audio**
-Ce programme demande un peu de patience pour le domestiquer,​ mais nous allons essayer de vous expliquer son fonctionnement bien comme il faut !+
  
-Première choseil faut passer des instructions au programme pour fonctionner+<​code>​find /​chemin_du_repertoire/​ma_musique/​ -type f > filelist.txt && while [ 1 ]; do SDL_AUDIODRIVER=alsa AUDIODEV=hw:​2,0 ffplay -hide_banner -nodisp -autoexit "`shuf -n 1 filelist.txt`"; done</​code>​\\ 
-Une instruction est un texte, le plus souvent précédé d'un tiretqui permet d'​expliquer à un programme en ligne de commande ​ce que l'on veut de lui ! +NB //​SDL_AUDIODRIVER=alsa AUDIODEV=hw:​2,0// sert à contourner ​le mixeur du PC pour envoyer cela directement sur la sortie USBici hw:2,0; trouvez la vôtre avec la commande\\ 
-Les instructions peuvent être dans l'​ordre que vous voulez ! +<​code>​cat /​proc/​asound/​cards</​code>​ 
-Mais vous ne devez pas mélanger l'​instruction et l'​information que l'on veut passer à l'​instruction. +Ctrl + C pour passer au morceau suivant\\ 
-Par exemple :  +Ctrl + Z pour arrêter\\ 
-<​code>​-vcodec copy</​code>​ +**IMPORTANT** Quitter proprement le terminal en tapant ​ //​exit// ​ une fois pour terminer le processus sonet une autre fois pour fermer le terminal\\
--vcodec commence par un tiretil est donc l'​instruction,​ "​copy"​ par contre est ce que l'on veut dire à "​-vcodec"​ il faut donc qu'il soit précisé juste après !+
  
-Pour en savoir plus, analysez ​les [[#​exemples ​de conversions]] en bas de page et dans le courant ​du texte !+J'​invite ​les pros de ffmpeg à ajouter une rubrique à la fin de cette page pour les commandes détaillées de ffplay en ce qui concerne les fichiers videos ​et la sélection directe des langues et sous-titres ainsi que l'​augmentation ​du format pour supprimer les bandes noires et utiliser tout l'​écran.\\
  
 ==== Commencer sur une bonne base ==== ==== Commencer sur une bonne base ====
Ligne 87: Ligne 95:
  
 Pour identifier le format d'un fichier multimedia (audio et/ou video), tapez : Pour identifier le format d'un fichier multimedia (audio et/ou video), tapez :
-  ffmpeg -i fichier 2>&1 | egrep "​Seems|Input|Duration:​|Stream"​+  ffmpeg -i fichier 2>&1 | grep -E "​Seems|Input|Duration:​|Stream"​
 <​code>​ <​code>​
 Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1) Seems stream 1 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 25.00 (25/1)
Ligne 98: Ligne 106:
 Une commande finale ressemblera à ça : Une commande finale ressemblera à ça :
 <​code>​ffmpeg -i "​vidéo d'​entrée.avi"​ -threads 4 -f matroska -vcodec libvpx -vb 1350000 -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 15 -qmax 30 -acodec libvorbis -ab 128k -ar 44100 -ac 2 "​vidéo de sortie.mkv"</​code>​ <​code>​ffmpeg -i "​vidéo d'​entrée.avi"​ -threads 4 -f matroska -vcodec libvpx -vb 1350000 -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 15 -qmax 30 -acodec libvorbis -ab 128k -ar 44100 -ac 2 "​vidéo de sortie.mkv"</​code>​
 +
 +Voici un exemple concret qui converti un fichier **mts** en **avi** : <​code>​ffmpeg -i input.mts -vcodec mjpeg -b 100M -acodec pcm_s16be output.avi</​code>​
  
 ==== Connaître FFmpeg ==== ==== Connaître FFmpeg ====
Ligne 163: Ligne 173:
 C'​est-à-dire que si le fichier final se termine par **.mkv** le format sera automatiquement mis en **matroska** sans vous demander votre avis. C'​est-à-dire que si le fichier final se termine par **.mkv** le format sera automatiquement mis en **matroska** sans vous demander votre avis.
  
-Mais vous pouvez-vous exprimer haut et fort ! en précisant le format via l'​option **-f**.+Mais vous pouvez vous exprimer haut et fort (!en précisant le format via l'​option **-f**.
 Vous pouvez faire suivre "​-f"​ de tous les formats que vous voulez suivant la liste que vous donne **ffmpeg -formats**. Vous pouvez faire suivre "​-f"​ de tous les formats que vous voulez suivant la liste que vous donne **ffmpeg -formats**.
 Par exemple : Par exemple :
Ligne 175: Ligne 185:
 <note important>​ Cette commande n'​extraira pas la piste audio //​originale//,​ mais la **transcodera en mp3**, ce qui a des effets néfastes sur la qualité (mais peut servir un intérêt de compatibilité). <note important>​ Cette commande n'​extraira pas la piste audio //​originale//,​ mais la **transcodera en mp3**, ce qui a des effets néfastes sur la qualité (mais peut servir un intérêt de compatibilité).
 </​note>​ </​note>​
-On lui préférera de manière générale cette méthode pour **extraire la piste audio originale (sans transcodage) de la vidéo**: +On lui préférera de manière générale cette méthode pour **extraire la piste audio originale (sans transcodage) de la vidéo** : 
-  * D'​abord se renseigner sur le type de flux audio, via [[mediainfo-gui|Mediainfo]] ou la commande+  * D'​abord se renseigner sur le type de flux audio, via [[mediainfo-gui|Mediainfo]] ou la commande ​:
  
   ffmpeg -i <votre vidéo>   ffmpeg -i <votre vidéo>
  
-<note utile>​N'​oubliez pas que vous pouvez glisser-déposer votre fichier dans le terminal plutôt que de recopier entièrement son chemin d'​accès. ​Ça limite le risque d'​erreurs avec les espaces etc. ;​-)</​note>​+<note utile>​N'​oubliez pas que vous pouvez glisser-déposer votre fichier dans le terminal plutôt que de recopier entièrement son chemin d'​accès. ​Cela limite le risque d'​erreurs avec les espaces etc. ;​-)</​note>​
 Et regarder l'​avant-dernière ligne de ce qui ressort, par exemple : Et regarder l'​avant-dernière ligne de ce qui ressort, par exemple :
  
Ligne 187: Ligne 197:
   At least one output file must be specified   At least one output file must be specified
  
-  * Puis appuyer sur Flèche haut (pour ré-entrer automatiquement la commande précédente) ou la retaper puis compléter:+  * Puis appuyer sur Flèche haut (pour ré-entrer automatiquement la commande précédente) ou la retaper puis compléter :
  
   ffmpeg -i <votre fichier video> -vn -acodec copy '​(destination et) nom du fichier audio créé'​.EXTENSION   ffmpeg -i <votre fichier video> -vn -acodec copy '​(destination et) nom du fichier audio créé'​.EXTENSION
  
-Remplacer EXTENSION par: +Remplacer EXTENSION par : 
-  * **.m4a** (préférable) ou **.mp4** pour un flux audio en **aac** (comme dans l'​exemple),​ la majorité des vidéos Flash (FLV) récupérées d'​Internet ainsi que de nombreux MKV utilisant ce format +  * **.m4a** (préférable) ou **.mp4** pour un flux audio en **aac** (comme dans l'​exemple),​ la majorité des vidéos Flash (FLV) récupérées d'​Internet ainsi que de nombreux MKV utilisant ce format, 
-<note important>​ Attention à ne pas mettre "​.aac"​ comme extension, sous peine d'​avoir un fichier en //raw aac// qui ne sera pas (ou problématiquement) lisible. Le AAC doit être placé dans un [[https://​fr.wikipedia.org/​wiki/​Format_conteneur|conteneur]] pour être lu, d'où le "​.m4a"​ qui est la version audio du MP4 (qui pourrait convenir aussi, mais bon... Vous voulez un fichier audio, donc autant faire les choses bien :​-D)</​note>​+<note important>​ Attention à ne pas mettre "​.aac"​ comme extension, sous peine d'​avoir un fichier en //raw aac// qui ne sera pas (ou problématiquement) lisible. Le AAC doit être placé dans un [[https://​fr.wikipedia.org/​wiki/​Format_conteneur|conteneur]] pour être lu, d'où le "​.m4a"​ qui est la version audio du MP4 (qui pourrait convenir aussi, mais bon... Vous voulez un fichier audio, donc autant faire les choses bien :-D).</​note>​
   * **.mp3** pour un flux audio en **mp3**,   * **.mp3** pour un flux audio en **mp3**,
   * **.ogg** pour un flux audio en **vorbis**...   * **.ogg** pour un flux audio en **vorbis**...
Ligne 225: Ligne 235:
 2 étant le nombre de voies (2 : stéréo, 6 : 5.1, etc ...) 2 étant le nombre de voies (2 : stéréo, 6 : 5.1, etc ...)
  
 +Pour supprimer l'​audio
 +<​code>​-an</​code>​
 ==== Instructions d'​encodage vidéo ==== ==== Instructions d'​encodage vidéo ====
  
-C'est là ou ça se complique car il y a plein de codecs ​vidéos, et ils ont souvent des instructions obscures, même pour les utilisateurs les plus avertis... Ce qui est... Déroutant...+C'est là où ça se complique car il y a plein de codecs ​vidéo, et ils ont souvent des instructions obscures, même pour les utilisateurs les plus avertis... Ce qui est... Déroutant...
  
 Mais ne vous inquiétez pas, nous allons vous expliquer comment éviter les plus gros pièges ! Mais ne vous inquiétez pas, nous allons vous expliquer comment éviter les plus gros pièges !
Ligne 242: Ligne 254:
 Ce sont des "​packs"​ d'​options pré-configurées. Ce sont des "​packs"​ d'​options pré-configurées.
 <​code>​-vpre</​code>​ <​code>​-vpre</​code>​
-suivi d'un //preset// qui donnera les paramètres par défaut de l'​encodeur à FFMpeg ​suivant plusieurs profils.+suivi d'un //preset// qui donnera les paramètres par défaut de l'​encodeur à ffmpeg ​suivant plusieurs profils.
  
-Les //preset// gérant la complexité et les //feature// activés dans le fichier vidéo de sortie : +Les //presets// gérant la complexité et les //features// activés dans le fichier vidéo de sortie : 
-  * baseline : à utiliser si votre matériel n'​arrive pas à décoder les fichiers encodés avec les autres //preset//.+  * baseline : à utiliser si votre matériel n'​arrive pas à décoder les fichiers encodés avec les autres //presets//.
   * main : inférieur au profile //high//   * main : inférieur au profile //high//
   * ipod320   * ipod320
Ligne 251: Ligne 263:
 Le profile //high// n'est pas disponible en option car il est le //preset// par défaut. Le profile //high// n'est pas disponible en option car il est le //preset// par défaut.
  
-Les //preset// gérant le temps nécessaire à l'​encodage :+Les //presets// gérant le temps nécessaire à l'​encodage :
   * ultrafast : le plus rapide, mais donne la moins bonne qualité d'​image.   * ultrafast : le plus rapide, mais donne la moins bonne qualité d'​image.
   * superfast   * superfast
Ligne 263: Ligne 275:
   * placebo : le plus lent, mais pas la meilleure qualité (optimisé pour les benchmarks)   * placebo : le plus lent, mais pas la meilleure qualité (optimisé pour les benchmarks)
  
-Les //preset// gérant le temps nécessaire à un encodage sans aucune perte de qualité d'​image :+Les //presets// gérant le temps nécessaire à un encodage sans aucune perte de qualité d'​image :
   * lossless_max   * lossless_max
  ​*<​del>​* lossless_ultrafast</​del>​  ​*<​del>​* lossless_ultrafast</​del>​
Ligne 278: Ligne 290:
 == codec libvpx == == codec libvpx ==
  
-Le codec libvpx (c'est à dire VP8) propose des options par défaut de très mauvaise qualité...+Le codec libvpx (c'est-à-dire VP8) propose des options par défaut de très mauvaise qualité...
 Il va falloir préciser quelques options non obligatoires,​ mais grandement conseillées. Il va falloir préciser quelques options non obligatoires,​ mais grandement conseillées.
  
Ligne 293: Ligne 305:
 <​code>​-b</​code>​ <​code>​-b</​code>​
  
-Le bitrate peut être préciser ​en bits/s ou en kbits/s :+Le bitrate peut être précisé ​en bits/s ou en kbits/s :
 <​code>​-b 2700000</​code>​ <​code>​-b 2700000</​code>​
 <​code>​-b 2700k</​code>​ <​code>​-b 2700k</​code>​
Ligne 314: Ligne 326:
 === Encodage 2-pass === === Encodage 2-pass ===
  
-L'​encodage double ​passes, multi passes, 2pass ou autres, est une technique d'​encodage qui mêle les deux techniques d'​encodage précédentes.+L'​encodage double ​passe, multi-passes, 2pass ou autres, est une technique d'​encodage qui mêle les deux techniques d'​encodage précédentes.
  
 Cette technique permet d'​encoder une première fois à bitrate constant pour faire un index des moments qui vont être encodés avec une qualité exécrable. Cette technique permet d'​encoder une première fois à bitrate constant pour faire un index des moments qui vont être encodés avec une qualité exécrable.
Ligne 327: Ligne 339:
 Il faut aussi préciser un quantiser minimum et maximum ! Pourquoi ? Parce que certains codecs comme le VP8 ont des bugs si on ne le fait pas... Il faut aussi préciser un quantiser minimum et maximum ! Pourquoi ? Parce que certains codecs comme le VP8 ont des bugs si on ne le fait pas...
  
-Certains codecs ont leur maxi à 31 d'autre plus haut. Comme le VP8 et le x264 qui vont jusqu'​à 51.+Certains codecs ont leur maxi à 31 d'autres ​plus haut. Comme le VP8 et le x264 qui vont jusqu'​à 51.
  
 Ensuite, -pass 1 signifie que nous sommes en train d'​effectuer la première passe. et passlogfile est le fichier "​pass"​ que l'on écrira temporairement. Ensuite, -pass 1 signifie que nous sommes en train d'​effectuer la première passe. et passlogfile est le fichier "​pass"​ que l'on écrira temporairement.
Ligne 361: Ligne 373:
  
  
-| qqvga   | qvga    | vga     | svga    | wvga    |  +| qqvga   | qvga    | vga     | svga    | wvga    | 
-| 160x120 | 320x240 | 640x480 | 800x600 | 852x480 | +| 160x120 | 320x240 | 640x480 | 800x600 | 852x480 |
  
 | xga      | uxga      | sxga      | wxga     | wsxga     | wuxga     | qxga      | woxga     | qsxga     | wqsxga ​   | wquxga ​   | | xga      | uxga      | sxga      | wxga     | wsxga     | wuxga     | qxga      | woxga     | qsxga     | wqsxga ​   | wquxga ​   |
Ligne 401: Ligne 413:
  
 ==== Exemples de conversions ==== ==== Exemples de conversions ====
 +
 +=== Convertir un fichier video pour faciliter le partage sur les clouds, réseaux sociaux et messageries ===
 +Cette conversion est utile pour réduire de façon drastique la taille des fichiers en conservant une qualité suffisante pour le regarder sur un téléphone.
 +<​code>​ffmpeg -i FichierSource.MOV -vcodec libx264 FichierResultat.mp4</​code>​
 +Si la source est en HD, vous pouvez réduire la définition pour réduire de façon importante la taille du fichier :
 +<​code>​ffmpeg -i FichierSourceHD.MOV -s wvga -vcodec libx264 FichierResultat.mp4</​code>​
 +(on peut remplacer //wvga// par //hd720//, cf. [[wpfr>​Format_d'​affichage_vidéo]]… ou définir la taille//​x//​×//​y//,​ mais attention de respecter le ratio
  
 === Convertir une vidéo en WebM (VP8+Vorbis) en deux passes === === Convertir une vidéo en WebM (VP8+Vorbis) en deux passes ===
Ligne 409: Ligne 428:
 <​code>​avconv -i '​fichier source'​ -threads 0 -vcodec libvpx -b 1500k -minrate 0 -maxrate 9000k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -an  -pass 1 -passlogfile pass1.fpf pass1.webm <​code>​avconv -i '​fichier source'​ -threads 0 -vcodec libvpx -b 1500k -minrate 0 -maxrate 9000k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -an  -pass 1 -passlogfile pass1.fpf pass1.webm
 avconv -i '​fichier source'​ -threads 0 -vcodec libvpx -b 1500k -minrate 0 -maxrate 9000k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -acodec libvorbis -ab 192k -pass 2 -passlogfile pass1.fpf "​fichier final.webm"</​code>​ avconv -i '​fichier source'​ -threads 0 -vcodec libvpx -b 1500k -minrate 0 -maxrate 9000k -rc_lookahead 16 -keyint_min 0 -g 360 -skip_threshold 0 -level 116 -qmin 1 -qmax 51 -acodec libvorbis -ab 192k -pass 2 -passlogfile pass1.fpf "​fichier final.webm"</​code>​
 +
 +===Convertir un fichier webm en .mp4===
 +Le format [[webm|webm]] est largement utilisé sur internet, en particulier pour youtube. Vous pouvez télécharger ces vidéos de différentes façons, par exemple via [[youtube-dl|youtube-dl]]. Pour voir ces vidéos sur une télévision,​ il vous faudra sans doute modifier le format (il n'est généralement pas reconnu). Pour passer la vidéo webm en .mp4 :
 +
 +<​code>​ffmpeg -i ma-video.webm ma-video.mp4</​code>​
 +La qualité de sortie est alors en qualité moyenne.
 +
 +Vous pouvez spécifier une autre qualité de sortie avec l'​option **-crf**. "​0"​ donne la meilleur qualité (et le plus gros fichier), "​51"​ donne la moins bonne qualité (et le plus petit fichier). Pour une qualité maximum (mais le fichier peut-être 10 fois plus gros que le webm initial !) :
 +
 +<​code>​ffmpeg -i ma-video.webm -crf 0 ma-video.mp4</​code>​
  
 === Convertir une vidéo en x264 en qualité constante === === Convertir une vidéo en x264 en qualité constante ===
Ligne 417: Ligne 446:
 === Convertir le format FLV en AVI === === Convertir le format FLV en AVI ===
  
-Cette conversion est utile si vous téléchargez des vidéos en streaming (YouTube, Google Video, etc.).+Cette conversion est utile si vous téléchargez des vidéos en streaming (YouTube, Google Video, framatube.org !-), etc.).
 <​code>​ffmpeg -i nom_du_fichier.flv -f avi nom_du_fichier.avi</​code>​ <​code>​ffmpeg -i nom_du_fichier.flv -f avi nom_du_fichier.avi</​code>​
 +
 +Si vous voulez télécharger une vidéo depuis Youtube ou d'​autres sites, voir aussi : [[:​telecharger_streaming]]
  
 === Convertir le format AVI en MPEG === === Convertir le format AVI en MPEG ===
Ligne 440: Ligne 471:
  
 Ce script permet d'​automatiser la conversion de vidéos de plusieurs formats ( Mpeg4, Avi, Flv etc... ) vers le format MP3. Ce script permet d'​automatiser la conversion de vidéos de plusieurs formats ( Mpeg4, Avi, Flv etc... ) vers le format MP3.
-Plusieurs formats de vidéos peuvent se trouver dans le même dossier au moment de la conversion. ​+Plusieurs formats de vidéos peuvent se trouver dans le même dossier au moment de la conversion. 
 +<file bash videos_to_mp3_converter.sh>​ 
 +#!/bin/bash
  
-<​code>​ #!/bin/bash +echo videos to mp3 converter!
-#Fichier "​Conversion Script " ​+
  
-echo "Création ​de la liste de fichiers..." +VIDEO_DIR="$HOME/​Vidéos"​ # mettez le chemin vers votre dossier ​de vidéos 
-cd CHEMIN_VERS_LES_VIDEOS ( par exemple ~/Downloads ou ~/Videos ) +MUSIQUE_DIR="$HOME/Musique" ​# mettez le chemin vers votre dossier ​de musiques/​sons 
-ls *.* > to_convert + 
-echo "Préparation ​de ffmpeg..."​ +cd "$VIDEO_DIR" ​|| exit 1 
-while read line  ​ + 
-do +for FILE in *.*; do 
- echo ​"Traitement de $line programmé+ if file --mime-type ​"$FILE" ​| grep -qF video; then 
-done < to_convert + echo -e "Processing file '​$FILE'​
-#On s'​assure que chaque vidéo a été détectée + ffmpeg ​-i "${FILE}" -vn -ab 128k -ar 44100 -"$MUSIQUE_DIR""​/""​${FILE%.*}.mp3" ​2> /dev/null 
-while read line + fi 
-do +done 
- sed --"s/(//g" ​to_convert +</file> 
- sed -i -e "s/)//g" ​to_convert ​ + 
- sed -i -e "s/\[//g" ​to_convert  +=== Convertir tous les fichiers Windows Media Audio ( WMA ) en mp3  === 
- sed --e "​s/​\]//​g"​ to_convert  + 
- sed --"s/\ /\./g" ​to_convert +Dans un dossier contenant des fichiers au format wma. 
-done < to_convert +La boucle for lance la conversion ​des fichiers. 
-#Ceci permet de contourner le problème posé par d'​éventuels caractères spéciaux dans le titre de la vidéo traitée ( tels que "[","]","​(","​)"​ ou " ") +Il suffira de supprimer les fichier wma une fois la conversion terminée. 
-echo "​_______________________________________________"​ + 
-while read line +<​code>​for i in *.wma; do ffmpeg -i "$i" ​-ab 256k "${i%wma}.mp3"done</​code>​
-do +
- rename=`echo ​${line%%.*}+
- original=`ls CHEMIN_VERS_LES_VIDEOS| grep $rename` +
- mv CHEMIN_VERS_LES_VIDEOS/​"$original"​ CHEMIN_VERS_LES_VIDEOS/"​$line"​ +
- echo "$line loaded"​ +
-done < to_convert +
-echo "​______________________________________________"​ +
-echo "La conversion ​a démarré : " +
-while read line  +
-do +
- sdot=`echo ${line%.*}` +
- echo "​CONVERSION EN COURS :[ $line ]" +
- ffmpeg ​-ab 192k -i `echo "$line"` `echo "$sdot.mp3"` 1>​.ffmpeg_last_log 2>/​dev/​null +
-        #Le fichier log de la conversion seront stockés dans le dossier courant sous le nom "​.ffmpeg_last_log"​ +
- mv $line /​RÉPERTOIRE OU SERONT STOCKÉES LES VIDÉOS SI ON SOUHAITE LES CONSERVER ( COMMENTER POUR ENLEVER ) +
- mv "​$sdot.mp3"​ /​RÉPERTOIRE OU SERA DÉPLACÉ LE FICHIER *.MP3 GÉNÉRÉ ( COMMENTER POUR ENLEVER ) +
- echo "→ OK !" +
-done < to_convert +
-rm to_convert +
-</​code>​ +
-==== Utilisations spécifiques ====+
  
 === Convertir le format AVI en MP4 (PSP) === === Convertir le format AVI en MP4 (PSP) ===
Ligne 498: Ligne 509:
  
 Pour avoir une bonne qualité avec une résolution 480×272, avec un débit de 768 kbps, //​firmware//​ conseillé 3.71 ou supérieur : Pour avoir une bonne qualité avec une résolution 480×272, avec un débit de 768 kbps, //​firmware//​ conseillé 3.71 ou supérieur :
-<​code>​ffmpeg -i video_en_entrée.avi -r 29.97 -vcodec h264 -s 640x480 -aspect 16:9 -flags +loop -cmp +chroma -deblockalpha 0 -deblockbeta 0 -b 768k -maxrate 1500k -bufsize 4M -bt 256k -refs 1 -bf 3 -coder 1 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8+partb8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec aac -ab 112k -ar 48000 -ac 2 -s 480x272 -aspect 4:3 video_en_sortie.mp4 ​</​code>​+<​code>​ffmpeg -i video_en_entrée.avi -r 29.97 -vcodec h264 -s 640x480 -aspect 16:9 -flags +loop -cmp +chrom</​code>​
  
-Créer une vignette de la vidéo qui vient d'​être encodé au format 160x120 ​en jpg.+=== Convertir un mkv en gif animé ===
  
-  * -ss 5 : Va à la 5ème seconde de la vidéo +<​code>​ffmpeg ​-i input.mkv ​-pix_fmt rgb24 -r 10 -s 320x240 output.gif</​code>​
-  * -vframes 1 : Pour n'​avoir qu'une image+
  
-<​code>​ffmpeg -i video.mp4 -f image2 -ss 5 -vframes 1 -s 160x120 video.jpg</​code>​+Résumé des options
  
-=== Convertir un fichier 3GP ou AMR en MPEG ou MP3 ===+-pix_fmt rgb24 pour '​encoder'​ le gif.
  
-Les fichiers ''​.AMR''​ (Pour //Adaptive Multi-Rate Codec//, ou Codec multi-débit adaptatif) sont des fichiers sons spécifiques aux téléphones mobiles, et deviennent de plus en plus répandus au fur et à mesure du développement des dictaphones intégrés aux portables et des téléphones-baladeurs,​ tout comme les fichiers ''​.3GP''​ (Pour //3rd Generation Partnership Project//, projet de partenariat de 3ème génération) qui sont leurs homologues vidéos.+-r 10 pour avoir 10 images par seconde.
  
-Il existe différentes méthodes ​pour les manipuler, dont celles utilisant FFmpeg en ligne de commande.+-s 320x240 ​pour avoir une résolution ​de sortie de 320x240.
  
-Dans les premières versions ​de cet article, nous présenterons ​une méthode par interface graphique, utilisant l'​utilitaire [[http://www.miksoft.net/​mobileMediaConverter.htm|Mobile Media Converter]].+Vous pouvez également choisir ​de découper ​une portion de vidéo avec les options -ss et -t. 
 +Par exemple ​: 
 +<​code>​ffmpeg -i input.mkv -ss 00:01:00.00 -pix_fmt rgb24 -r 10 -s 320x240 -t 00:00:10.00 output.gif</​code>​ 
 +Permet de convertir 10 secondes de vidéo à partir de 1 minute.
  
-Ce programme se présente sous forme d'archive à décompacteret il suffit de double-cliquer sur l'exécutable Mobile Media Converter ​pour le lancer ​une fois extrait de l'archive.+=== Réaliser une rotation ​d'une vidéo === 
 +Une vidéo pourtant prise en "​paysage"​ se visualisait en mode "​portrait"​. Pour réaliser la rotationon utilise ​l'option //​filtergraph//​ (-vf) avec //​transpose//​.\\ 
 +Le chiffre passé avec transpose correspond à: 
 +^chiffre ^ filtrage appliqué ^ désignation en anglais ^ 
 +|0|-90° (sens anti-horaire) puis symétrie verticale (par défaut)|90CounterClockwise and Vertical Flip (default)| 
 +|1|90° (sens horaire) |90Clockwise| 
 +|2|-90° (sens anti-horaire)|90CounterCLockwise| 
 +|3|90° (sens horaire) puis symétrie verticale|90Clockwise and Vertical Flip (default)| 
 +Voici la  commande ​pour -90°: 
 +<​code>​ffmpeg -i vidéo_originale.mp4 -vf "​transpose=2"​ vidéo_correctement_orienté.mp4</​code>​ 
 +du fait du  codec audio utilisé, //​aac//, ​une erreur est survenu en précisant d'ajouter //-strict -2//, ce qui donne: 
 +<​code>​ffmpeg -i vidéo_originale.mp4 -strict -2 -vf "​transpose=2"​ vidéo_correctement_orienté.mp4</​code>​
  
-=== Convertir des fichiers musicaux ​===+==== Effectuer une capture vidéo (screencast) de l'​écran ​==== 
 +Après avoir exécuté cette commande, appuyez sur q pour arrêter la capture.
  
-Pour les fichiers sonores, la commande ​typique ​est : +<​code>​ffmpeg -f x11grab -s 1920x1080 -r 25 -i :0.0 screencast.mp4</​code>​ 
-<​code>​ffmpeg -i monMorceau.mp3 monMorceau.wav</​code>​+//-f// force la capture de l'​écran (//​x11grab//​)\\ 
 +//-s// définit la [[wpfr>​Format_d'​affichage_vidéo|taille de la capture]], doit être inférieur ou égale à la taille réelle d'​affichage!\\ 
 +//-r// définit le nombre d'​images par seconde : 12.5, 25, 30 sont les plus courantspour un //​screencast//​ de tutoriel, on peut descendre à 5, mais du fait de la compression,​ l'​économie sur la taille mémoire n'est pas proportionnel.\\ 
 +//-i:0:0// correspond au nombre du serveur X11, [[http://​ffmpeg.org/​ffmpeg.html#​X11-grabbing|peut permettre de définir un offset]] auquel cas, il faut réduire la taille d'​autant avec l'​option -s\\ 
 +<note warning>​Si une autre session est active (ou l'a été) il se peut que ça ne fonctionne pas avec -i:0:0, en effet, le premier nombre correspond au numéro de session qui s'​affiche entre parenthèse dans ce que retourne ​la commande ​//who// et qui correspond à l'​ordre d'​ouverture de session (:0 pour le premier connecté, :1 pour le deuxième …). Si c'est le cas, vous pouvez utiliser la commande ci-dessous qui ajuste le numéro de session
 +<​code>​ffmpeg ​-f x11grab -s 1920x1080 -r 25 -i $(who | awk '​{print substr($5,​2,​2)}'​).0 screencast.mp4</​code></​note>​ 
 +Pour une capture d'​écran Hi-Fi, **son et vidéo** sans perte, avec **Pulse Audio** comme serveur de son : 
 +<​code>​ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 25 -s 1024x768 -i :0.0 -acodec flac -vcodec libx264 -preset ultrafast -qn 0 output.mkv 
 +</​code>​
  
-Cependant pour convertir un fichier quelconque en fichier ​mp3, il faut régler le //bitrate//. +**NB1** vous pouvez changer ​ flac  par  aac  ou  ac3  ou  ​mp3  etcTestez car selon votre PC cela joue sur la qualité et fluidité globales lors de la restitution.
-Par défaut le bitrate est de 64 kbps, ce qui donne des fichiers extrêmement légers mais des morceaux ignobles à écouter. +
-Il faut donc modifier ce //​bitrate//,​ on conseille un minimum de 128 kbps, mais pour avoir le meilleur rapport ​qualité/taille, préférez 192 kbps, et sachez que les //​bitrates//​ courants peuvent aller jusqu'​à 320 kbps.+
  
-Pour une conversion vers un MP3 avec un //bitrate// de 192 kbps, la commande est : +**NB2** pour la même raison que NB1 vous pouvez aussi changer l'​extension  ​.mkv  du fichier en  .mp4  .avi   etc.. Une fois de plus, testez et voyez.
-<​code>​ffmpeg -ab 192k -i monMorceau.ogg monMorceau.mp3</​code>​+
  
-=== Extraire la bande son d'une vidéo ===+**PROBLEME DE CAPTURE ECRAN SANS L'AUDIO**
  
-Pour extraire la bande sonore d'une vidéo (dans cet exemple, avec un format « .avi »,​ cela fonctionne également pour les autres formats), et le récupérer en mp3 (Autres choix possibles) : +Dans le terminal lancez la commande ​   alsamixer
  
-<​code>​ffmpeg -i fichier_video.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 fichier_son.mp3</​code>​+Appuyez sur  F6  et choisissez ​ default ​ (normalement c'est la première ligne)
  
-== Extraction sans perte == +Si vous utilisez une carte son, après avoir fait F6 choisissez là afin de vérifier-ajuster le volume à son maximum. 
 +Ensuite ​ esc  et retapez dans le terminal ​ alsamixer puis F6 pour choisir la valeur ​ default ​ puis  esc
  
-Pour extraire ​la piste audio d'un fichier sans aucune perte de qualité (utile pour les vidéos musiques téléchargées sur youtube par exemple). +Ensuite toujours dans le terminal tapez  pavucontrol 
-<​code>​ffmpeg -i fichier_entrer.mp4 -vn -acodec copy fichier_sortie.m4a</​code>​ +Vérifiez que vous avez bien choisi ​la source ​de sortie que vous utilisez habituellement,​ déconnectez toutes ​les autres, micro inclus puis allez à l'​onglet ​ gestion des entrée. Vérifiez ​qu'il affiche un élément actif pour la source d'​entrée retenue avec le volume à 100. Si nonactivez ​le en cliquant sur l'​icone d'un haut-parleur (en haut à droite juste au-dessus ​de la ligne concernée) et ajustez si besoin le volume à 100.
-m4a correspond ​à un fichier mp4 ne contenant ​qu'une piste audio, le conteneur ​de sortie est donc mp4.+
  
-Adapté le conteneur au codec audio utilisé dans le fichier d'entrée. +ENFIN, redémarrez votre PC car j'ai relevé que sur certains PC tout devenait fonctionnel après un redémarrage (???)Ne me demandez pas pourquoi je ne suis pas un expert hardware-software bas/moyen-niveau donc je n'​aurai aucune réponse à vous donner.
-Vous pouvez déterminer ce codec avec la commande : +
-<​code>​ffmpeg ​-i fichier_entrer.mp4<​/code>+
  
-[[http://​en.wikipedia.org/​wiki/​Comparison_of_container_formats#​Audio_formats_supported|Wikipédia]] peut vous aider à choisir un conteneur compatible avec votre codec. 
  
-==== Convertir tous les fichiers Windows Media Audio ( WMA ) en mp3  ​===+==== Pour créer une vidéo à partir de photos ​===
 +À partir des images //​img001.png,​ img002.png, img003.png//:​\\ 
 +FIXME (le code ci-dessous ne fonctionne pas sous [[:​Jammy]] 
 +<​code>​ 
 +ffmpeg -framerate 24 -i img%03d.png output.mp4 
 +</​code>​ 
 +[[https://​trac.ffmpeg.org/​wiki/​Slideshow|Explication pour créer une vidéo à partir de photo (animation) (en)]]\\ 
 +Alternative ((src (en) : https://​stackoverflow.com/​a/​37478183/​6614155)) : 
 +<code bash> 
 +ffmpeg -framerate 1 -pattern_type glob -i '​img*.png'​ -c:v libx264 -pix_fmt yuv420p output.mp4 
 +</​code>​ 
 +<note important>​le //​framerate//​ est le nombre d'​images pas seconde en entrée (ips)… si vous avez 24 images et définissez 24… vous n'​aurez qu'une seconde de vidéo et n'​aurez pas le temps de voir les images si elles sont très différentes. Pour 10 secondes de vidéo à 24 ips, il faut donc 240 images ! Il est possible d'​avoir un //​framerate//​ sur les images fournies en entrée et un //fps// en sortie différent, ffmpeg laissera la même image plusieurs fois ou au contraire en enlèvera ((https://​trac.ffmpeg.org/​wiki/​Slideshow#​Framerates))</​note>​
  
-Dans un dossier contenant des fichiers au format wma. +==== Découper une vidéo ==== 
-La boucle for lance la conversion des fichiers. +Découper ​la vidéo entre la 24ème minute et la 50ème plus 14 secondes (-c:v copy -c:a copy permettent de conserver le même encodeur vidéo et audio) 
-Il suffira de supprimer les fichier wma une fois la conversion terminée.+<​code>​ 
 +ffmpeg -i fichieradecouper.avi -ss 00:24:00.00 -to 00:50:14.00 -c:v copy -c:a copy  extrait.avi 
 +</​code>​
  
-<​code>​for i in *.wma; do ffmpeg -i "​$i" ​-ab 256k "​${i%wma}.mp3"; done</​code>​+Extraire une séquence de 12 mn 18.25 secondes à partir de la 18ème minute 
 +<​code>​ 
 +ffmpeg -i fichieradecouper.avi ​-ss 00:18:00.00 -t 00:12:18.25 -c:v copy -c:a copy  extrait.avi 
 +</​code>​
  
-==== Effectuer ​une capture vidéo (screencast) ​de l'écran ====+<note tip>​Insérer les balises de temps -ss, -to et -t avant -i permet d'​éviter de ré-encoder les parties du fichier qui ne sont pas utilisées : 
 +<​code>​ 
 +ffmpeg -ss 00:8:00.00 -t 00:12:18.25 -i fichieradecouper.avi -c:v copy -c:a copy  extrait.avi 
 +</​code>​ 
 +</​note>​ 
 +<note tip>​L'​utilisation de -c:v copy et -c:a copy permet ​une découpe très rapide car il n'y a pas de ré-encodage du fichier. Cependant la découpe est moins précise car calée sur l'image clé la plus proche de la borne de temps définie par l'​utilisateur. L'​utilisation de la syntaxe suivante permet une découpe plus précise mais prend davantage de temps car il y a ré-encodage de la séquence extraite : 
 +<​code>​ 
 +ffmpeg -ss 00:18:00.00 -t 00:12:18.25 -i fichieradecouper.mp4 fichierdecoupe.mp4 
 +</​code></​note>​
  
-Après avoir exécuté cette commande, appuyez sur q pour arrêter la capture.+==== Pivoter une vidéo ==== 
 +Utile par exemple ​pour redresser une vidéo réalisée avec un téléphone mobile tourné dans le mauvais sens 
 +<​code>​ 
 +ffmpeg -i VideoInitiale.MOV -vf "​transpose=1"​ VideoRedressee.MOV 
 +</​code>​ 
 +L'​option transpose supporte plusieurs paramètres selon la transformation à réaliser : 
 +| Option | Effet | 
 +| 0 | Rotation à 90° sens des aiguilles d'une montre et miroir vertical (défaut) | 
 +| 1 | Rotation à 90° sens des aiguilles d'une montre | 
 +| 2 | Rotation à 90° sens inverse des aiguilles d'une montre | 
 +| 3 | Rotation à 90° sens inverse des aiguilles d'une montre et miroir vertical (défaut) |
  
-<​code>​ffmpeg ​-b 1000k -f x11grab -s 800x600 -r 30 -i :0.0 screencast.mpg</​code>​+==== Concaténer plusieurs vidéos ==== 
 +Abouter (enfiler plusieurs vidéos successivement en une seule plus longue) plusieurs vidéos n'est pas l'​opération la plus simple. Celle-ci dépend de la nature des fichiers à concaténer.
  
-Pour une capture d'​écran Hi-Fi**son et vidéo** sans perteavec **Pulse Audio** comme serveur de son : +=== Concaténation simple === 
-<​code>​ffmpeg -f alsa -ac 2 -i pulse -f x11grab -r 25 -s 1024x768 -i :0.0 -acodec flac -vcodec libx264 -preset ultrafast -qn 0 output.mkv+Quelques rares formats ("file level"​) acceptent la concaténation simple : MPEG-1MPEG-2 PSDV. Dans ce cas l'​opération reste assez simple à réaliser. 
 +<​code>​ 
 +cat fichier1.mpg fichier2.mpg > Fichier_concatene.mpg
 </​code>​ </​code>​
 +ou
 +<​code>​
 +ffmpeg -i concat:"​fichier1.mpg|fichier2.mpg"​ -c copy Fichier_concatene.mpg
 +</​code>​
 +<note tip>Si la qualité des fichiers s'y prête, il peut être plus simple de convertir les fichiers à concaténer en mpg, de réaliser la concaténation en mpg puis de ré-encoder le fichier concaténé dans votre format de prédilection.</​note>​
  
-==== Pour consulter le manuel de FFmpeg ====+=== Avec concat ​=== 
 +Le filtre concat opère sur des segments synchrones de flux vidéo et audio. Tous les segments doivent avoir le même nombre de flux, qui sera également celui du fichier concaténé. 
 +Options du filtre : 
 +| Option | Usage | Valeur par défaut | 
 +| n | Nombre de segments à concaténer | 2 | 
 +| v | Nombre de flux vidéo (identique dans les sources et la destination) | 1 | 
 +| a | Nombre de flux audio (identique dans les sources et la destination) | 0 | 
 +| unsafe | Prévient l'​échec de l'​opération si les sources ne possèdent pas le même nombre de flux | désactivé |
  
-<​code>​man ffmpeg</​code>​+Concaténer une ouverture, un milieu et une fin avec 2 pistes son 
 +<​code>​ 
 +ffmpeg ​-i ouverture.avi -i milieu.avi -i fin.avi -filter_complex '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2] concat=n=3:​v=1:​a=2 [v] [a1] [a2]' -map '​[v]'​ -map '​[a1]'​ -map '​[a2]'​ fichierfinal.avi 
 +</​code>​
  
-===== JDownloader 2 Beta =====+=== Autres cas et cas complexes ​=== 
 +Voir la documentation (en anglais), notamment [[https://​ffmpeg.org/​faq.html#​How-can-I-concatenate-video-files_003f|3.14]],​ [[https://​ffmpeg.org/​ffmpeg-filters.html#​concat|15.8]] et [[https://​ffmpeg.org/​ffmpeg-formats.html#​concat|3.4]]
  
-FFmpeg is missing ! Pour résoudre ce problème, notamment avec le site Youtube, il faut+==== Méta-données ==== 
-  * Installer FFmpeg avec la Logithèque ​ +On peut visualiser quelques méta-données en exécutant ​
-  * Ouvrir JD et aller dans les Préférences +<code bash>​ffmpeg -i ma_vidéo.AVI</​code>​ 
-  * Puis dans les Paramètres avancés +qui va nous retourner l'​appareil qui a créé ​la vidéo, ​la date de création, la durée, et des infos sur l'encodage de la vidéo et de la bande son.\\ 
-  * Trouver ​la clef FFmpegSetup:​ Binary Path +Pour les méta-donnéeson peut aussi utiliser [[:​exiftool]]
-  * A la place de 'null', mettre /​usr/​bin/​ffmpeg +
-  * Arrêter ​les téléchargements (bouton Stop)puis redémarrer les (bouton Lecture) +
-  * Enjoy !+
  
 +==== Ajouter une piste son ainsi que des sous-titres ====
 +Dans cet exemple :
 +  * on va ajouter une deuxième piste son (française) au fichier video.mp4 qui en possède déjà une (anglaise)
 +  * on va ajouter des sous-titres dans chacune des deux langues
 +  * on va ajouter une image de couverture image.jpg
 +  * on va mettre à jour des métadonnées
 +<code bash>​ffmpeg -i video.mp4 -i son_francais.aac -i st_ang.srt -i st_fr.srt -i image.jpg -map 0 -map 1 -map 2 -map 3 -map 4 -c copy -metadata comment="​Paris brûle-t-il (1966) doublé 1080p x265" -metadata:​s:​a:​0 title="​Anglais (English)"​ -metadata:​s:​a:​0 language=eng -metadata:​s:​a:​1 title="​Français (French)"​ -metadata:​s:​a:​1 language=fra -metadata:​s:​v:​0 title="​Vidéo"​ -c:s mov_text -metadata:​s:​s:​0 language=eng -metadata:​s:​s:​1 language=fra output.mp4
 +</​code>​
 +<note tip> ​ * -map 0 -map 1 -map 2 -map 3 -map 5 : applique le traitement aux 5 fichiers d'​entrée définis avec -i
 +  * -c copy : copie sans réencoder
 +  * -metadata comment="​Ceci est un commentaire 1080p x265" : modifie la métadonnée commentaire du fichier
 +  * -metadata title="​Le titre de la vidéo"​ : modifie la métadonnée titre du fichier (en général s'​affiche au lancement)
 +  * -metadata:​s:​a:​0 title="​Anglais (English)"​ : titre du premier flux (stream) audio (au cas d'​espèces déjà dans le fichier)
 +  * -metadata:​s:​a:​0 language=eng : langue du premier flux audio (anglais)
 +  * -metadata:​s:​a:​1 title="​Français (French)"​ : titre du deuxième flux audio (son_francais.aac)
 +  * -metadata:​s:​a:​1 language=fra : langue du deuxième flux audio (français)
 +  * -metadata:​s:​v:​0 title="​Vidéo"​ : titre du premier flux vidéo
 +  * -c:s mov_text : convertit les fichiers srt en sous-titres mov_text pour mp4
 +  * -metadata:​s:​s:​0 language=eng : métadonnée langue (anglais) du premier fichier de sous-titres (st_ang.srt)
 +  * -metadata:​s:​s:​1 language=fra : métadonnée langue (français) du deuxième fichier de sous-titres (st_fr.srt)
 +  * output.mp4 : fichier de sortie
 +</​note>​
 +==== Pour consulter le manuel de FFmpeg ====
  
-===== Pour en savoir plus sur Internet =====+<​code>​man ffmpeg</​code>​
  
 +Pour une synthèse des options
 +<​code>​ffmpeg -help long</​code>​
 +
 +===== Pour en savoir plus sur Internet =====
   * ''​**(en)**''​ [[http://​ffmpeg.org/​|Site officiel]] ​   * ''​**(en)**''​ [[http://​ffmpeg.org/​|Site officiel]] ​
   * ''​**(fr)**''​ [[http://​www.jcartier.net/​spip.php?​article36|Exemples d'​usages]]   * ''​**(fr)**''​ [[http://​www.jcartier.net/​spip.php?​article36|Exemples d'​usages]]
-  ​* ''​**(fr)**''​ [[http://​fr.lprod.org/​wiki/​doku.php?​id=video:​ffmpeg|ffmpeg sur le site de montage vidéo libre, lprod.org]] +  * ''​**(fr)**''​ [[http://​www.korben.info/​ffmpeg-pour-les-nuls.html|FFMPEG ​pour les nuls]]
-  ​* ''​**(fr)**''​ [[http://​www.korben.info/​ffmpeg-pour-les-nuls.html]] +
-  * ''​**(fr)**''​ [[http://​c-net.fr/?​p=269|Exemple d'​installation de ffmpeg]] +
-  * ''​**(fr)**''​ [[http://​yves.demur.free.fr/​conv2pana.bash|Un script ​pour convertir ​les vidéos en .3gp]]+
  
-----+ ----
  
 //​Contributeurs principaux : loup_74, ElGeneralMidi,​ [[utilisateurs:​Wido]],​ [[utilisateurs:​laurentb|Laurent Bellegarde]],​ Isamaya (pour l'​extraction des flux audio et vidéo).// //​Contributeurs principaux : loup_74, ElGeneralMidi,​ [[utilisateurs:​Wido]],​ [[utilisateurs:​laurentb|Laurent Bellegarde]],​ Isamaya (pour l'​extraction des flux audio et vidéo).//
  • ffmpeg.1451832403.txt.gz
  • Dernière modification: Le 03/01/2016, 15:46
  • par cafecho