ffmpeg drawtext filter - Erstellt einen transparenten Hintergrund mit Text

11

Ich arbeite derzeit mit dem drawtextFilter. Bisher war ich nur mit drawtextOptionskonfigurationen erfolgreich , um die richtige Schriftart zu verwenden und den Text horizontal zentriert zu platzieren. Wie kann ich drawtextText in einem Video wie unten gezeigt anzeigen?

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"
Code_Ed_Student
quelle

Antworten:

21

Verwenden Sie drawboxfür die Box und drawtextfür den Text.

Roter Käfer

ffmpeg -i input.mp4 -vf \
"format=yuv444p, \
 drawbox=y=ih/PHI:[email protected]: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
  • drawtexthat eine boxOption, aber soweit ich das beurteilen kann, kann es keine beliebige Breite sein und ist relativ zur Textgröße, weshalb drawboxstattdessen verwendet wird.

  • Der formatFilter wird verwendet, um die Farbe des drawboxBereichs zu verbessern . Andernfalls kann der Bereich abhängig von Ihren Eingabe- und Ausgabeformaten entsättigt oder monochrom aussehen. Der formatFilter wird dann erneut verwendet, um sicherzustellen, dass das Pixelformat der Ausgabedatei mit allen Playern kompatibel ist.

  • In diesem Beispiel wird das Audio im Stream kopiert, da Sie es möglicherweise nicht unnötig neu codieren möchten.

  • Alte ffmpegBenutzer müssen t=maxstattdessen verwenden t=fill.

llogan
quelle
Perfekt, dies liegt außerhalb des Rahmens der aktuellen Frage und ich muss möglicherweise eine neue Frage erstellen. Vorschläge zum Hinzufügen des snapchatTimers. Zum Beispiel habe ich einige Tests durchgeführt und ffmpeg enthält eine testsrc-Videoquelle, die einen Timer enthält : ffplay -f lavfi -i testsrc. Die Ziffer 0 des anfänglichen Timers hat eine Größe von 29 x 52 Pixel und ihre Position von der oberen linken Ecke beträgt horizontal 256 Pixel und vertikal 94 Pixel. Ich kann den Bereich einer Ziffer wie ffmpeg -f lavfi -i testsrc -vf crop=29:52:256:94 -t 10 timer1.mp4
folgt zuschneiden
Ich habe der Frage ein Bild mit einem Timer hinzugefügt. Der Timer ist ein Countdown basierend auf der Dauer des Videos.
Code_Ed_Student
Ja, ich werde eine neue Frage dafür erstellen. Du hast Recht. 30. 29, 28...usw.
Code_Ed_Student
1
Großartig und Sie haben Recht, es hat die Box beeinflusst
Code_Ed_Student
1

ffmpeg -i C: \ Benutzer \ Entwickler_2 \ Videos \ 2.mkv -vf drawtext = "fontfile = C \: / Regular.ttf: text = 'apcis.tmou.org': fontcolor = white: fontsize = 24: box = 1: [email protected]: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4

kostia7alania
quelle
Dies ist für mich funktioniert, aber ich benutze [email protected]
Säbel Tabatabaee Yazdi