Textes et sous-titres

Textes et sous-titres (29)

ffmpeg -i 1.mp4 -i petitLogo.jpg -filter_complex "[0:v][1:v] overlay=25:25:enable='between(t,2,5)'" -pix_fmt yuv420p -c:a copy outputL.mp4

Détaillons les paramètres :

  • -i 1.mp4 : fichier en entrée
  • -i petitLogo.mp4 : logo en entrée a afficher sur la video
  • -overlay:25:25 : coin haut gauche du logo positionné à ce point de la video "mère"
  • enable='between(t,2,5)' : l'overlay sera affiché entre la seconde 2 et 5

 

Ceci permet d'apposer un bandeau horizontal, entre deux time code, suur fond transparent coloré, avec un texte à l'intérieur :

ffmpeg -y -i 1.mp4 -vf "drawbox=enable='between(t,2,6)':y=ih-ih/4:color=black@0.5:width=iw:height=56:t=max", "drawtext=enable='between(t,8,16)':fontfile=roboto.ttf:y=h-h/4+10:x=20:text='Test Heading':fontcolor=white:fontsize=16,drawtext=enable='between(t,2,6)':fontfile=roboto.ttf:y=h-h/4+30:x=20:text='Test sub heading':fontcolor=white:fontsize=12" -acodec copy output.mp4

On retrouve : 

  • -i 1.mp4 : fichier d'entrée 
  • -vf : format de sortie
  • drawdox : dessin du bandeau
  • between(t,2,6) : affichage entre la seconde 2 et la seconde 6
  • color : couleur de fond, ainsi que le taux de transparence derriere l'arobase
  • width : largeur (iw = largeur de la video)
  • height : hauteur du bandeau
  • t=max : ?
  • fontfile : nom de la police de caractères
  • y et x : Position de la zone
  • text : Texte à afficher
  • fontcolor : couleur du texte
  • fontsize : taille de la police

Comme on peut le voir sur cet exemple, il est possible de "cumuler" ces affichages tout au long de la video.  Comme on peut le voir ici, il y a affichage de deux bandeau (le premier au timecode 2 à 6 secondes et le deuxieme du timecode 8 à 16

dans la partie drawtext : 

  • fontfile : nom de la police à utiliser
  • text : Texte à afficher
  • fontcolor : couleur du texte
  • fontsize : taille de la police
  • format : formay de sortie
  • -c:v libx264 : encodage
  • -c:a copye : on reprend l'audio
  • -movflags + faststart : Déplace quelques données au début du fichier, permettant à la video d'être jouée avant son téléchargement complet
  • output789.mp4 : Fichier de sortie

dimanche, 29 décembre 2019 13:57

Affichage par la gauche, en glissant, d'un texte en vert

Écrit par

ffmpeg -i final.mp4 -vf "drawtext=enable='between(t,2.5,6.5)':fontsize=50:fontcolor=Green:fontfile='ariblk.ttf': text='textline1':x=min(4*(tw\+10)-(abs(4-2*(t-2.5)))*(tw+10)-tw\,10):y=h-th-130" o.mp4

Dans notre cas, le texte est issu du fichier ticker.txt, mais on peut bien entendu remplacer textfile=ticker.txt par text=Le texte que je veux mettre.

ffmpeg -i INPUT.mp4 -vf "drawtext=textfile=ticker.txt:fontfile=BebasNeue-Regular.ttf:y=h-line_h-10:x=w-mod(w*t/25\,2400*(w+tw)/w):fontcolor=white:fontsize=40:shadowx=2:shadowy=2" -codec:a copy output.mp4

 

 

vendredi, 13 décembre 2019 10:33

Texte défilant vertical

Écrit par

ffmpeg -i birds5.mp4 -vf "[in]drawtext=fontfile=ASMAN.TTF:fontsize=15:fontcolor=red:x=(w-text_w)/2:y=h-60*t:textfile='text.txt'[out]" -c:v libx264 -t 10 -strict -2 scrollllll.mp4

ffmpeg -i Wildlife.mp4 -vf drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf: \ text='Stack Overflow': fontcolor=white: fontsize=18: box=1: boxcolor=red@0.5: \ boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2" -codec:a copy output.mp4

  • drawtext : on va rentrer ici TOUS les paramètres du texte
    • fontfile= : URL locale de la police de caractères
    • box= : Le texte sera encadré et affiché dans un rectangle de fond, coloré
    • boxcolor : couleur de fond de la boite citée ci-dessus. L'@ permet de spécifier la TRANSPARENCE de la couleur de cette boite.
    • boxborderw : épaisseur de la bordure du rectangle. (Equivalent du padding en CSS)
    • codec:a copy : reprend le même CODEC sonore que la vidéo d'origine

ffmpeg -f lavfi -i "color=color=yellow, drawtext=enable='gte(t,0)':text=Text1 Text2 Text3 Text4 Text5 Text6 Text7 Text8 Text9 Text10:expansion=normal:fontfile=verdana.ttf: y=h-line_h-120:x=-100*t: fontcolor=white: fontsize=50" -t 20 Output.mp4

jeudi, 12 décembre 2019 11:57

Défilement d'un texte ou affichage fixe

Écrit par

 

1. Ce texte peut mise en forme au niveau de la police, et boucler sur lui même

ffmpeg -i sample.mp4 -vf "drawtext=text=L'toto va à la pêche:fontfile=ASMAN.ttf:y=h-line_h-10:x=w-mod(max(t-4.5\,0)*(w+tw)/5.5\,(w+tw)):fontcolor=ffcc00:fontsize=40:shadowx=2:shadowy=2" -strict -2  loop1.mp4

 

2. Le texte "boucle"

 ffmpeg -i sample.mp4 -vf "drawtext=text=string1 string2 string3 string4 string5 string6 string7 :expansion=normal:fontfile=foo.ttf: y=h-line_h-10:x=(mod(5*n\,w+tw)-tw): fontcolor=white: fontsize=40: shadowx=2: shadowy=2" -strict -2 loop3.mp4

 

3. Texte fixe sur un bandeau coloré

ffmpeg -i sample.mp4 -vf "format=yuv444p,drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=max, drawtext=fontfile=OpenSans-Regular.ttf:text='Title of this Video':fontcolor=white:fontsize=24:x=(w-tw)/2:y=(h/PHI)+th,  format=yuv420p" -c:v libx264 -c:a copy -movflags +faststart output.mp4

 

jeudi, 12 décembre 2019 11:47

Intégrer un texte tout le long de la video

Écrit par

ffmpeg -i leo.mp4 -vf drawtext="fontfile=/Library/Fonts/Kefa.ttc:fontsize=20: fontcolor=red:x=150:y=150:text='HELLO'" -strict -2 output.mp4

  • -i : vidéo en entrée
  • -vf drawtext="..." : remplacer les ... par le texte à afficher sur la video ainsi que la police de caractères,
    • fontfile= : url locale de la police de caractères (chemin absolu)
    • fontsize= : taille de la police de caractères
    • fontcolor= : couleur du texte à afficher
    • x= : position X à partir du coin en haut a gauche du texte à afficher
    • y= : position Y à partir du coin en haut a gauche du texte à afficher
    • text= : chaine de caractères à afficher

ffmpeg -i out.mp4 -filter_complex "color=black@0:100x100,format=yuva444p[c];[c][0]scale2ref[ct][mv31];[ct]setsar=1,split=1[t31];[t31] drawtext=text='text':x='main_w/2-text_w/2+70':y=210:fontsize="100":fontcolor=black,drawtext=text='text2':x='main_w/2-text_w/2+75':y=340:fontsize="100":fontcolor=black, rotate=-0.07:ow=rotw(-0.07):oh=roth(-0.07):c=black@0[txta31];[mv31][txta31]overlay=enable='between(t, 0, 4.15)':x='min(0,-H*sin(-5.07))':y='min(0,W*sin(-5.07))':shortest=1" result.mp4

 

Page 1 sur 3