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 04/12/2019, 23:25]
185.189.113.83 [Pour concaténer plusieurs vidéo]
ffmpeg [Le 24/09/2023, 10:36] (Version actuelle)
146.70.196.140 [Utilisation]
Ligne 1: Ligne 1:
-{{tag>Xenial ​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 7: Ligne 7:
  
 **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. **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 importante>​Pour la [[:​versions|version d'​Ubuntu]] [[:​trusty|14.04]],​ **FFmpeg** a été remplacé par son [[wpfr>​fork]] [[:​avconv|avconv]]. **FFmpeg** a cependant été réintégré depuis la version [[:​xenial|Ubuntu  16.04]] si bien que **FFmpeg** et **avconv** sont désormais deux applications à part entière.</​note>​ 
  
 ===== Utilisation graphique ===== ===== Utilisation graphique =====
Ligne 15: Ligne 13:
   * [[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.   * [[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]] - 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é.   * [[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 :
Ligne 25: Ligne 22:
   * [[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   * [[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]] - Application de montage et de transcodage destinée aux débutants.   * [[Kino]] - Application de montage et de transcodage destinée aux débutants.
-  * [[http://​sourceforge.net/​projects/​outreel/​files/​|Outreel]] - Une autre interface graphique pour FFMpeg.+  * [[https://​sourceforge.net/​projects/​outreel/​files/​|Outreel]] - Une autre interface graphique pour FFMpeg.
  
  
 ===== Installation ===== ===== Installation =====
  
-==== Via les dépôts officiels====+[[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt>​ffmpeg]]**
  
-[[:​tutoriel:​comment_installer_un_paquet|Installer le paquet]] **[[apt>​ffmpeg|ffmpeg]]**+===== Utilisation =====
  
-====Via un PPA pour Ubuntu 14.04 uniquement====+**Tout ce qui suit parlera de la partie manipulation de fichier Audio - Video.**
  
-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:​mc3man/​trusty-media**((https://​launchpad.net/​~mc3man/​+archive/​ubuntu/​trusty-media)) à 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]]**.  +
-  ​:!: __Attention__:​ Le [[:​PPA]] ​**mc3man/​trusty-media** contient de très nombreux autres paquets médias de versions supérieures. Si vous ne souhaitez pas de mise à jour vers des versions supérieures de ses paquets lors de la prochaine mise à jour de votre système, [[:​ppa#​suppression_d_un_ppa|supprimer ce PPA]] de vos sources de logiciels.+
  
 +Attention, minimaliste ne veut pas dire peu performant.\\
 +Avec toutes les possibilités de ffmpeg vous pouvez aller bien plus loin que n'​importe quel lecteur.\\
 +Seul ressource pour cela ... connaitre les arguments à entrer dans la commande terminal.
  
-À noter que le binaire fourni ​par ce PPA (depuis la version 2.7.8) prend en compte les filtres x265 et fdk_aac (codec AAC de Fraunhofer) +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.
  
  
-===== Utilisation =====+**Utilisation ​pour lire UN SEUL fichier Audio ou Video** 
 + 
 +Tapez dans le terminal ce qui suit et appuyez sur la touche "​Entrée"​ du clavier\\ 
 + 
 +__Pour un fichier video__\\ 
 +<​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\\ 
 +\\ 
 + 
 +**Utilisation pour lire TOUT LE CONTENU D'UN RÉPERTOIRE contenant PLUSIEURS DOSSIERS avec des fichiers audio** 
 + 
 +<​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>​\\ 
 +NB //​SDL_AUDIODRIVER=alsa AUDIODEV=hw:2,0// sert à contourner le mixeur du PC pour envoyer cela directement sur la sortie USB, ici hw:2,0; trouvez la vôtre avec la commande\\ 
 +<​code>​cat /​proc/​asound/​cards</​code>​ 
 +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\\ 
 + 
 +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 55: 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 195: 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 ====
  
Ligne 331: 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 371: 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 422: 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  +
- sed --e "​s/​\]//​g"​ to_convert  +
- sed --"s/\ /\./g" to_convert +
-done < to_convert +
-#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 " ") +
-echo "​_______________________________________________"​ +
-while read line +
-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>+
  
 === Convertir tous les fichiers Windows Media Audio ( WMA ) en mp3  === === Convertir tous les fichiers Windows Media Audio ( WMA ) en mp3  ===
Ligne 518: Ligne 540:
 du fait du  codec audio utilisé, //aac//, une erreur est survenu en précisant d'​ajouter //-strict -2//, ce qui donne: 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>​ <​code>​ffmpeg -i vidéo_originale.mp4 -strict -2 -vf "​transpose=2"​ vidéo_correctement_orienté.mp4</​code>​
-==== Effectuer une capture vidéo (screencast) de l'​écran ==== 
  
 +==== Effectuer une capture vidéo (screencast) de l'​écran ====
 Après avoir exécuté cette commande, appuyez sur q pour arrêter la capture. Après avoir exécuté cette commande, appuyez sur q pour arrêter la capture.
  
Ligne 525: Ligne 547:
 //-f// force la capture de l'​écran (//​x11grab//​)\\ //-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!\\ //-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 ​pas seconde : 12.5, 25, 30 sont les plus courants, pour 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.\\+//-r// définit le nombre d'​images ​par seconde : 12.5, 25, 30 sont les plus courants, pour 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\\ //-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: <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:
Ligne 532: Ligne 554:
 <​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>​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>​ </​code>​
 +
 +**NB1** vous pouvez changer ​ flac  par  aac  ou  ac3  ou  mp3  etc. Testez car selon votre PC cela joue sur la qualité et fluidité globales lors de la restitution.
 +
 +**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.
 +
 +**PROBLEME DE CAPTURE ECRAN SANS L'​AUDIO**
 +
 +Dans le terminal lancez la commande ​   alsamixer
 +
 +Appuyez sur  F6  et choisissez ​ default ​ (normalement c'est la première ligne)
 +
 +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
 +
 +Ensuite toujours dans le terminal tapez  pavucontrol
 +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 non, activez 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.
 +
 +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.
 +
  
 ==== Pour créer une vidéo à partir de photos ==== ==== Pour créer une vidéo à partir de photos ====
-À partir des images //​img001.png,​ img002.png, img003.png//:​+À partir des images //​img001.png,​ img002.png, img003.png//:​\\ 
 +FIXME (le code ci-dessous ne fonctionne pas sous [[:Jammy]]
 <​code>​ <​code>​
 ffmpeg -framerate 24 -i img%03d.png output.mp4 ffmpeg -framerate 24 -i img%03d.png output.mp4
 </​code>​ </​code>​
-[[https://​trac.ffmpeg.org/​wiki/​Slideshow|Explication pour créer une vidéo à partir de photo (animation) (en)]]+[[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>​
  
 ==== Découper une vidéo ==== ==== Découper une vidéo ====
Ligne 548: Ligne 595:
 Extraire une séquence de 12 mn 18.25 secondes à partir de la 18ème minute Extraire une séquence de 12 mn 18.25 secondes à partir de la 18ème minute
 <​code>​ <​code>​
-ffmpeg -i fichieradecouper.avi -ss 00:8:00.00 -t 00:12:18.25 -c:v copy -c:a copy  extrait.avi+ffmpeg -i fichieradecouper.avi -ss 00:18:00.00 -t 00:12:18.25 -c:v copy -c:a copy  extrait.avi
 </​code>​ </​code>​
  
Ligne 556: Ligne 603:
 </​code>​ </​code>​
 </​note>​ </​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>​
 +
 ==== Pivoter une vidéo ==== ==== 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 Utile par exemple pour redresser une vidéo réalisée avec un téléphone mobile tourné dans le mauvais sens
Ligne 568: Ligne 620:
 | 3 | Rotation à 90° sens inverse des aiguilles d'une montre et miroir vertical (défaut) | | 3 | Rotation à 90° sens inverse des aiguilles d'une montre et miroir vertical (défaut) |
  
-==== Concaténer plusieurs ​vidéo ​==== +==== Concaténer plusieurs ​vidéos ​==== 
-Abouter (enfiler plusieurs vidéos successivement en une seule plus longue) plusieurs ​vidéo ​n'est pas l'​opération la plus simple. Celle-ci dépend de la nature des fichiers à concaténer.+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. 
 === Concaténation simple === === Concaténation simple ===
 Quelques rares formats ("file level"​) acceptent la concaténation simple : MPEG-1, MPEG-2 PS, DV. Dans ce cas l'​opération reste assez simple à réaliser. Quelques rares formats ("file level"​) acceptent la concaténation simple : MPEG-1, MPEG-2 PS, DV. Dans ce cas l'​opération reste assez simple à réaliser.
Ligne 580: Ligne 633:
 </​code>​ </​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>​ <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>​
 +
 === Avec concat === === 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é. 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é.
Ligne 596: Ligne 650:
 === Autres cas et cas complexes === === 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]] 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]]
 +
 +==== Méta-données ====
 +On peut visualiser quelques méta-données en exécutant :
 +<code bash>​ffmpeg -i ma_vidéo.AVI</​code>​
 +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.\\
 +Pour les méta-données,​ on peut aussi utiliser [[:​exiftool]]
 +
 +==== 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 consulter le manuel de FFmpeg ====
  
 <​code>​man ffmpeg</​code>​ <​code>​man ffmpeg</​code>​
  
-===== JDownloader 2 Beta ===== +Pour une synthèse des options 
- +<​code>​ffmpeg -help long</code>
-FFmpeg is missing ! Pour résoudre ce problème, notamment avec le site Youtube, il faut: +
-  * Installer FFmpeg avec la Logithèque  +
-  * Ouvrir JD et aller dans les Préférences +
-  * Puis dans les Paramètres avancés +
-  * Trouver la clef FFmpegSetup:​ Binary Path +
-  * A la place de '​null',​ mettre ​/usr/​bin/​ffmpeg +
-  * Arrêter les téléchargements (bouton Stop), puis redémarrer les (bouton Lecture) +
-  * Enjoy ! +
  
 ===== Pour en savoir plus sur Internet ===== ===== 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]]
  • ffmpeg.1575498316.txt.gz
  • Dernière modification: Le 04/12/2019, 23:25
  • par 185.189.113.83