#Libav (avconv) # Installer avconv : $ sudo apt-get install libav-tools -- Obtenir des infos -- Formats pris en charge : $ avconv -formats Connaitre les codecs installés : $ avconv -codecs Obtenir les caractéristiques d'une vidéo : $ avconv -i maVidéo.mp4 -- Conversion -- Pour l'exemple, nous convertissons ici une vidéo en mpeg4, en 2 passes : 1ère passe : $ avconv -i vidéoEnEntrée.mp4 -threads auto -s 1920x1080 -vcodec mpeg4 -acodec libvo_aacenc -b 20000k -pass 1 -r 30 -y -vf "vflip" vidéoEnSortie.mp4 2ème passe : $ avconv -i vidéoEnEntrée.mp4 -threads auto -s 1920x1080 -vcodec mpeg4 -acodec libvo_aacenc -b 20000k -pass 2 -r 30 -y -vf "vflip" vidéoEnSortie.mp4 Autre exemple : $ avconv -i mjpeg-video.avi -ar 44100 output.mp4 -- Découper une vidéo -- On utilise la commande avconv. Par exemple, pour conserver la partie qui commence à la 25e seconde et qui termine à 1min38 : $ avconv -i MVI_4764.MOV -ss 00:00:25 -t 00:01:13 -codec copy extrait.avi -i (input) indique le fichier à lire -ss précise la partie à "sauter" au début -t précise la durée de la vidéo : on soustrait alors la fin voulue du début pour obtenir la durée cible -codec : indique que l'on souhaite conserver le même codec. -y : permet de forcer l'écrasement du fichier cible -an : permet d'ignorer le flux audio -codec peut prendre un nom de codec comme argument. On peut alors adjoindre 2 options : -b pour préciser le bitrate d'un flux -s pour préciser la taille (en pixels) de la vidéo résultante Exemple de découpe avec encodage vidéo en mpeg4 et audio en MP3 : $ avconv -i MVI_4764.MOV -ss 00:00:25 -t 00:01:13 -s 1280x720 -b:v 4M -b:a 64k -codec:v mpeg4 -codec:a libmp3lame extrait.avi ici on a choisit un bitrate vidéo de 4Mb/s qui reste une très bonne qualité. Pour l'audio, un bitrate de 64kb/s est une qualité assez basse. Pour obtenir la liste des codecs disponibles : $ avconv -codecs -- Filtres (Chaînes de traitements) -- avconv permet de créer des filtres. Un filtre vidéo est défni par un ensemble de chaînes, dont les définitions sont séparées par des points-virgules (;). Dans chaque chaîne, on sépare les différents traitements par des virgules (,). Afin de faciliter la conception d'un filtre, il existe un outil qui permet de voir en live le résultat : avplay Par exemple, avec la commande suivante, on obtient une vidéo en 1280x720 avec incrustation d'un filigrane, directement à l'écran, sans transcodage et sans écriture dans un fichier : $ avplay -vf 'movie=logo.png [watermark];[in] scale=1280:720, [watermark] overlay=10:10 [out]' MVI_4764.MOV Ce qui peut se représenter par : in -> scale (1280:720) -> watermark -> overlay (10:10) -> out | logo.png -> | On peut utiliser la webcam au lieu d'une vidéo. Pour cela, on utilise video4linux2 avec l'option -f : $ avplay -vf 'movie=logo.png [watermark];[in] [watermark] overlay=10:10 [out]' -f video4linux2 /dev/video0 Un autre exemple un peu plus compliqué : $ avplay -vf 'movie=logo.png [watermark];[in] split [pip], [watermark] overlay=10:10, [pip_out] overlay=W-w-10:H-h-10 [out]; [pip] scale=128:96, hflip [pip_out]' -f video4linux2 /dev/video0 Arguments de l'overlay : W : largeur de l'image principale w : largeur de l'image à incruster H : hauteur de l'image principale h : hauteur de l'image à incruster avec W-w-10, on place le coin 'haut gauche' de l'image incrustée à la largeur de l'image principale, moins la largeur de l'image incrustée, moins 10 pixels. Même raisonnement pour la hauteur. Pour obtenir la liste des filtres disponibles, on peut utiliser la commande suivante : $ avplay -filters Un autre exemple pour le fun : $ avplay -vf '[in] split [T1], split [T3], fade=in:5:60, [T4] overlay=W-w-10:H-h-10, [T2] overlay=10:10 [out]; [T1] scale=256:192, hflip, lutrgb=g=0:b=0 [T2]; [T3] scale=128:96, negate, vflip [T4]' -f video4linux2 /dev/video0