L’installation sous debian est assez simple, en console sous root :
apt install ffmpeg libavcodec-extra
on peut ajouter l’installation de:
oggvideotools vorbis-tools flac mpv
La commande ffmpeg :
La doc est monumentale et les options très nombreuses, nous ferons ici, une petite récapitulations des commandes les plus demandés. Si possible les plus simples.les plus courantes
Le codec est un algorithme qui permet d'encoder la vidéo ou le son afin de l'adapter au protocole de transport (IP,DVB,fichier…) notamment en réduisant le débit(Kbits/s).
Selon les codecs, la compression peut s'accompagner d'une perte de qualité dans l'image ou le son plus ou moins importante.
De la même manière que pour les formats, FFmpeg/Libav liste les codecs qu'il est capable de gérer:
Codecs: cette commande renvoie un grand nombre de réponses.
ffmpeg -codecs
renvoie un grand nombre de réponses.
D = Decoding supported
E = Encoding supported
V = Video codec
A = Audio codec
S = Subtitle codec
D = Data codec
T = Attachment codec
I = Intra frame-only codec
L = Lossy compression
S = Lossless compression
et
ffmpeg -filters
retourne elle aussi, une grande quantité d’informations
Dans les formats citons mkv, webm, ogv, ogg. Dans les codecs vidéos citons : vp9, vp8, theora(vp3)
Ogg, et le codec audio Vorbis sont 2 création du monde du logiciel libre
Les formats Flac, apc, monkey audio sont des formats dits « lossless » : ils sont chargés d’encoder ’’’sans perte’’’ des données audio.
La commande pour voir les formats disponibles sur lesquels ffmpeg peut travailler :
ffmpeg -formats -hide-banner | less
ffmpeg -formats | less
ça affichera des choses comme :
* D : sS ffMpeg sait Décoder ce type de boite ;
* E :Si ffMpeg sait Encoder ce type de boite ;
* ffmpeg: Prend en charge les formats courants tels que MP4, AVI, MKV, MOV, etc., ainsi que des codecs spécifiques tels que H. 264, H ;
* ffmpeg : Outil de traitement ;
* ffprobe : Outils d’analyse ;
* ffplay : Lecteur vidéo.
La première chose à faire lorsque l’on a un fichier, en l’occurrence multimédia, dont on ignore tout est de rechercher les informations le concernant.
Exemple :
ffmpeg -i ma-vidéo.mp4
Pour mieux comprendre les options d’encodages des vidéos :
-b configuration du débit binaire par défaut 200 kbps
-sameq copie à l'identique le débit binaire
-s configuration de la taille du cadre d'affichage
-aspect configuration du format d'affichage (4:3, 16:9 ou 1.3333, 1.7777)
-vcodec ou -c:v décision du choix du codec
-pass nombre de passage à l'encodage, une passe (-pass 1) ou deux passes (-pass 2)
-qmax détermine le seuil maximum du débit binaire variable (VBR)
-f sélectionne le nom du conteneur
-r définit le nombre d'images par seconde
-crf (constant rate factor) permet de définir un niveau de qualité entre 0 et 51 (petit nombre = meilleure qualité, module facilement le ratio poid/qualité.
Plus on donne un nombre proche de zéro plus le fichier et proche de sa source et donc lourd. En général en fonction du besoin on attribue des valeurs entre 15 et 25. mais plus de temps de calcul) en H264/Mpeg4.
0 = (Lossless) super lourd, identique à la source.
10 = lourd, grande qualité
30 = léger, mauvaise qualité
264 ou MPEG-4. Le codec H. 264 est répandu pour la simple raison qu'il permet d'encoder des images de qualité DVD avec une fraction de la bande passante requise par les techniques de compression
framerate 30 nombre d'images par secondes
video_size 1280×720 taille de la vidéo
f x11grab capturer la sortie X
i “$DISPLAY” apturer l'écran par défaut
vcodec mpeg4 utiliser le codec vidéo mpeg4
b 1200 bitrate à 1200 kb ( le bitrate audio)
qscale 1 zoom à 100%
-preset Détermine la vitesse d’encodage, une vitesse plus lente permet au logiciel d’optimiser le fichier pour gagner encore de la place, les valeurs disponibles sont :
ultrafast superfast veryfast faster fast medium (default) slow slower veryslow
les options d’encodages pour le son
-acodec ou -c:a détermine le choix du codec
-ar configuration de la fréquence d'échantillonnage (44100 Hz)
-ab configuration du débit binaire par défaut 64 kbps (-ab 128kb)
-ac configure le nombre de canaux (mono-stéréo)
-aac (-acodec aac)
Dans les codecs audio citons : flac, opus, vorbis et bien d'autre.
Convertir simplement une vidéo de musique mp4 en son mp3
ffmpeg -i mamusic.mp4 mamusic.mp3
Convertir un son au format wav en son au format mp3
ffmpeg -i mamusic.wav -ar 44100 mamusic.mp3
Les fichiers MP3 peuvent aussi être encodés avec un bitrate variable.
On peut encoder un MP3 en différentes qualités. de 64 à 320Kbps. Le plus courant étant le 128 ou le 192.
Ils peuvent être encodés en mono, stéréo ou joint-stéréo
fusionner deux vidéos, ici, j’ai la même vidéo mais deux fois
une fois avec l’image sans le son. deskshare.mp4
une fois avec le son sans l’image. webcams.mp4
je vais donc les fusionner pour avoir l’image et le son
ffmpeg -i deskshare.mp4 -i webcams.mp4 -map 0:v -map 1:a -c copy mavidéo-visio.mkv
-map 0:v“ : du premier fichier d’entrée, ne prendre que la vidéo
-map 1:a” : du deuxième fichier d’entrée, ne prendre que l’audio
VOIR le tuto de cemoi:
LIEN: https://debian-facile.org/utilisateurs:cemoi:tutos:h265?s[]=ffmpeg
Commençons par une application simple, convertir une vidéo au format MP4 en une vidéo MPEG.ou vice-versa
ffmpeg -i vidéo.mp4 vidéo.mpeg
ffmpeg -i vidéo.mpeg vidéo.mp4
ffmpeg -i Marlene-Dietrich-Lili_Marleen.webm Marlene-Dietrich-Lili_Marleen.mp4
Conversion AVI en FLV
ffmpeg -i vidéo.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv vidéo.flv
Convertir une vidéo en forçant un bitrate
ffmpeg -i CLDM.mp4 -b:v 512k -b:a 96k CLDM-2.ogg
explications des paramètres :
* -ab : configuration du baud rate binaire du flux audio en kbps ;
* -ar : définition de la fréquence d’échantillonnage de la piste audio ;
* -b : configuration du baud rate binaire du flux vidéo en kbps ;
* -r : valeur du nombre d’images par seconde (framerate) ;
* -s : redimensionnement du format de la vidéo ;
* -f : définition du format de sortie .
ffmpeg -i video.mp4 -r 5 images%02d.png
Le paramètre -r permet de définir la fréquence d’extraction d’images. Pour une vidéo dont le framerate est de
25 images par seconde, si vous spécifiez un paramètre à -r 5, cela correspondra à une extraction d’images toutes les 5 images.
convertir une vidéo MP4 vers une image animée GIF non compressée
ffmpeg -i vidéo.mp4 vidéo.gif
ffmpeg -i Marlene-Dietrich-Lili_Marleen.webm Marlene-Dietrich-Lili_Marleen.mp3
Compresser une vidéo, est souvent utile pour mettre en ligne, et ainsi alléger le poids du fichier, il existe une multitude de façon de coder cette conversion, j'en mettrai que celles que j'ai testé.
ffmpeg -i mavidéo.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 mavidéocompressé.mp4
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mp4
Ici, “-crf 23” est utilisé pour contrôler la qualité de la vidéo compressée
18 produira une meilleure qualité mais un fichier plus volumineux
28 produira une qualité plus faible mais un fichier plus petit
“-b:a 128k” fixe le débit audio à 128 kbps (kilobits par seconde)
Compresser ma vidéo baba.mp4
ffmpeg -i baba.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 new_baba.mp4
ffmpeg -i mavidéo.mp4 -ss 00:00:30 -t 00:01:30 manouvellevidéo.mp4
-ss indique le moment où vous souhaitez récupérer la séquence vidéo
-t indique la durée de la vidéo de sortie
ffmpeg -i input.mp4 -vf "colorchannelmixer=.3 :.4 :.3:0 :.3 :.4 :.3:0 :.3 :.4 :.3" output.mp4
Cela permet d'appliquer une matrice de conversion des couleurs pour créer un effet noir et blanc.
Avec mpv ou sous console, * pour augmenter le son et / pour diminuer le son
ffplay Fabrizio-andré-le-passanti.mp3
monter ou diminuer le son de 10 décibels :
ffmpeg -i video.mp4 -vcodec copy -af "volume=10dB" video-augmentee.mp4
On peut aussi baisser le son :
ffmpeg -i video.mp4 -vcodec copy -af "volume=-5dB" video-diminuee.mp4
redimensionner ma vidéo en 1280×720
ffmpeg -i video.mkv -vf scale=-1:720 video-720p.mkv
dans cet exemple, je capture une vision-conférence sur le premier écran (avec un sérieux problème non résolu..
commande à adapter à votre écran, Il faut préciser les coordonnées du point de départ de la capture (x=200 et y= 100) :
ffmpeg -video_size 1280x1024 -framerate 30 -f x11grab -i "$DISPLAY" -f pulse -i 0 -c:v libx264 -crf 22 -preset ultrafast -c:a libopus -ac 2 mavidéo.mkv
le problème est, que j'ai seulement le son de mes interventions, et que les autres participants ne sont pas captés par ma commande, soit une option de firefox, soit une option ffmpeg… c'est à découvrir ?
s'assurer que les images ont la même dimension
renommer vos images en, 001.jpeg, 002.jpeg, 003.jpeg, ou 01.png. 02.png, 03.png etc..
ffmpeg -r 1 -s 1080x1620 -i pictures/%03d.jpeg -vcodec libx264 -crf 25 mavidéo.mp4
-r 1 est le taux d'images par seconde.
-s 1080×1620 est la taille de notre vidéo
-i image%d.jpg, %d est transformé en 1, 2, 3, 4, 5..etc…
-crf permet de définir un niveau de qualité
tuto de Pititux le 22-04-2010
https://ffmpeg.org/ffmpeg-utils.html
https://doc.ubuntu-fr.org/ffmpeg
https://ffmpeg.org/documentation.html
https://nschlia.github.io/ffmpegfs/html/index.html
https://www.linuxtricks.fr/wiki/ffmpeg-la-boite-a-outils-multimedia