2012-05-23 17 views
8

Non sono stato in grado di ottenere il filtro video del disegno di ffmpeg per disegnare apostrofi/virgolette singole quando sono nel parametro "testo =" del drawtext, anche quando li sfuggo. Le doppie virgolette funzionano bene e gli apostrofi nel testo caricato da un file (ad esempio textfile = "example.txt") funzionano correttamente. è un insetto?ffmpeg citazione singola nel testo draw

ad es.

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

risposta

17

Le fughe di personaggi speciali sono come la violenza: se non stanno risolvendo il tuo problema, non stai utilizzando abbastanza.

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

Produce un overlay testuale che include un apostrofo. Il testo viene analizzato un paio di volte, quindi non devi solo sfuggire alla citazione, devi anche sfuggire alla barra che sfugge alla citazione. Due volte.

L'alternativa all'utilizzo di un file di testo potrebbe essere un metodo migliore in questa situazione.

+2

Durante la composizione di questa riga di comando da Java Ho dovuto Codice: 'this.watermarkText = watermarkText.replaceAll (":", "") .ReplaceAll ("\ '"," \\\\\\\\\\\ \ "") ;, che, se me lo chiedi, è totalmente sbalorditivo. –

0

Questo probabilmente è qualcosa a che fare con citazioni magiche. Attraverso una serie di test che ho appena fatto usando Windows Command Line e MinGW su Windows, mi sono imbattuto nello stesso problema ogni volta. Dato che ffmpeg drawtext usa Freetype (direi che è qui che le virgolette sono abilitate) dubito che ci sia molto da fare per disabilitare le virgolette magiche. Non sono sicuro che ci sia un modo per rimuovere le barre aggiunte nella riga di comando, poiché tutto ciò che ho visto riguarda gli script PHP. Potrei sbagliarmi, dato che non sono un guru PHP, ma non sono a conoscenza di come integrarli in un comando ffmpeg.

+0

Interessante, non sembra che ci sia una soluzione, allora! Strano che sia possibile evitare le doppie virgolette, il punto e virgola ecc. Ma non le virgolette singole ... – dotsam

+0

Sì, gli apostrofi sono sempre il grosso problema. Chiunque abbia inventato citazioni magiche, a quanto pare ha deciso che ogni volta che lo usavi, sarebbe sempre stato un apostrofo in una contrazione o mostrare la proprietà, dove è curvo verso la lettera precedente. Non mi sono mai piaciute le citazioni magiche. – Ben

1

Sono stato in grado di inserire Unicode \ u2019 nella stringa argomento e ha funzionato per virgolette singole.

+0

come l'hai inserito? Se ho una stringa $ variabile contenente il testo con la citazione, cosa dovrei fare per ottenere la citazione stampata? – Sulli

0

Nel caso in cui qualcuno ha bisogno di questo per Python, questa funzione di fuga sta lavorando per me (sulla base degli https://ffmpeg.org/ffmpeg-utils.html#Quoting-and-escaping + multi-fuga consigli di cui sopra):

ritorno "'" + text.replace (":", "\ \ ") sostituire (" '", " '\\\\\\' '") + "'"

+0

Non so come questo avrebbe lavorato per voi che produce 'it's' ->' 'it' \\\ '' s'' – deweydb

+0

'text.replace ritorno (":", "\\:"), sostituire (". '", "\\\\\\\\\\\\'")' – deweydb

+0

potrebbe dipendere conchiglia, sto usando zsh :) –

Problemi correlati