Est-ce que quelqu'un a une bonne recette pour échapper tous les caractères spéciaux (',%, \,:, {,}) d'une chaîne dans java, qui sera utilisé dans une chaîne de filtre ffmpeg drawtext? Essayer d'utiliser replaceAll avec différentes combinaisons d'échappement a été un exercice de frustration!Comment faire pour échapper tous les caractères spéciaux pour le filtre ffmpeg drawtext dans Java
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", ... });
filtre ffmpeg DrawText: https://ffmpeg.org/ffmpeg-filters.html#drawtext-1
Avez-vous essayé des expressions régulières? –
J'ai essayé une chaîne de fonctions replaceAll remplaçant les barres obliques inverses, puis j'ai tenté de remplacer chaque caractère spécial. Mais toutes les échappées entre java, replaceAll, Strings, exec runtime, ffmpeg & drawtext .... Je pense qu'il faut un miracle pour le corriger :-) Espérait que quelqu'un avait déjà compris l'incantation nécessaire. – ezwrighter
Jetez un oeil à https://stackoverflow.com/questions/13696461/replace-special-character-with-an-escape-preceded-special-character-in-java –