dot*_*sam 9 ffmpeg escaping drawtext
我没有能够得到ffmpeg的drawtext视频过滤器来绘制撇号/单引号,当它们在drawtext的"text ="参数时,即使我逃避它们.双引号工作正常,从文件加载的文本中的撇号(例如textfile ="example.txt")工作正常.这是一个错误吗?
例如
ffmpeg -i test.mpg -vf drawtext="apostrophes don't print" ...
ffmpeg -i test.mpg -vf drawtext="even when they\'re escaped" ...
Run Code Online (Sandbox Code Playgroud)
bla*_*lah 22
特殊的角色逃脱就像暴力:如果他们没有解决你的问题,你的使用就不够了.
ffmpeg -i test.mpg -vf drawtext=text="It\\\\\'s so easy"
Run Code Online (Sandbox Code Playgroud)
生成包含撇号的文本叠加层.文本被解析了几次,所以你不仅要逃避引用,你还必须逃避逃避报价的斜线.两次.
在这种情况下,使用文本文件的替代方法可能是更好的方法.
如果有人需要 Python 的这个功能,这个转义函数对我有用(基于FFmpeg 引用和转义文档+ 上面的多重转义建议):
return "'" + text.replace(":", "\\\\:").replace("'", "'\\\\\\\\\\\\''") + "'"
Run Code Online (Sandbox Code Playgroud)
小智 5
// 这对我有用
public function replaceSpecialFfmpegChars($text)
{
return str_replace(
":",
"\\\\\\\\\\\:",
str_replace(
"%",
"\\\\\\\\\\\%",
str_replace(
"'",
"'\\\\\\\\\\\\''",
str_replace(
"\"",
"\\\\\\\\\\\"",
str_replace(
"\\",
"\\\\\\\\\\\\\\\\",
$text
)
)
)
)
);
}
Run Code Online (Sandbox Code Playgroud)