ffmpeg -y -i input.mp4 -i logo.jpg -filter_complex "[1][0]scale2ref=w=iw/5:h=ow/mdar[logo][main];[main][logo]overlay" -c:v libx264 -c:a copy output.mp4
  • -y : réponds oui automatiquement aux questions que pourrait poser la commande ffmpeg
  • -i input.mp4 : video sur laquelle sur imprimer le logo
  • -i logo.jpg : chemin du fichier à intégrer en surimpression

la proportionalité du logo est gérée par le filtre -filter_complex

Add a comment

Vous avez une vidéo de 100 secondes, sur laquelle vous souhaitez y intégrer 50 fois, une boucle musicale de 2 secondes (c'est pour l'exemple car ca doit etre tres pénible ca.)

ffmpeg -i somevideoinput.mp4 -stream_loop -1 -i will_be_looped.wav -vcodec copy -max_muxing_queue_size 9999 -shortest -fflags +shortest -max_interleave_delta 200M -map 0:v -map 1:a output.mp4

  • -i somevideo.mp4 : votre video
  • -stream_loop -1 : répétition de la musique
  • -vcode copy : on reprend le codec de la video de départ
  • -max_muxing_queue_size : Lors du transcodage de flux audio et / ou vidéo, ffmpeg ne commencera pas à écrire dans la sortie tant qu'il n'aura pas un paquet pour chacun de ces flux. En attendant que cela se produise, les paquets des autres flux sont mis en mémoire tampon. Cette option définit la taille de ce tampon, en paquets, pour le flux de sortie correspondant. La valeur par défaut de cette option doit être suffisamment élevée pour la plupart des utilisations, alors ne touchez cette option que si vous êtes sûr que vous en avez besoin. (sic)
  • -shortest : la durée final du fichier prosuit se cale sur la longueur des fichiers en entrée la plus petite
  • -fflags : indicateur de format
  • -max_interleave_delta : Définissez la durée maximale de mise en mémoire tampon pour l'entrelacement. La durée est exprimée en microsecondes et est par défaut de 10 000 000 (10 secondes).
  • -map : L'option  est utilisée pour choisir les flux des entrées qui doivent être inclus dans la ou les sorties. L'option -map peut également être utilisée pour exclure des flux spécifiques avec un mappage négatif.
Add a comment

ffmpeg -i back.mp4 -i petite.mp4 -filter_complex "overlay=20:20" output.mp4

La première video (-i back.mp4) est la "grande" video (en fond) qui est jouée.
L'overlay est la video (petite.mp4). Elle est placée à 20 pixels du haut et de la gauche de la grande video
La video de sortie est output.mp4

Il est aussi possible d'appliquer des filtres de redimentionnement à votre overlay :

ffmpeg -y -i out.mp4 -i 1080_Happy_Holidays_Red_Videvo.mov -i logo.png -filter_complex "[0]scale=iw/4:-1[pip];[1][pip]overlay=100:100[watermark];[watermark][2]overlay=main_w-overlay_w-10:main_h-overlay_h-10" output.mp4

On peut mentionner ici dans le paramètre filter_complex :

  • Le paramètre scale jouant sur le taux de redimentionnement de la fideo a mettre en overlay (scale=iw/4:-1)
  • La taille de la video en overlay à incruster (100:100)
  • Le positionnement de l'overlay par rapport au coin haut gauche

Un overlay peut aussi être "adapté" en taille à la video d'origine.

ffmpeg -i "D:\Logo\video.mxf" -i D:\Logo\logo_720p.png -filter_complex "[0:v]scale=1280:720[bg];[bg][1:v]overlay=60:50" "D:\Logo\output_720p_with_logo.mp4"

dans cette commande, on spécifie :

  • La taille finale du fichier généér (1280 x 720)
  • La taille de l'overlay (60x50)
Add a comment

ffmpeg -y -i output.mp4 -vf "drawtext=fontfile=/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf: fontsize=36:fontcolor=yellow: text='%{pts\:gmtime\:1507046400\:%d-%m-%Y %T}'" outputTEMPS.mp4

 

  • -y : permet de ne pas à avoir a répondre "oui" aux demandes effectuées par le traitement
  • -i : nom du chier à traiter
  • -vf : Cette commande drawtext=fontfile=/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf: fontsize=36:fontcolor=yellow: text='%{pts\:gmtime\:1507046400\:%d-%m-%Y %T}' permet d'éfficher le temps, dans le format spécifié ( jour - mois - année heures:minutes:secondes)
Add a comment

ffmpeg -i sample.mp4 -filter_complex "[0:v]crop=200:200:60:30,boxblur=10[fg]; [0:v][fg]overlay=60:30[v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -movflags +faststart BLUR.mp4

La zone a flouter mesure 200 par 200pixel, le coin supérieur gauche se position à 60,30 pixel en partant du coin haut gauche
Pour flouter plusieurs zones sur la même video :

"[0:v]crop=50:50:20:10,boxblur=10[b0]; [0:v]crop=iw:30:(iw-ow)/2:ih-oh,boxblur=10[b1]; [0:v]crop=100:100:120:80,boxblur=10[b2]; [0:v][b0]overlay=20:10[ovr0]; [ovr0][b1]overlay=(W-w)/2:H-h[ovr1]; [ovr1][b2]overlay=120:80"

Add a comment

ffmpeg -y -i "mini_logo.jpg" -i "esai.mov" -i "music.mp3" -filter_complex "[1:v][0:v]overlay=756:252[t];[t][w]overlay=240:594,scale=1920:1080[outv]" -map "[outv]" -map 2:a -movflags +faststart -c:v libx264 -c:a aac -preset veryfast -shortest "output.mp4"

Les paarmètres sont :

  • -i "mini_logo.jpg" : l'image a mettre en surimpression sur la video
  • -i "esai.mov" : la vidéo sur laquelle on fait le montage
  • -i "music.mp3" : la musique qui vien au dessus du montage

Dans les paramètres filter_complex, on taille de l'objet a coller l'image (position depuis le coin gauche : 240:594), taille de l'image ou plutôt de l'objet à intégrer (240:594) et une taille de l'overlay

 

Add a comment

 

ffmpeg -i in.mp4 -i image.png  -af "pan=stereo|c0<c0+c2|c1<c1+c3,aeval=val(0)|val(1),volume=1.6" \ -filter_complex "[1]geq=r='r(X,Y)':a='0.5*alpha(X,Y)'[a];[0][a]overlay" out.mp4

  • -i in.mp4 : fichier sur lequel appliquer le logo
  • -i image.png : logo (en parametre n°2 obligatoirement)``
  • -af : uniquement s'il y a du son
  • -filter_complex : gestion de la surimpression transparente du logo
Add a comment

Pour dessiner une boite : ffmpeg -i output2.avi -vf drawbox=x=10:y=20:w=200:h=60:color=red@0.5 output3.avi
Pour dessiner une grille : ffmpeg -i output2.avi -vf drawgrid=width=100:height=100:thickness=2:color=red@0.5 output3.avi

Add a comment

ffmpeg -i birds.mp4 -strict -2 -filter_complex "pad=height=ih+80:width=iw+80:x=40:y=40:color=red" birds6.mp4

  • -i birds.mp4: nom de la video en entrée
  • -strict -2 : demandé apr ffmpeg pour une raison que j'ignore
  • -filter_complex "pad=height=ih+80:width=iw+80:x=40:y=40:color=red" : Crée une bordure de 40 pixels rouge (red) autour de la video

Une  autre ,manière de faire :

ffmpeg -i ouptut.mp4 -vf "pad=iw/3:ih/2:iw/2:ih/2" output_seb.mp4

  • iw = input width
  • ih : input heigth

Pour encadrer avec une couleur et une épaisseur + épaisse du cadre :

  • ffmpeg -y -i 1.mp4 -vf "drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=max"  outputfile.mp4

 

Add a comment