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?
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?
Antworten:
Verwenden Sie den drawtext
Videofilter in ffmpeg:
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.5
steuert die Deckkraft des Textfelds. In diesem Beispiel ist es auf 50% eingestellt. Sie können entfernen @0.5
und es wird keine Transparenz geben.
-codec:a copy
wird 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 textfile
und reload
für diesen Filter.
Für diesen Filter müssen Sie ffmpeg
kompiliert werden --enable-libfreetype
. Wenn Sie es bekommen No such filter: 'drawtext'
, fehlt es wahrscheinlich --enable-libfreetype
. Die meisten ffmpeg
verfü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 .
ffmpeg
Bedürfnisse müssen mit gebaut werden --enable-libfreetype
.
--with-libefreetype
an den Installationsbefehl übergeben.
--with-freetype
-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.