ffmpeg drawtext filter - crea uno sfondo trasparente con il testo


11

Attualmente sto lavorando con il drawtextfiltro. Finora ho avuto successo solo con le drawtextconfigurazioni delle opzioni per utilizzare il carattere giusto e posizionare il testo centrato orizzontalmente. Come posso drawtextvisualizzare il testo su un video come mostrato di seguito?

ffmpeg

ffmpeg -i "/media/test/test.mp4" -vf drawtext="fontfile=/usr/share/fonts/truetype/open-sans/OpenSans-Regular.ttf:text='Title of this Video':x=(w-tw)/2:y=(h-th)/2"  /media/test_edited.mp4"

Risposte:


21

Utilizzare drawboxper la casella e drawtextper il testo.

Scarabeo rosso

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:color=black@0.4:width=iw:height=48:t=fill, \
 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
  • drawtextha boxun'opzione, ma per quanto ne so non può essere una larghezza arbitraria ed è relativa alla dimensione del testo, quindi drawboxè invece usato.

  • Il formatfiltro viene utilizzato per migliorare il colore drawboxdell'area; altrimenti, a seconda dei formati di input e output, l'area potrebbe apparire satura o monocromatica. Il formatfiltro viene quindi riutilizzato per garantire che il formato in pixel del file di output sia compatibile con tutti i lettori.

  • In questo esempio l'audio viene copiato in streaming perché potresti non voler ricodificarlo inutilmente.

  • Gli ffmpegutenti vecchi dovranno usare t=maxinvece di t=fill.


Perfetto, questo non rientra nell'ambito della domanda attuale e potrebbe essere necessario creare una nuova domanda. Eventuali suggerimenti su come aggiungere il snapchattimer. Per esempio, ho fatto qualche test e ffmpeg contiene una sorgente video testsrc che contiene un timer: ffplay -f lavfi -i testsrc. La cifra 0 del timer iniziale ha una dimensione di 29x52 pixel e la sua posizione dall'angolo in alto a sinistra è di 256 pixel in orizzontale e 94 pixel in verticale. Posso ritagliare l'area di una cifra in questo modoffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
Code_Ed_Student

Ho aggiunto un'immagine con un timer alla domanda. Il timer è un conto alla rovescia basato sulla durata del video.
Code_Ed_Student,

Sì, creerò una nuova domanda per questo. Hai ragione. 30. 29, 28...ecc.
Code_Ed_Student,


1
Fantastico e hai ragione ha influito sulla scatola
Code_Ed_Student

1

ffmpeg -i C: \ Users \ Developer_2 \ Videos \ 2.mkv -vf drawtext = "fontfile = C \: / Regular.ttf: text = 'apcis.tmou.org': fontcolor = white: fontsize = 24: box = 1: boxcolor=black@0.4: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4


questo ha funzionato per me ma sto usando boxcolor-white@0.9
sabre tabatabaee yazdi
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.