Introduction
FFmpeg s'utilise en ligne de commandes (cf. Première partie). Si l'on a un catalogue de commandes, il est facile de copier/coller celles dont on a besoin dans la Console ou le Power Shell en remplaçant bien entendu les noms de fichiers par les vôtres.
Je vous conseille de vous entraîner sur un fichier vidéo type. Sur ce site (https://www.learningcontainer.com/mp4-sample-video-files-download/) j'ai téléchargé un fichier au format mp4 afin de tester toutes les manipulations.
Dans les différentes commandes présentées le fichier source sera appelé input.mp4 ou input.mp3 et les fichiers de sorties seront output.mp4 ou autres extensions
Un peu de vocabulaire
Un fichier vidéo est en fait composé d'une piste vidéo, d'une ou plusieurs pistes audio (français, anglais, par ex.) d'un ou plusieurs fichiers sous-titres (format .srt ou .ass). Ces différents fichiers sont encodés par des codecs (h264, Divx ; etc. pour la vidéo - mp3, aac, etc. pour l'audio) et sont encapsulés dans un conteneur (mov, mp4, mkv, avi, webm, etc.)
Pour lire la vidéo il faut que les codecs soient installés sur votre ordinateur et un lecteur universel comme VLC permet de lire quasiment toutes les vidéos. Ceci est illustré dans l'image ci-dessus et devrait permettre de mieux comprendre le traitement des fichiers.
Commandes FFMPEG les plus utiles.
Voici une liste de commandes utiles pour convertir, compresser, modifier vos fichiers multimédias. Il vous suffit de cliquer sur le bouton de droite de la fenêtre de code afin de pouvoir le copier.
Obtenir des informations sur un fichier
Conversion vidéo
Convertir une vidéo en audio
Changer la résolution vidéo
Compresser des fichiers vidéos
Compression de fichiers audios
Supprimer la piste audio d'une vidéo
Ajouter une piste audio à une vidéo muette
Augmenter ou diminuer le volume sonore d'une vidéo
Extraire des images d'une vidéo
Encoder une suite d'images en vidéo
Extraire des parties d'une vidéo
Augmenter ou diminuer la vitesse d'une vidéo
Recadrer des vidéos
Concaténer des fichiers
Insérer un filigrane ou un logo
Ajouter une vignette à un fichier audio
Des sous-titres
Découper des fichiers audio par intervalle
Couper un extrait vidéo en évitant les bandes noires
Exemple de commande
Voici un exemple de commande générique.
ffmpeg [global_options] {[input_file_options] -i input_url} {[output_file_options] output_url} Une commande commence toujours par ffmpeg suivi si il y en a des options globales. Ensuite les options concernant le fichier source (ex. -y écrase le fichier de sortie sans validation au préalable) puis -i suivi du chemin du fichier source.
Pour finir les options concernant le fichier de sortie puis le chemin du fichier de sortie.
Pour lancer la commande, il faut juste appuyer sur la touche Entrée du clavier.
Visualiser les fichiers vidéos ou écouter les fichiers audio
FFmpeg comporte un lecteur qui vous permet de lire vos fichiers multimédias, voire d'afficher vos images. Il s'utilise en ligne de commande de la manière suivante. Cela permet de vérifier rapidement si les modifications faites ont fonctionné sans devoir lancer votre lecteur vidéo ou audio. Pour arrêter le player, appuyer sur q (quit)
ffplay input.mp4
ffplay input.mp3
1. Obtenir des informations sur un fichier
ffmpeg -i input.mp4Vous pouvez réduire le volume d'informations en ajoutant -hide_banner à votre ligne.
ffmpeg -i input.mp4 -hide_banner
Ce qui donne comme résultat
C:\Users\Christophe\Videos>cd test
C:\Users\Christophe\Videos\test>ffmpeg -i input.mp4 -hide_banner
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4':Metadata:
major_brand : isom
minor_version : 512compatible_brands: isomiso2avc1mp41
creation_time : 1970-01-01T00:00:00.000000Z
encoder : Lavf53.24.2
Duration: 00:01:57.31, start: 0.000000, bitrate: 1436 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1048 kb/s, 25 fps, 25 tbr,12800 tbn, 50 tbc (default)
Metadata:
creation_time : 1970-01-01T00:00:00.000000Z
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 383 kb/s (default)Metadata:
creation_time : 1970-01-01T00:00:00.000000Z
handler_name : SoundHandler
At least one output file must be specified
C:\Users\Christophe\Videos\test>
Dans l'image ci-dessous, je détaille les informations obtenues.
Vous obtenez la durée (1 minute 57 secondes) et le bitrate[*] (1436 Kb/s soit 1,4 Mb/s) de la vidéo. Le bitrate conditionne le poids de la vidéo.
Sur le canal vidéo, vous voyez que le codec utilisé est h264, que sa taille est de 1280 x 720 et le bitrate du canal vidéo est de 1048 Kb/s. Vous noterez également que la piste vidéo est identifiée comme le stream 0:0.
Pour l'audio, le codec utilisé est aac, avec une fréquence de 48000 Hz et que le bitrate de l'audio est de 393 Kb/s. À l'instar de la piste vidéo, la piste audio est identifiée comme le stream 0:1.
Ces renseignements nous permettront par la suite de modifier le débit pour compresser la vidéo, de changer le codec vidéo ou audio, de modifier la taille de la vidéo, de remplacer un stream par un autre (ex. changement de piste audio). Bref ces informations sont très pratiques et importantes à connaître avant de travailler sur les fichiers multimédias pour les améliorer.
Je vous invite d'ailleurs à le faire pour chaque nouveau fichier que vous allez manipuler.
2. Conversion vidéo
À l'heure actuelle, le format le plus utilisé est le mp4 mais il existe pléthore de formats et en une seule ligne il est très facile de convertir une vidéo vers un autre format.
ffmpeg -i input.mp4 output.webmEn décortiquant un peu cette commande, vous comprendrez un peu mieux le principe.
-i signifie qu'il s'agit du fichier source (i pour input), le fichier d'entrée est input.mp4 et le fichier de sortie sera en webm. Nous passons d'un poids de 20 Mo à un poids de 7,49 Mo.
ffmpeg -i input.mp4 -qscale 0 output.avi
-qscale 0 permet de garder la qualité du fichier d'origine. Ici, avec le container avi, nous observons une augmentation du poids de 20 Mo à 55 Mo, ce qui est peu intéressant. Le passage à un format mkv donne un poids de sortie de 17,5 Mo.
Vous voyez que juste avec une conversion le poids du fichier de sortie passe de 7,5 Mo à 55 Mo pour un poids de 20 Mo au départ.
3. Convertir une vidéo en audio
Il est très facile de récupérer le fichier audio d'une vidéo (ex. d'un fichier audio d'une conférence).
ffmpeg -i input.mp4 -vn output.mp3
-vn désactive la sortie vidéo et vous obtenez un fichier mp3 (vous auriez pu choisir du wav, du m4a, du aac, du ogg). Le format mp3 présente l'avantage d'être connu de beaucoup et lisible facilement.
Voici les différents poids des fichiers obtenus selon leur format :
mp3 --> 1,79 Mo
wav --> 64,4 mo
m4a --> 4,80 Mo
aac --> 4,82 Mo
ogg --> 3,26 Mo
La commande peut être enrichie de la sorte,
ffmpeg -i input.mp4 -vn -r:a 44100 -ac 2 -b:a 320k -f mp3 output.mp3
dans lequel -r:a définit la fréquence (voici quelques fréquences communément utilisées 22500, 44100, 48000), -ac le nombre de canaux audio, -b:a le bitrate de l'audio, -f le format de sortie.
Par exemple, j'ai récupéré l'audio d'une conférence filmée (2h 11 minutes), je suis passé d'un fichier de 1,56 Go à 90 Mo en indiquant un bitrate de 96 Kb/s suffisant pour écouter cette conférence.
4. Changer la résolution vidéo
Ma vidéo exemple fait 1280 x 720. Pour la lire sur un ordinateur, smartphone ou tablette 640 x 360 est très acceptable et permet de diminuer le poids de ma vidéo. Mais comment faire ?
ffmpeg -i input.mp4 -filter:v scale=640:360 -c:a copy output.mp4
-filter:v scale appelle un filtre (-filter:) qui concerne le canal vidéo (v) et qui s'appelle scale (échelle) et permet de modifier les dimensions de notre vidéo.
-c:a copy indique que l'on ne modifie pas le codec (-c:) audio (a) de sortie.
Résultat ma vidéo passe de 20 Mo à 10,5 Mo et la lecture sur mon ordinateur est tout à fait acceptable. Il est possible d'écrire la commande d'une autre manière, à vous de choisir celle qui vous convient le mieux.
ffmpeg -i input.mp4 -s 640x360 -c:a copy output.mp4
Au lieu de -filter:v scale=640:360 on écrit -s 640x360. Mais le résultat est le même.
Et avec cette commande, on peut directement introduire un diviseur pour fixer largeur et hauteur. -vf scale est l'équivalent de -filter:v scale.
ffmpeg -i input.mp4 -vf scale=iw/2:ih/2 output.mp4
Mais FFmpeg peut également redimensionner une image.
ffmpeg -i input.png -vf scale=320:160 output.jpg
Ici en plus de redimensionner une image, on la convertit au format jpg.
5. Compresser des fichiers vidéos
Quand on compresse une vidéo, on ne modifie pas sa taille mais on dégrade la qualité de la vidéo, dans des limites acceptables, de manière à alléger son poids numérique ce qui peut être un critère important lors du partage d'une vidéo ou de son intégration sur des sites tels les ENT.
ffmpeg -i input.mp4 -vf scale=960:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
Le début commence à vous être familier.
-vf scale=960:-1 concerne le changement de taille on impose une largeur de 960 pixels et avec le final :-1 on impose également de conserver les proportions pour que FFmpeg fixe la hauteur.
-c:v libx264 est l'encodeur vidéo du codec h264.
-preset veryslow est une option pour obtenir une meilleure qualité de conversion (par défaut FFmpeg travaille avec le preset medium).
-crf 24 dégrade très légèrement la vidéo. CRF est le Constant Rate Factor qui peut aller de 0 (lossless, sans perte) à 51 (très dégradé). Un bon crf est compris entre 18 et 23 (23 étant le réglage par défaut pour h264) et ±6 dans la valeur peut diviser le poids de votre vidéo par 2.
Voici par exemple les 10 premières secondes de la vidéo exemple avec un crf de 51.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger le média.
Il est également possible d'ajouter cette partie pour comprimer l'audio.
-ac 2 -c:a aac -strict -2 -b:a 128k
-ac 2 définit le nombre de canaux. -c:a aac impose le codec (-c:) audio (a) aac. -b:a fixe le bitrate de l'audio à 128k.
Avec la commande ci-dessous, je fais passer le poids de ma vidéo exemple de 20 Mo à 3,82 Mo sans nuire du tout à la lecture sur mon PC.
ffmpeg -i input.mp4 -s 640x360 -c:v libx264 -preset veryslow -crf 29 -ac 2 -c:a aac -strict -2 -b:a 96k output.mp4
6. Compression de fichiers audios
ffmpeg -i input.mp3 -ab 128 output.mp3
Les bitrates possibles pour le mp3 sont 96 Kb/s, 112 Kb/s, 128 Kb/s, 160 Kb/s, 192 Kb/s, 256 Kb/s ou 320 Kb/s. 320 Kb/s donne un équivalent à la qualité audio d'un CD.
Il est bien entendu possible d'utiliser d'autres codecs et donc d'autres formats (m4a, wav, ogg, etc.)
7. Supprimer la piste audio d'une vidéo
Une ligne très simple supprime la piste audio d'une vidéo.
ffmpeg -i input.mp4 -an output.mp4
-an supprime le flux audio.
8. Ajouter une piste audio à une vidéo muette
ffmpeg -i input.mp4 -i audio.mp3 -c copy -map 0:0 -map 1:0 output.mp4
Nous avons 2 fichiers : 1 piste vidéo input.mp4 et une piste audio input.mp3 (rappel -i pour chaque piste).
-c copy permet de ne pas ré-encoder les 2 pistes et nous avons un travail plus rapide.
-map 0:0 indique que pour le premier fichier (en informatique on commence souvent le décompte par 0), nous ne gardons que le premier stream (cf. 1.Obtenir des informations sur un fichier) qui est la piste vidéo du fichier input.mp4.
-map 1:0 indique que pour le second fichier nous ne gardons que la piste audio du fichier input.mp3.
Dans notre cas si le fichier input.mp4 n'est pas muet nous ne gardons que sa partie vidéo pour la sortie et nous remplaçons la piste sonore d'origine par un autre fichier son.
9. Augmenter ou diminuer le volume sonore d'une vidéo
Augmenter
ffmpeg -i input.mp4 -vcodec copy -af "volume=10dB" outputmp4
-vcodec copy indique à FFmpeg que nous ne ré-encodons pas la piste vidéo. -af "volume=10dB" indique que nous augmentons le volume de 10dB.
Diminuer
ffmpeg -i input.mp4 -vcodec copy -af "volume=-5dB" output.mp4
Avec -af "volume=-5dB" nous diminuons le volume de 5dB.
10. Extraire des images d'une vidéo
Extraire 1 image
ffmpeg -i input.mp4 -vframes 1 -ss 183 vignette.png
-vframes 1 indique le nombre de vidéo frames (image de la vidéo) que nous voulons (1).
-ss 183 signifie Start to Second 183, FFmpeg nous extraira l'image correspondant à la 183e seconde de notre vidéo.
Cette image s'appellera vignette.png
Extraire des images
ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png
-r 1 définit le nombre d'images par seconde (ici 1 image par seconde) que nous voulons extraire (par défaut 25).
-f image2 définit le format de sorte, ici des images.
image-%2d.png définit la façon dont seront nommées les images. Nos images s'appelleront image_01.png, image_02.png, etc. Si nous voulons un format img-001.bmp, notre fichier de sortie devra être codé img-%3d.bmp.
ffmpeg -i input.mp4 -filter:v fps=fps=1/60 output_%2d.bmp
ffmpeg -i input.mp4 -vf fps=1/60 output_%2d.bmp
Les 2 lignes ci-dessus donnent le même résultat, je détaille la première ligne.
-filter:v indique que FFmpeg fait appel à un filtre vidéo, ici le filtre fps qui va convertir la vidéo vers une fréquence d'images constante. Ici fps=fps=1/60 va convertir la vidéo en une suite de 1 image par minute que nous récupérerons en une suite d'images bitmap output_01.bmp, output_02.bmp, etc.
11. Encoder une suite d'images en vidéo
ffmpeg -framerate 24 -i "image_%3d.png" -vcodec h264 -b:v 10485760 "output.mp4"
Cette commande permet de faire une vidéo à partir d'une suite d'images (ex capture photos pour un film en stop motion). Cela suppose que l'on ait au préalable renommer les images sous la forme appelée dans notre commande.
-framerate 24 fixe le nombre d'images par seconde que comportera notre vidéo (ici 24 images/seconde).
-i "image_%3d.png" appelle les images image_001, image_002, etc pour composer notre vidéo.
-vcodec h264 est le codec vidéo utilisé pour encoder notre vidéo.
-b:v 10485760 est le bitrate de notre vidéo en bit/seconde (10 x 1024 x 1024 = 10 Mb/s).
12. Extraire des parties d'une vidéo
Extraire les n... premières secondes
ffmpeg -i input.mp4 -t 10 output.mp4
-t 10 extrait les 10 premières secondes de la vidéo input.mp4.
Extraire une partie
ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 40 output.mp4
-ss 00:00:50 indique le point de départ de notre sélection (50e seconde de notre vidéo).
-codec copy indique que nous ne ré-encodons pas les fichiers vidéo et audio.
-t 40 indique la durée de notre sélection (40 secondes).
Nous obtenons un extrait de 40 secondes de notre vidéo de départ qui commencera à la 50e seconde de notre vidéo de départ.
Nous pouvons faire de même avec un fichier audio.
ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3
Nous extrayons la partie comprise entre -ss 00:01:54 jusqu'à -to 00:06:53 que nous copions en mp3. Nous obtenons un fichier mp3 qui fait 4 minutes 59 secondes. Nous pouvons remplacer 00:01:54 par 114 qui est l'équivalent en secondes.
Diviser en plusieurs parties
ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
Nous extrayons 2 parties nommées part1.mp4 et part2.mp4, avec l'instruction -c copy ou -codec copy, nous indiquons à FFmpeg de ne pas ré-encoder les éléments de la vidéo.
-t 00:00:30 nous indiquons que notre première partie sera les 30 premières secondes de notre vidéo source.
-ss 00:00:30 nous indiquons que notre seconde partie démarrera à la 30e seconde et ira jusqu'à la fin de la vidéo source.
ffmpeg -i input.mp4 -t 00:00:57 -c copy part1.mp4 -ss 00:01:15 -t 57 -codec copy part2.mp4 -ss 00:01:54 -codec copy part3.mp4
Cette commande plus longue est en fait très simple à comprendre.
3 sorties vidéos : part1.mp4, part2.mp4 et part3.mp4.
-c copy ou -codec copy pour ne pas ré-encoder nos sorties.
part1.mp4 : durera 57 secondes à compter du début de la vidéo (-t 00:00:57).
part2.mp4 : durera également 57 secondes (-t 57) mais à compter de 1minute 15 du début de la vidéo (-ss 00:01:15).
part3.mp4 : commence à 1 minute 54 secondes (-ss 00:01:54) du début de la vidéo et ira jusqu'au terme d'icelle.
Vous pouvez ainsi découpez précisément une vidéo en autant de parties voulues. Très pratique pour chapitrer une séquence.
13. Augmenter ou diminuer la vitesse d'une vidéo
Augmenter
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
-vf "setpts=0.5*PTS" appelle le filtre vidéo qui modifie le PTS (Presentation Timestamp --> horodatage de la présentation des trames d'entrée) et donc joue sur la vitesse du fichier de sortie. Ici cela multiplie la vitesse de la vidéo par 2 mais au final la vidéo fait la même durée tout en restant sur la dernière image. Il faudra donc couper la moitié de la vidéo.
Diminuer
ffmpeg -i input.mp4 -vf "setpts=4*PTS" output.mp4
Pour diminuer la vitesse, il faut que le multiplicateur soit supérieur à 1. Avec un multiplicateur de 4, la vitesse de la vidéo est divisée par 4.
14. Recadrer des vidéos
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
-filter:v appelle le filtre vidéo crop qui permet de recadrer et de rogner la vidéo source.
crop=w:h:x:y permet d'entrer les coordonnées de la vidéo de sortie. w et h sont les coordonnées de la largeur (w) et de la hauteur (h) souhaitées. x et y sont les coordonnées du point de départ du rognage par rapport au point origine (0 :0) situé en haut à gauche.
15. Concaténer des fichiers
En informatique concaténer signifie joindre bout à bout des fichiers. Vous avez, par exemple, 4 fichiers vidéos avec les mêmes codecs et vous souhaitez les mettre bout à bout pour obtenir une vidéo unique.
Il faut en premier créer un fichier texte (join.txt) avec les chemins des vidéos.
file part1.mp4
file part2.mp4
file part3.mp4
file part4.mp4
puis entrer la commande suivante.
ffmpeg -f concat -i join.txt -c copy output.mp4
-f appelle le filtre concat, -i le fichier join.txt, -c copy permet une sortie sans ré-encodage.
16. Insérer un filigrane ou un logo
Nous voulons insérer un logo (15.png, 200x200) dans le coin bas-droite de notre vidéo (1280x720) et ce pendant les 20 premières secondes d'icelle.
ffmpeg -i input.mp4 -i 15.png -filter_complex "[0:v][1:v] overlay=1080:520:enable='between(t,0,20)'" -pix_fmt yuv420p -c:a copy output.mp4
Avec -i nous appelons notre vidéo source ainsi que notre logo.
-filter_complex est le filtre qui va nous permettre cette opération. Attention aux guillemets doubles et simple dans la commande.
overlay=1080:520 fixe les coordonnées de l'incrustation de notre logo. Comme notre vidéo fait 1280 x 720 et que notre logo fait 200 x 200, j'enlève 200 à chaque dimension afin que le logo soit en bas à droite par rapport à l'origine (haut-gauche avec 0 :0).
enable='between(t,0,20)' indique le temps (t) d'apparition du logo (de 0 sec à 20 sec). En modifiant ces données, vous pouvez faire apparaître le logo quand vous le souhaitez.
Voici un exemple avec un logo incrusté pendant les 10 premières secondes.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger le média.
17. Ajouter une vignette à un fichier audio
ffmpeg -loop 1 -i 15.png -i input.mp3 -shortest -c:v libx264 -c:a copy output.mp4
-loop 1 boucle sur l'image. -shortest fixe la durée au morceau le plus court (ici ce sera l'audio). -c:v libx264 choisit le codec pour la sortie -c:a copy ne ré-encode pas l'audio.
18. Des sous-titres
Extraire les sous-titres d'une vidéo
Les sous-titres dans un conteneur vidéo ne sont en fait qu'un fichier texte avec une syntaxe particulière. Il est très facile de faire ses sous-titres et de les inclure dans ses vidéos. Il existe 2 formats de sous-titres .srt et .ass et de nombreux logiciels peuvent vous aider à les écrire.
Mais d'abord comment extraire une piste de sous-titres.
ffmpeg -i input.mp4 output.srtffmpeg -i input.mp4 output.assLa première commande extrait les sous-titres au format .srt, la seconde au format .ass.
Ajouter des sous-titres à une piste vidéo
J'ai écrit une piste de sous-titres au format .srt car cette syntaxe est plus simple et permet facilement d'écrire ses premiers sous-titres.
1
00:00:05,500 --> 00:00:15,000
Bonjour chez vous !
2
00:00:15,100 --> 00:00:20,000
Tout va bien ?
3
00:00:25,000 --> 00:00:30,000
FIN DU TEST
1 est le numéro d'ordre du sous-titre
00:00:05,000 --> 00:00:15,000 indique le point de départ (5e seconde) puis le point de sortie (15e seconde) Attention à ne pas oublier la virgule suivie des 3 chiffres (on peut ajuster au millième de seconde)
Bonjour chez vous ! est le texte qui apparaîtra pendant 10 secondes (15-5).
Ensuite il nous faut entrer la ligne de commandes pour fusionner nos sous-titres avec notre vidéo.
ffmpeg -i input.mp4 -vf subtitles=ss_titre.srt output.mp4
-vf subtitles=ss_titre.srt est le filtre vidéo qui appelle le fichier .srt pour l'inclure dans notre vidéo de sortie que voici.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger le média.
Il existe une autre commande pour inclure des pistes .ass.
On va convertir avec FFmpeg notre fichier .srt en .ass
ffmpeg -i ss_titre.srt ss_titre.asspuis jeter un œil sur la syntaxe.
[Script Info]
; Script generated by FFmpeg/Lavc58.92.100
ScriptType: v4.00+
PlayResX: 384
PlayResY: 288
ScaledBorderAndShadow: yes
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,0
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:05.50,0:00:15.00,Default,,0,0,0,,Bonjour chez vous !
Dialogue: 0,0:00:15.10,0:00:20.00,Default,,0,0,0,,Tout va bien ?
Dialogue: 0,0:00:25.00,0:00:30.00,Default,,0,0,0,,FIN DU TEST
Ce format est paramétrable et on peut plus jouer sur le style des sous-titres. Pour l'exemple suivant, j'ai modifié la ligne Style (ligne 10) pour avoir une police Verdana en 30 pts. J'ai également essayé de jouer sur les couleurs puis j'ai codé ma vidéo de sortie.
ffmpeg -i input.mp4 -vf ass=ss_titre.ass output.mp4
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger le média.
19. Découper des fichiers audio par intervalle
Cette commande permet de découper un fichier audio en autant de segments de durée identique.
ffmpeg -i "input.mp3" -f segment -segment_time 15 -c copy output_%02d.mp3
-f segment -segment_time 15 appelle le filtre audio segment et on précise la durée de chaque segment à 15 secondes.
output_%02d crée la règle de nommage des fichiers de sortie : output_01.mp3, output_02.mp3, etc.
20. Couper un extrait vidéo en évitant les bandes noires
Lorsque l'on enregistre une vidéo, il se crée des images clés (keyframe) à des intervalles réguliers et lorsque l'on coupe un extrait en dehors de ses images clés, il peut apparaître des bandes noires au début et à la fin de l'extrait.
Pour une découpe très précise, on va forcer la création d'images clés aux 2 extrémités de notre découpe voulue.
ffmpeg -i input.mp4 -force_key_frames 00:00:10,00:00:20 output.mp4
On force la création de 2 images clés à 10 secondes et à 20 secondes pour découper très précisément cet extrait.
ffmpeg -ss 00:00:10 -i output.mp4 -t 00:00:10 -vcodec copy -acodec copy -y output_10sec.mp4
Avec cette commande on découpe le fichier de 10 secondes. Avec -y on écrase le fichier output.mp4 existant sans avoir à taper yes.
Les 2 commandes -vcodec copy et -acodec copy permettent la sortie sans ré-encodage.
Conclusion
Sur le net, vous trouverez énormément de sites vous donnant des conseils et des lignes de codes exemples pour vous aider dans votre apprentissage de FFmpeg. Et en premier le site http://ffmpeg.org/documentation.html qui pour l'instant ne comporte pas de traduction française.
Il existe également des interfaces graphiques qui s'appuient sur FFmpeg pour ceux qui ne se sentent pas avec les lignes de commandes.
Voici les logiciels qui peuvent vous aider.
Informations sur les fichiers multimédias : Médiainfo est un logiciel qui permet d'avoir les infos sur les fichiers multimédias. Il permet même de connaître ces infos en survolant le fichier, ces infos apparaissant sous forme d'infobulles (cf. image ci-dessous).
Lien de téléchargement : https://mediaarea.net/fr/MediaInfo

GUI pour FFmpeg
FFmpegYAG : https://sourceforge.net/projects/ffmpegyag/
FFmpeg Batch Av Converter : https://sourceforge.net/projects/ffmpeg-batch/
Ces 2 interfaces permettent les manipulations vues en ligne de commande mais en passant par des clics de souris.
Ne vous laisser pas rebuter par les lignes de commande. Pour moi cela permet de mieux contrôler ce que l'on fait sur les fichiers.



