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 drawtextVideofilter 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.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 .
ffmpegBedürfnisse müssen mit gebaut werden --enable-libfreetype.
--with-libefreetypean 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.