2016-04-01 4 views
2

Я просто выясню, как повернуть изображение с помощью FFmpeg. Но вопрос заключается в том, когда Filename содержит «%» знак. Тогда эта команда не работает.Повернуть изображение с помощью ffmpeg

ffmpeg -y -i '/mypath/Prat%eek.jpg' -vf transpose=2 '/mypath/Prat%eek.jpg' 
+0

Почему бы не переименовать файл перед преобразованием и получить его оригинальное имя после преобразования? –

ответ

2

Согласно 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, работающей с одним файлом.
  • Путь назначения должен быть экранирован % в пути назначения.
+0

не работает. Нет такого файла. – Prateek

+0

@Prateek мой отредактированный ответ будет работать – dbw

Смежные вопросы