Согласно documentation of ffmpeg упоминается, что каждая из специальных символов %*?[]{}
должны быть экранированы от %
.
Все специальные символы glob% *? [] {} Должны иметь префикс «%». Чтобы избежать буквенного «%», вы должны использовать «%%».
Итак, команда выше, должна быть
ffmpeg -y -i '/mypath/Prat%%eek.jpg' -vf transpose=2 '/mypath/Prat%%eek.jpg'
EDIT
После использования вышеуказанной команды на Linux я обнаружил, что не работает, а в документации она также упоминается что
Например, шаблон foo -% *. j peg будет соответствовать всем именам файлов с префиксом «foo-» и заканчивается на «.jpeg», а foo -%?%?% ?. jpeg будет соответствовать всем именам файлов с префиксом «foo-», а затем последовательность из трех символов , и завершение с помощью .jpeg.
Так что я попытался с помощью этой команды,
ffmpeg -y -i '/mypath/Prat%?eek.jpg' -vf transpose=2 '/mypath/Prat%%eek.jpg'
Вышеуказанная команда работала.
Редактировать
я не нашел в документации, что имя исходного файла должны быть экранированы какой-то другой путь и путь назначения должны быть экранированы другой путь, но в соответствии с приведенной выше команде рабочего, я так думаю,
- Весь путь источника должен быть экранирован с помощью знака
?
(после escape-символов) при работе с командой ffmpeg, работающей с одним файлом.
- Путь назначения должен быть экранирован
%
в пути назначения.
Почему бы не переименовать файл перед преобразованием и получить его оригинальное имя после преобразования? –