Effets spéciaux

Effets spéciaux (41)

samedi, 12 septembre 2020 16:43

Rotation d'une video selon un angle (en degre) donné

Écrit par

Pour "rotationner" une video de N degres, en ben il faut commencer par convertir ces degres en RADIAN. En effet, c'est en RADIANS que l'angle doit être fourni à FFMPEG. Les matheux sauront le faire mais je vous redonne la formule : (nombre de degres * PI) / 180.

Ainsi pour tourner une video de 45°, il faut envoyer à FFMPEG le résultat de la valeur 45*PI/180. Bonne nouvelle quand même, FFMPEG sait faire les opérations mathématiques. Ainsi, la rotation d'un image de 3 degrés donnera :

ffmpeg -i in.mp4 -vf "rotate=-3*PI/180" out.mp4

Ensuite, il faut sécifier le sens horaire ou anti-horaire de la rotation. Ceci explique dans l'exemple ci-dessus, le symbole "moins" devant le 3

En revanche, pour des rotation de multiples de 90, la commande est beaucoup + simple

Difficile d'expliquer synthétiquement dans mon titre. Cette commande part d'une video de départs (en général 24 ou 25 images par secondes) et à partir de cette video, ne va extrair UN image toutes les N secondes, puis les concatene. Chacune de ces images sera affichée N secondes.
Ici, N vaut 2 :

ffmpeg -i script-out.mp4 -an -vf "select='isnan(prev_selected_t)+gte(t-prev_selected_t,2)',setpts=0.20*PTS" output.mp4

C'est l'effet spécial par excellence à utiliser lorsque vous avez filmé avec votre téléphone dans le mauvais "mode" (vertical au lieu d'horizontal)

Ainsi, de part et d'autre de votre vidéo, dont vous aurez défini la taille dans cette commande, vous obtiendrez la même video mais floue.

ffmpeg -i outFINAL.mp4 -i outFINAL.mp4 -t 10 -filter_complex "[0:v]scale=-1:720[scaled_video];[1:v]scale=1280:720,boxblur=50[blur_image];[blur_image][scaled_video]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2[outv]" -c:v libx264 -aspect 1280/720 -map [outv] -c:a copy outFINAL2.mp4

 

mercredi, 17 juin 2020 20:14

Inverser le sens d'une video

Écrit par

Cette commande permet de prendre le film a l'envers : on par de la fin et on "remonte" le le film

ffmpeg -i Handi.mp4 -vf reverse Rhandi.mp4

  • -i : fichier en entrée
  • -vf : application du filtre reverse
  • Rhandi : fichier de sortie
lundi, 15 juin 2020 20:00

Détéction de "bord" pour "cropper"

Écrit par

Nous allons voir ici comment détecter les bords d'une image afin d'en extraire les bords.

Partons du principe que nous utilisont cette grande image (j'ai affiché les bords volontairement) :

casquette

 L'idée est d'obtenir une image "au plus proche" des bord de la casquette :

ffmpeg -loop 1 -i casquette.png -frames:v 3 -vf "negate,cropdetect=limit=0:round=0" -f null -

Ffmpeg vous retourne, en fin de ligne, les valeurs du crop : 1056:496:200:474

[Parsed_cropdetect_1 @ 0xed2ce0] x1:197 x2:1256 y1:472 y2:969 w:1056 h:496 x:200 y:474 pts:2 t:0.080000 crop=1056:496:200:474

Il ne vous reste plus que faire le crai cropping de votre fichier :

ffmpeg -i input.png crop=1056:496:200:472 output.png

ffmpeg -y -i flip.mp4 -i showfreqs.mp4 -filter_complex "color=0xAAAAAA:s=1920x1080:d=24[alpha];[1:v][alpha]alphamerge[1v];[0:v][1v]overlay[v]" -map '[v]' -an outFINAL.mp4

  • flip.mp4 : fichier video de "fond"
  • showfreqs.mp4 : fichier à surimprimer sur la videp de fond
  • color : (noir ici), code hexa de la couleur alpha
  • s= : taille finale
  • d= : ?

Le reste de la commande sert à positionner u,ne video par rapport à l'autre

mercredi, 10 juin 2020 22:28

Effet de glissement d'une video sur une autre

Écrit par

ffmpeg -i entree1.mp4 -i entree2.mp4 -filter_complex "[0:v][1:v]overlay=x='if(lte(-w+(t)*100,w/2),-w+(t)*100,w/4)':y=0[out]" -map '[out]' -y sortie.mp4

  • entree1.mp4 : premier fichier en entrée, qui passera SOUS le deuxieme
  • entree2.mp4 : deuxieme fichier en entrée, qui passera SUR le deuxieme
  • filter_complex : opération mathématique d'effet de glissement
  • sortie.mp4 : fichier de destination

 

samedi, 06 juin 2020 14:58

Effet fisheyes

Écrit par

ffmpeg -i fic_entree.mp4 -vf lenscorrection=k1=-0.8101:k2=0 sortie_lensfun.mp4

  • -i fic_entree.mp4 : fichier en entrée
  • -vf lenscorrection : Commande générant un effet fisheye
  • sortie_lensfun.mp4 : fichier en sortie

ffmpeg -f lavfi -i color=c=00ff00:s=1280x720:d=10 -loop 1 -i paques.png -filter_complex "[1]rotate=angle=PI*t:fillcolor=none:ow='hypot(iw,ih)':oh=ow[fg];[0][fg]overlay=x=(W-w)/2:y=(H-h)/2:shortest=1" output.mp4

  • color=c=00ff00 : couleur de fond
  • s : taille de la video finale (longueur, largeur)
  • d : durée en secondes
  • -loop 1 : au bout du temps défini ci-avant, relance la video pour "boucler"
  • -i paques.png : Image à laquelle appliquer la rotation
  • -filter-omplex : calcul mathématique de la rotation (NDLR : désolé, les maths et moi... )
mardi, 02 juin 2020 20:16

Accélérer une video

Écrit par

ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

  • -i : nom du fichier en entrée
  • -filter:v "setpts=0.5*PTS" : taux d'acceleraltion
  • -an : supprime le son (qui est horrible en accéléré)
  • output.mp4 : fichier de sortie
Page 1 sur 3