Multimédia

Musique

eyeD3

eyeD3 est un outil python qui permet de visualiser/créer les tags ID3 des fichiers MP3.

Ce programme s'utilise uniquement en ligne de commande.

Installation

$ apt-get install eyeD3

ou

$ apt-get install python-eyeD3

Utilisation

Affichage des tags ID3 d'un fichier MP3

$ eyeD3 monFichier.mp3

Renseigner les tags ID3 d'un fichier MP3

Renseigner le nom de l'artiste

$ eyeD3 -a "Nom Artiste" monFichier.mp3

Renseigner le nom de l'album

$ eyeD3 -A "Nom Album" monFichier.mp3

Renseigner le titre de la chanson

$ eyeD3 -t "Titre Chanson" monFichier.mp3

Renseigner le numéro de la chanson

$ eyeD3 -n 1 monFichier.mp3

Renseigner le nombre total de chansons sur l'album

$ eyeD3 -N 10 monFichier.mp3

Afficher la liste des genres musicaux

$ eyeD3 --list-genres

Renseigner le genre de la chanson

$ eyeD3 -G "Pop / Funk" monFichier.mp3

Renseigner l'année de la chanson

$ eyeD3 -Y 2015 monFichier.mp3

Afficher la liste des types d'images

$ eyeD3 --list-image-types

Ajouter une image

$ eyeD3 --add-image=/chemin/vers/image:TYPE[:DESCRIPTION] monFichier.mp3

TYPE correspond au type d'image à insérer (voir commande du dessus). Une description optionnelle peut être ajoutée.

Pour supprimer une image, il suffit d'indiquer le type correspondant sans renseigner d'image.

Afficher l'aide de la commande eyeD3

$ eyeD3 -h

Utilisation dans un script Python

Installation

Télécharger la dernière version sur le site eyed3.nicfit.net
$ wget http://eyed3.nicfit.net/releases/eyeD3-X.Y.Z.tgz
Décompresser l'archive
$ tar -xvzf eyeD3-X.Y.Z.tgz
Exécuter le script d'installation
$ cd eyeD3-X.Y.Z
$ python setup.py install

Utilisation

import eyed3

audiofile = eyed3.load("chanson.mp3")
audiofile.tag.artist = u"Artiste"
audiofile.tag.album = u"Album"
audiofile.tag.title = u"Titre"
audiofile.tag.track_num = 4

audiofile.tag.save()

Plus d'info sur http://eyed3.nicfit.net/

Etiquettes: 

Photo

Convertir une image JPEG en caractères ASCII

jp2a est une commande qui permet d'afficher dans la console une image JPG en caractères ASCII.

Pour l'installer :

sudo apt-get install jp2a

Convertir une image :

$ jp2a erreur404.jpg

Ce qui donne :

L'effet est vraiment bluffant sur certaines photos.

La conversion ne se fait que sur des fichiers JPG.
Pour convertir une image PNG en JPG utiliser la commande convert de ImageMagick :

$ convert image.png image.jpg

ou

$ convert image.png jpg:- | jp2a -

Cette dernière commande permet de convertir l'image PNG en JPG directement sur la sortie standard afin de la transmettre à la commande jp2a via son entrée standard.

Etiquettes: 

Imagemagick

Imagemagick est un logiciel ultra-puissant qui s'utilise en ligne de commande et qui permet de manipuler quasiment tous les types d'images.

Convertion, redimensionnement, rotation, fusion, animation etc etc ... sont quelques unes des fonctions proposées par Imagemagick.

Pour installer imagemagick :

$ sudo apt-get install imagemagick

Convertir une vidéo AVI en GIF animé

$ convert -quiet -delay 1 input.avi  +map  output.gif

  Pour convertir une vidéo MOV en GIF animé.

Convertir une image png en jpg et inversement

$ convert image.png image.jpg

Convertir une série d'images png en jpg et inversement

$ for f in *.png; do convert $f $(echo $f | cut -d. -f1).jpg; done

ou

$ mogrify -format jpg *.png

Modifier le taux de compression pendant la conversion

$ mogrify -quality 90 -format jpg *.png

Convertir une série d'image jpg (ou tout autre format) en gif animé

$ convert *.jpg anime.gif

Ajouter l'option -delay num pour paramétrer la vitesse d'animation du gif animé.
num est exprimé en 1/100 seconde.

Ajouter l'option -loop num pour paramétrer le nombre de boucle.
Par défaut -loop 0 (infini).

Convertir et redimensionner une image

$ convert image.jpg -resize 50% image.png

ou en indiquant une taille en pixel

$ convert -resize 800x600 image.png image.jpg

ou en indiquant seulement la largeur (maxi) en pixel (le ratio est conservé)

$ convert -resize 800x image.png image.jpg

ou seulement la hauteur (maxi) en pixel (le ratio est conservé)

$ convert -resize x600 image.png image.jpg

et toutes les images d'un dossier avec  la commande mogrify

$ mogrify -resize 800x600 -format jpg *.png

Créer une icône à partir d'une image

$ convert -colors 256 -resize 16x16 image.jpg icone.ico

Convertir une image en niveau de gris

$ convert -type Grayscale image.jpg image.grayscale.jpg

Les différents types disponibles

$ convert -list type

Bilevel
ColorSeparation
ColorSeparationAlpha
ColorSeparationMatte
Grayscale
GrayscaleAlpha
GrayscaleMatte
Optimize
Palette
PaletteBilevelAlpha
PaletteBilevelMatte
PaletteAlpha
PaletteMatte
TrueColorAlpha
TrueColorMatte
TrueColor

Un exemple de chaque type est disponible ici.

Ajouter une bordure à une image

Une bordure transparente d'1 pixel

$ convert -bordercolor Transparent -border 1x1 image.jpg image-bordure.jpg

Une bordure noire de 10 pixels

$ convert -bordercolor black -border 10x10 image.jpg image-bordure.jpg

Créer le négatif d'une image

$ convert -negate image.jpg negate.jpg

Retourner une image verticalement

$ convert -flip image.jpg flip.jpg

Utiliser -flop pour retourner l'image horizontalement.

Pivoter une image vers la droite

$ convert -rotate 90 source.jpg destination.jpg

Utiliser -90 pour pivoter l'image vers la gauche.

Ajouter un texte en haut à gauche sur plusieurs images

$ mogrify -fill white -pointsize 16 -annotate +10+26 'Copie Interdite' *.jpg

-fill white : couleur du texte
-pointsize 16 : dimension du texte en pixel
-annotate +10+26 : position du texte sur l'image (verticale/horizontale)

Pour la position horizontale du texte, tenir compte de la dimension du texte.

Faire un montage avec plusieurs images

$ montage -background "azure3" *.jpg montage.jpg

Avec l'option -geometry, il est possible de modifier la taille des bordures entre chaque image.
La commande suivante ajoute une bordure de 5 pixels entre chaque image

$ montage -geometry +5+5 *.jpg montage.jpg

Avec l'option -resize, il est possible de redimensionner les images à assembler.
La commande suivante réduit la taille de chaque image de 80% avant de les assembler.

$ montage -resize 20% *.jpg montage.jpg

Extraire une partie d'une image

$ convert image.jpg -crop XxY+L+T newImage.jpg

X : Largeur de la nouvelle image
Y : Hauteur de la nouvelle image
L : Point de départ à gauche de l'image d'origine
T : Point de départ du haut de l'image d'origine

Par exemple, dans le schéma ci-dessous, pour extraire l'image B (500x300) de l'image A (800x600) à partir du point L (20 px à partir du bord gauche) et du point T (15 px à partir du bord haut)

$ convert image.jpg -crop 500x300+20+15 newImage.jpg

Même traitement mais sur plusieurs images

$ for f in *.png; do convert $f -crop 500x300+20+15 new_$f; done

Convertir des images png (ou autres) en un fichier pdf (avec compression des images en jpeg)

Attention, suite à une faille de sécurité, cette conversion n'est plus possible à moins de modifier un paramètre dans le fichier policy.xml de ImageMagick. Plus d'info ici.
Merci à Sergio pour l'info.

$ convert *.png -compress jpeg monDoc.pdf

Et inversement :

$ convert -density 500 monDoc.pdf monDoc.jpg

Afficher la liste de toutes les couleurs disponibles

$ convert -list color

Générer les échantillons de toutes les couleurs gérées par ImageMagick

for liste in $(convert -list color | sed '1,5d' | awk '{print $1 "|" $2}'); do couleur=$(cut -d'|' -f1 <<< $liste); code=$(cut -d'|' -f2 <<< $liste); convert -size 50x50 xc:"$code" $couleur.png; done

Cet enchainement de commandes permet de générer des images PNG de 50px de toutes les couleurs dans le dossier courant. Tous les fichiers sont nommés par leur nom de couleur.

Exemple des images générées : http://isbeta.fr/4f2fc

Centrer une image dans un calque :

La commande suivante permet de créer un calque transparent d'une taille de 100 x 100 pixels et d'y insérer, au centre,  une image proportionnellement redimensionnée à la taille du calque

convert img.png -resize 100x100 -size 100x100 xc:none +swap -gravity center -composite new_img.png

Par exemple :

Image d'origine

Image redimensionnée et centrée dans le calque

Réaliser une vidéo à partir d'images

$ convert -delay 25 *.jpg anim.mpg

-delay 25 = 25 images par seconde

Afficher les informations d'une image

$ identify image.jpg

Avec plus de détail

$ identify -verbose image.jpg

Créer une image à partir d'un texte

convert -background white -fill black -font "Cretino-Regular" -pointsize 30 -size 200x -gravity Center caption:"Mon texte." "e.gif"
$ display e.gif

e.gif

Créer une image à partir d'un texte contenu dans un fichier

$ cat texte
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sed finibus dui. Interdum et malesuada fames ac ante ipsum primis in faucibus. Quisque ultrices erat in tempor aliquam. Ut ut facilisis lectus. Sed bibendum pellentesque urna, nec convallis massa.
convert -background "rgb(169,169,169)" -fill "rgb(255,255,255)" -font "Abecedario_pautada-Regular" -pointsize 40 -size 480x -gravity Center caption:"$(cat texte)" "d.gif"
display d.gif

d.gif

Souvenir d'école

f.gif

Vidéo


FFmpeg

Installation

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 :

Pour la version 32 bits.

Pour la version 64 bits.

... 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

Ajouter un logo à une vidéo

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 :

Etiquettes: 

Conversion

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

Mencoder


Installation

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é

Conversion

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

  • mf://*jpg tout les jpg du repertoire courant (on peut spécifier un autre répertoire en entrant son chemin complet entre guillemets)
  • w=800:h=600:fps=25:type=jpg image de type jpg de dimension 800x600 avec en sortie une video à 25 img/sec
  • -ovc lavc -lavcopts vcodec=mpeg4 encodage en mpeg4 ISO compatible xvid

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

  • -oac copy copie sans encodage de la bande son
  • -ovc lavc -lavcopts vcodec=mjpeg encodage de la video en MJPEG avec la famille de codec lavc (projet FFmpeg)

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

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 ?

Etiquettes: