Text auf Video ffmpeg


75

Wie kann ich meinem Video in ffmpeg eine Textüberlagerung hinzufügen?

Wie kann ich bei einem Video "video1.flv" "StackOverflow" -Text während des gesamten Videos in der Mitte des Bildschirms mit weißem Text und einem Rand hinzufügen?


schau hier . nr. 6
BitWorking

22
@bitWorking - Ich sehe, dass Ihr Kommentar bereits 3 Jahre alt ist, aber ich bitte Sie trotzdem, die Mitglieder der Stackoverflow-Community nicht mit Ihren verschleierten Links "Lass mich das für dich googeln" zu beleidigen und Zeit zu verschwenden. Vor allem, wenn Sie die Rekursion einführen (ich bin über die Google-Suche hierher gekommen). Auch die Verwendung von URL-Kürzungen kann potenzielle Malware- oder Spam-Links verbergen, da Sie nicht wissen, wohin Sie verweisen.
FooF

Antworten:


154

Verwenden Sie den drawtextVideofilter in ffmpeg:

Geben Sie hier die Bildbeschreibung ein

ffmpeg -i input.mp4 -vf drawtext="fontfile=/path/to/font.ttf: \
text='Stack Overflow': fontcolor=white: fontsize=24: box=1: boxcolor=black@0.5: \
boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2" -codec:a copy output.mp4
  • Das @0.5steuert die Deckkraft des Textfelds. In diesem Beispiel ist es auf 50% eingestellt. Sie können entfernen @0.5und es wird keine Transparenz geben.

  • -codec:a copywird Kopie streamen die Audio- und vermeiden Re-Encoding (Re-Mux).

  • Eine Alternative zum Drawtext-Filter ist die Verwendung von ASS- oder SRT-Untertiteln, insbesondere wenn Sie zeitgesteuerten Text oder Softsubs wünschen.

  • Wenn Sie den Text aktualisieren oder ändern möchten, lesen Sie die Optionen textfileund reloadfür diesen Filter.

  • Für diesen Filter müssen Sie ffmpegkompiliert werden --enable-libfreetype. Wenn Sie es bekommen No such filter: 'drawtext', fehlt es wahrscheinlich --enable-libfreetype. Die meisten ffmpegverfügbaren statischen Builds unterstützen dies . Links finden Sie auf der FFmpeg-Download- Seite.

  • Weitere Optionen und Beispiele finden Sie in der Dokumentation zum Drawtext-Filter .


1
@NoahTernullo gibt es auch Strftime-Optionen und "pts" -Variable, die Sie verwenden können. Um den Tick am unteren Rand zu aktivieren, können Sie wahrscheinlich eine Funktion für x-Variablenwertänderungen verwenden, die auf Punkten oder der Frame-Nummer basieren.
Rogerdpack

1
@chovy Deine ffmpegBedürfnisse müssen mit gebaut werden --enable-libfreetype.
Llogan

2
Zu Ihrer Information, für diejenigen, die mit Brew installieren, können Sie dieses Flag --with-libefreetypean den Installationsbefehl übergeben.
Chovy

7
@chovy Ich denke, die Homebrew-Option, die Sie erwähnt haben, sollte sein--with-freetype
Rico Picone

1
@VivekThummar Es muss in Form von -vf "scale=1920:1080,drawtext=..."Beachten Sie das Komma ( ,), das die Filter verbindet. Das Komma fehlt in Ihrem ausgeführten Befehl. Dies ist ein Problem mit Ihrer Implementierung des Befehls ffmpeg in Android.
Llogan
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.