ffmpeg einziges Zitat in drawtext
Ich habe nicht in der Lage zu bekommen drawtext ffmpeg-video-filter zu ziehen Apostrophe/Hochkommata, wenn Sie in drawtext ' s "text=" parameter, selbst wenn ich entkommen. Doppelte Anführungszeichen funktionieren, und Apostrophe im text geladen aus einer Datei (z.B. Textdatei="example.txt") funktionieren. Ist das ein bug?
z.B.
ffmpeg -i test.mpg -vf drawtext="apostrophes don't print" ...
ffmpeg -i test.mpg -vf drawtext="even when they\'re escaped" ...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Spezielle Zeichen-escapes sind wie Gewalt: wenn Sie nicht Ihr problem zu lösen, du bist nicht gut genug.
Erzeugt, die einen Text-overlay mit einem Apostroph. Der text analysiert wird, ein paar mal, so haben Sie nicht nur die Flucht-das Zitat haben Sie auch die Flucht der Schrägstrich Flucht vor der quote. Zweimal.
Ihre alternative der Verwendung einer Textdatei könnte eine bessere Methode in dieser situation.
this.watermarkText = watermarkText.replaceAll(":", "").replaceAll("\'", "\\\\\\\\\\\\'");
was, wenn Sie mich Fragen, es ist völlig whack.Konnte ich einfügen, Unicode - \u2019 in argument-string und war für eine einzige richtige Zitat.
Dies ist wahrscheinlich etwas zu tun mit magic quotes. Durch eine Reihe von Tests, die ich habe gerade mit der Windows-Kommandozeile und MinGW unter Windows, ich lief in das gleiche problem jedes mal. Da drawtext ffmpeg verwendet Freetype (ich vermute, dies ist, wo magic quotes aktiviert sind) ich bezweifle, es gibt viel zu tun, zu deaktivieren, magic quotes. Ich bin nicht sicher, es gibt einen Weg, um entfernen Sie die zusätzlichen slashes in der Befehlszeile entweder, wie alles, was ich gesehen habe beinhaltet die PHP-Skripte. Ich könnte falsch sein, denn ich bin kein PHP guru, aber ich bin mir nicht bewusst, wie Ihnen die Integration in ein ffmpeg-Befehl.
Falls jemand diese braucht für python, das escape-Funktion funktioniert bei mir (basierend auf https://ffmpeg.org/ffmpeg-utils.html#Quoting-and-escaping + multi-Flucht Ratschläge oben):
return "'" + text.ersetzen(":", "\\:").ersetzen("'", "'\\\\\\"") + "'"
it's
->'it'\\\''s'
return text.replace(":", "\\:").replace("'", "\\\\\\\\\\\\'")