Escape caracteres no arquivo de lote ffmpeg.exe no Windows

1

Eu tenho um comando ffmpeg.exe complicado em um arquivo em lotes ... Eu não sei como escapar os caracteres especiais corretamente:

ffmpeg.exe -f dshow -i video="Logitech HD Pro Webcam C920" -vframes 1 -pixel_format yuv420p -s 1920x1080 -hide_banner -loglevel panic -q:v 1 -y -vf "drawtext=expansion=strftime:fontfile='C\:\Windows\Fonts\arial.ttf':text='%a %Y-%m-%d %I\:%M\:%S%p':box=1:[email protected]" c920.jpg

Funciona muito bem quando executado a partir do prompt de comando, assim que eu o executo dentro de um arquivo de lote, a sobreposição de texto exibe 'Yd M: p' em vez de 'seg 2017-10-23 04:45:18 PM'

Se eu remover a parte de sobreposição de texto (abaixo), ela funcionará bem.

-vf "drawtext=expansion=strftime:fontfile='C\:\Windows\Fonts\arial.ttf':text='%a %Y-%m-%d %I\:%M\:%S%p':box=1:[email protected]"
    
por Ted Scheckler 23.10.2017 / 22:48

1 resposta

1

Não sei como escapar corretamente dos caracteres especiais

Você precisa dobrar o % s e substituir cada % por %% :

The % character has a special meaning for command line parameters and FOR parameters. To treat a percent as a regular character, double it.

Sintaxe da fonte - caracteres de escape, delimitadores e citações

Leitura Adicional

por 24.10.2017 / 07:07