【发布时间】:2017-08-03 20:28:59
【问题描述】:
有没有人有一个很好的方法来从java中的字符串中转义所有特殊字符(',%,\,:,{,}),这将在ffmpeg drawtext过滤器链中使用?尝试使用具有不同转义组合的 replaceAll 是一种令人沮丧的练习!
String myTextString = "Bob's special\cool mix:stuff @ 40% off";
Runtime.getRuntime().exec(new String[] { "ffmpeg",...., "filter_complex", "drawtext=enable='between(t,0,10)':x=10:y=10:fontfile=Roboto-Black.ttf:text='" + myTextString + "':fontcolor=#a43ddb:fontsize=14", ... });
ffmpeg drawtext 过滤器:https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
【问题讨论】:
-
你试过正则表达式吗?
-
我尝试了一系列替换反斜杠的 replaceAll 函数,然后尝试替换每个特殊字符。但是 java、replaceAll、Strings、runtime exec、ffmpeg 和 drawtext 之间的所有转义......我认为需要一些奇迹才能让它正确:-) 希望有人已经弄清楚了所需的咒语。
-
感谢 Ulises...不幸的是,结合所有工具并没有真正解决问题的症结 :-(
-
您正在连接字符串,然后需要转义一组字符,对吗?如果是这样,逻辑可以应用到你提出的场景中
标签: java string ffmpeg escaping drawtext