Wiki CgX

Parce que j'ai un cerveau, mais pas trop.

Outils pour utilisateurs

Outils du site


it:linux-utilitaires:conversions-video

Conversions Vidéo

Avec des versions anciennes d'ubuntu, le paquet ffmpeg existe sous le nom de avconv

... vers MP4 h264 et h265

ffmpeg -i "input.mov" -vcodec libx264 "output.mp4"
ffmpeg -i "input.mov" -vcodec libx265 "output.mp4"

... vers AV1 (à tester)

ffmpeg -i input.mov -c:v libaom-av1 -crf 30 "output.mp4"

Faire un timelapse à partir d'images

/usr/bin/ffmpeg -r 10 -y -pattern_type glob -i "/path/to/image_*.jpg" -s 1920x1080 -vcodec libx265 "timelapse.mp4"
  • -r : Nombre d'images par secondes
  • -pattern_type glob Le fichier d'entrée est une expression (jokers)
  • -s : Résolution de sortie
  • -vcodec : Codec de sortie

Concaténer des vidéos

Il faut que toutes les vidéos aient le même format.

D'abord on créé un fichier texte :

files.txt
file 'input1.mp4'
file 'input2.mp4'
file 'input3.mp4'

Ensuite :

ffmpeg -f concat -i files.txt -c copy output.mp4

Découper (cut) une vidéo

ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:01:20 -t 00:03:00.000 output.mp4
ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:01:20 -to 00:06:10.325 output.mp4
  • -ss : TimeCode de début
  • -to : TimeCode de fin
  • -t : TimeCode de durée
  • Format des timecodes : hh:mm:ss.ccc

Faire tourner une vidéo (rotation)

ffmpeg -i input.mp4 -vf "transpose=2" output.mp4

Pour transpose, les valeurs possibles sont les suivantes :

  • 0 = 90° sens anti-horaire ↪️ + Miroir vertical ↕️
  • 1 = 90° sens horaire ↩️
  • 2 = 90° sens anti-horaire ↪️
  • 3 = 90° sens horaire ↩️ + Miroir vertical ↕️

Pour faire tourner de 180°, il faut appliquer le transpose deux fois :

ffmpeg -i input.mp4 -vf "transpose=1, transpose=1" output.mp4

Stabiliser (déshaker) une vidéo

Il faut installer le paquet libvidstab1.1 ou équivalent

1ère passe, identifier les "bougés"

ffmpeg -i input.mp4 -vf vidstabdetect=shakiness=10:accuracy=15 -f null -

Cela génère un fichier transforms.trf, qui représente la somme des modifications à faire

Quelques options à bidouiller si besoin :

  • shakiness : Règle le niveau tremblement de la vidéo d'entrée ou la rapidité de la caméra. Accepte un nombre entier compris entre 1 et 10, une valeur de 1 signifie peu de secousses, une valeur de 10 signifie de fortes secousses. La valeur par défaut est 5.
  • accuracy : Définit la précision du processus de détection. Accepte une valeur comprise entre 1 et 15. Une valeur de 1 signifie une faible précision, une valeur de 15 signifie une grande précision. La valeur par défaut est 15.
  • stepsize : Définit la taille du pas du processus de recherche. La région autour du minimum est balayée avec une résolution de 1 pixel. La valeur par défaut est 6. (J'avoue j'ai rien compris)

2ème passe, on recréé la vidéo

ffmpeg -i input.mp4 -vf vidstabtransform,unsharp output.mp4

On utilise implicitement le fichier transforms.trf pour recréer la vidéo stabilisée.

Notez l'utilisation du filtre unsharp en plus, qui est conseillé, mais pas obligatoire

Une fois terminée :

rm transforms.trf
it/linux-utilitaires/conversions-video.txt · Dernière modification : 14 Apr 2023 :: 09:36 de CgX