1

У меня сложная команда ffmpeg.exe в командном файле ... Я не уверен, как правильно экранировать специальные символы:

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:boxcolor=white@0.5" c920.jpg

Он отлично работает при запуске из командной строки, как только я запускаю его в командном файле, наложение текста показывает «Yd M:p» вместо «Пн 2017-10-23 04:45:18 PM»

Если я уберу часть наложения текста (ниже), она будет работать нормально.

-vf "drawtext=expansion=strftime:fontfile='C\:\\Windows\\Fonts\\arial.ttf':text='%a %Y-%m-%d %I\:%M\:%S%p':box=1:boxcolor=white@0.5"

1 ответ1

1

Я не уверен, как правильно экранировать специальные символы

Вы должны удвоиться % S и заменить каждую % с %%

Символ % имеет особое значение для параметров командной строки и параметров FOR . Чтобы рассматривать процент как обычный символ, удвойте его.

Исходный синтаксис - Escape-символы, разделители и кавычки


Дальнейшее чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .