Le site du projet ffmpeg : http://www.ffmpeg.org/
Pour installer FFmpeg :
$ sudo apt-get install ffmpeg
Depuis Ubuntu 14.04, ffmpeg n'est plus dans les dépôts Ubuntu.
Pour l'installer, sans passer par les dépôts, il suffit de télécharger le dernière version du programme sur le site officiel :
... puis décompresser l'archive téléchargée :
$ tar -xzf ffmpeg.static.[32|64]bit.latest.tar.gz
... puis copier les deux fichiers ffmpeg et ffprobe dans le répertoire /usr/local/bin :
$ sudo cp ffmpeg ffprobe /usr/local/bin
... et voilà, c'est terminé.
Pour vérifier la version installée :
$ ffmpeg -version
Pour incruster une image dans une vidéo, il suffit d'utiliser le filtre overlay avec la commande ffmpeg.
Par exemple, pour ajouter un logo en bas, à droite :
$ ffmpeg -i movie.mp4 -i logo.png -filter_complex "overlay=W-w-5:H-h-5" -b:v 3000k -s 720x480 -codec:v h264 -fs 20M movie_avec_logo.mp4
Détail des options :
-b:v permet d'indiquer le bitrate
-s permet d'indiquer les dimensions
-codec:v permet d'indiquer le codec vidéo à utiliser
-fs permet d'indiquer la taille maxi du fichier généré
-i permet d'indiquer tous les fichiers à traiter en entrée
-filter_complex permet d'utiliser les filtres disponibles
Détail du filtre overlay :
Pour utiliser le filtre overlay, il suffit de lui indiquer les positions horizontale et verticale à utliser pour insérer l'image ou la vidéo.
Pour insérer un logo en haut à gauche :
overlay=0:0
Avec un décalage de 5 px des bords gauche et haut :
overlay=5:5
Il est possible d'utiliser les variables W, w, H et h qui correspondent à :
W : Largeur (width) de la vidéo principale
H : Hauteur (height) de la vidéo principale
w : Largeur (width) de l'image ou de la vidéo à incruster
h : Hauteur (height) de l'image ou de la vidéo à incruster
Donc, pour incruster une image en bas, à droite avec un décalage de 5 px des bords bas et droite :
overlay=W-w-5:H-h-5
Résultat :
Lister les codecs vidéos :
$ ffmpeg -codecs | grep DEV
Lister les codecs audios :
$ ffmpeg -codecs | grep DEA
Convertir une vidéo mpeg4 en GIF animé :
$ ffmpeg -i input.mp4 -vf scale=356:-1 -r 10 -f image2pipe -vcodec ppm - | convert -delay 10 -loop 0 - gif:- | convert -layers Optimize - output.gif
Convertir une vidéo MOV en GIF animé :
1 - Conversion de la vidéo MOV à l'aide de la commande ffmpeg
$ ffmpeg -i input.mov -pix_fmt rgb24 output_tmp.gif
2 - Amélioration du GIF animé à l'aide de la commande convert
$ convert -layers output_tmp.gif output.gif
Convertir des images JPG/PNG en GIF animé:
$ convert -delay 20 -loop 0 *.JPG result.gif
Pour varier la vitesse du GIF animé, augmenter/diminuer la valeur du paramètre -delay
Extraire une partie d'une vidéo :
$ ffmpeg -i MOV.mp4 -ss 00:00:25 -t 00:00:10 MOV1.mp4
Cette commande permet d'extraire 10 secondes à partir de la 25ème seconde
-ss : Début de l'extraction
-t : Durée de l'extraction
Ralentir (effet slow motion) une vidéo :
$ ffmpeg -i MOV.mp4 -vf "setpts=8*PTS" MOV5.mp4
Plus le coefficient multiplicateur est élevé, plus la vidéo est ralentie.
1 étant le coefficient de base.
Accélérer une vidéo :
$ ffmpeg -i MOV.mp4 -vf "setpts=0.2*PTS" MOV5.mp4
Encoder une vidéo en 2 passes :
$ for P in 1 2; do ffmpeg -y -i MOV.mp4 -b:v 3000k -pass $P -r 30 -c:v h264 -c:a mp3 -b:a 128k -s 1024*768 MOV.avi; done
-b:v 3000k : Permet de régler le bitrate de la vidéo
-r 30 : Permet de définir le nombre d'images par seconde
-pass $P : Permet d'indiquer le numéro de la passe à effectuer
-c:v h264 : Permet d'indiquer le codec vidéo à utiliser
-c:a mp3 : Permet d'indiquer le codec audio à utiliser
-s 1024*768 : Permet d'indiquer la taille de la vidéo
-b:a 128k : Permet de régler le bitrate audio
Pivoter une vidéo :
$ ffmpeg -i MOV.mp4 -vf "transpose=1" MOV1.mp4
-vf "transpose=1" : Permet de faire pivoter la vidéo de 90 degrés vers la droite
-vf "transpose=2" : Permet de faire pivoter la vidéo de 180 degrés vers la droite
etc etc ...
Effet miroir :
$ ffmpeg -i MOV.mp4 -vf "hflip" MOV1.mp4
-vf "hflip" : Effet miroir horizontal
-vf "vflip" : Effet miroir vertical
Assembler plusieurs vidéos en un seul fichier :
$ ffmpeg -i "concat:MOV1.avi|MOV2.avi|MOV3.avi|MOV4.avi" -c copy MOV_0005.avi
-c copy : Permet d'indiquer de ne pas réencoder les vidéos
Conversion FLV To AVI :
$ ffmpeg -i mavideo.flv mavideo.avi
Conversion AVI To FLV :
$ ffmpeg -i mavideo.avi mavideo.flv
Conversion MP3 To WAV :
$ ffmpeg -i monFichier.mp3 monFichier.wav
Extraire toutes les images d'une vidéo :
$ ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
-s WxH -> dimensions des images générées
-f image2 -> format de sortie
-r 1 -> fréquence d'images : 1 image par seconde
Créer une vidéo à partir de plusieurs images :
$ ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
-r 12 -> fréquence d'images : 12 images par seconde
-s WxH -> dimension de la vidéo générée
-f image2 -> format du/des fichiers en entrée
Pour installer MEncoder:
$ sudo apt-get install mencoder (installation automatique des dépendances requises)
Lister tous les codecs audios supportés par MEncoder :
$ mencoder -oac help
Lister tous les codecs vidéos supportés par MEncoder :
$ mencoder -ovc help
Lister tous les formats vidéos de sortie supportés par MEncode :
$ mencoder -of help
AVI étant le format par défaut de MEncoder et le mieux supporté
Pour convertir des images au format JPG en une séquence vidéo au format AVI :
$ mencoder -ffourcc XVID mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o output.avi
Pour convertir une vidéo au format AVI en utilisant le codec de compression MJPEG :
$ mencoder fichier_in.avi -oac copy -ovc lavc -lavcopts vcodec=mjpeg -o fichier_out.avi
Pour convertir une vidéo au format AVI vers le format FLV permettant sa lecture dans un navigateur internet avec le plugin Macromedia Flash :
$ mencoder input.avi
-o output.flv
-of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ -srate 22050
Conversion WMV To MPEG-4 (Xvid) :
$ mencoder mavideo.wmv -ovc xvid -oac mp3lame -o mavideo.avi
Conversion FLV To AVI (MPEG-4/Divx) en 2 passes :
$ mencoder video.flv -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o a.avi
$ mencoder video.flv -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o a.avi
transcode est un programme de traitement vidéo.
Pour l'installer :
$ sudo apt-get install transcode
Il permet de faire énormément de choses mais mon option préférée est celle qui permet de stabiliser une vidéo.
Le résultat est vraiment très surprenant.
Exemple :
Pour stabiliser une vidéo, il faut d'abord que transcode analyse la vidéo source...
$ transcode -J stabilize -i movie.avi
Cette commande va générer un fichier trf.
Ajouter l'option --mplayer_probe pour utiliser le programme mplayer pour l'analyse si le format de la vidéo n'est pas directement supporté par transcode.
... et enfin, pour stabiliser la vidéo :
$ transcode -J transform --mplayer_probe -i movie.avi -y raw -o movie_stabilize.avi
Attention, la taille de la vidéo générée est très volumineuse avec le format raw.
Il est possible d'indiquer un codec vidéo pour l'encodage final :
$ transcode -J transform --mplayer_probe -i movie.avi -y xvid4 -o movie_stabilize.avi
La preuve en image :
A gauche, la vidéo d'origine, à droite, après stabilisation.
Surprenant, non ?