2012-05-23 20 views
8

no he podido conseguir filtro de vídeo DrawText de ffmpeg para dibujar apóstrofes/comillas simples cuando están en DrawText de "text =" parámetro, incluso cuando yo escapar de ellos. Las comillas dobles funcionan bien, y los apóstrofos en el texto cargado desde un archivo (por ejemplo, textfile = "example.txt") funcionan bien. ¿Es esto un error?ffmpeg comilla simple en DrawText

p. Ej.

ffmpeg -i test.mpg -vf drawtext="apostrophes don't print" ... 
ffmpeg -i test.mpg -vf drawtext="even when they\'re escaped" ... 

Respuesta

17

escapes de caracteres especiales son como la violencia: si no son la solución de su problema, no se está usando suficiente.

ffmpeg -i test.mpg -vf drawtext=text="It\\\\\'s so easy" 

Produce una superposición textual que incluye un apóstrofo. El texto se analiza un par de veces, por lo que no solo tiene que escapar de la cita, sino que también debe escapar de la barra escapándose de la cita. Dos veces.

Su alternativa de usar un archivo de texto podría ser ser un mejor método en esta situación.

+2

Al redactar esta línea de comandos de Java que en realidad tenía al código: 'this.watermarkText = watermarkText.replaceAll (":", "") .ReplaceAll ("\ '"," \\\\\\\\\\\ \ '");' que, si me preguntas, es un golpe total. –

0

Esto es probablemente algo que ver con las comillas mágicas. A través de un montón de pruebas que hice usando Windows Command Line y MinGW en Windows, encontré el mismo problema cada vez. Como ffmpeg drawtext usa Freetype (supongo que aquí es donde se habilitan las comillas mágicas), dudo que haya mucho que hacer para deshabilitar las comillas mágicas. No estoy seguro de que haya una manera de eliminar las barras agregadas en la línea de comandos, ya que todo lo que he visto involucra scripts PHP. Podría estar equivocado, ya que no soy un gurú PHP, pero no sé cómo integrarlos en un comando ffmpeg.

+0

interesante, no parece que haya una solución, entonces! Es extraño que sea posible escapar de comillas dobles, punto y coma, etc., pero no comillas simples, aunque ... – dotsam

+0

Sí, los apóstrofes son siempre el gran problema. Quien haya ideado citas mágicas aparentemente decidió que cada vez que lo usaba, siempre iba a ser un apóstrofo en una contracción o mostrar propiedad, donde está curvado hacia la letra anterior. Nunca me gustaron las citas mágicas. – Ben

1

Pude insertar Unicode \ u2019 en la cadena de argumentos y funcionó solo para comillas a la derecha.

+0

¿cómo lo insertaste? Si tengo una cadena $ variable que contiene el texto con la cotización, ¿qué debo hacer para obtener la cotización? – Sulli

0

En caso de que alguien necesita esto para pitón, esta función de escape está funcionando para mí (basado en la https://ffmpeg.org/ffmpeg-utils.html#Quoting-and-escaping + multi-escapar consejo anterior):

retorno "'" + text.replace (":", "\ \ ") sustituir (" '" " '\\\\\\' '") + "'"

+0

No estoy seguro de cómo esto podría estar trabajando para que se produce 'it's' ->' 'que' \\\ '' s'' – deweydb

+0

'text.replace retorno (":", "\\") sustituir (". '", "\\\\\\\\\\\\'")' – deweydb

+0

Se podría depender de la cáscara, estoy usando zsh :) –

Cuestiones relacionadas