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"

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: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
  • 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.


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: boxcolor=black@0.4: x = w-tw: y = h-th "C: \ inetpub \ wwwroot \ videos \ 1.mp4


Dies ist für mich funktioniert, aber ich benutze Boxcolor-white@0.9
Säbel Tabatabaee Yazdi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.