Я все еще изучаю, как выражения работают с ffmpeg, независимо от того, может ли какая-либо часть команды использовать выражение или нет.
Например, у меня есть такая команда:
ffmpeg -y -i input.mp3 -af "sofalizer=sofa=ClubFritz1.sofa:type=freq:radius=2:speakers='FL 45|FR 45|BL 45|BR 45'" output.mp3
(Файл CubFritz1.sofa
кстати можно скачать здесь)
Который в основном применяет эффект софализатора и указывает, что каждый канал должен быть слышен / исходить из левой стороны (45 градусов) звука.
Это работает, как и ожидалось.
Однако я вообще не могу заставить выражения работать в команде.
Например это:
ffmpeg -y -i input.mp3 -af "sofalizer=sofa=ClubFritz1.sofa:type=freq:radius=2:speakers='FL if (0, 45, 45)'|'FR if (0, 45, 45)'|'BL if (0, 45, 45)'|'BR if (0, 45, 45)'" output.mp3
Что делает if (0, 45, 45)
тестом, поэтому результат должен быть 45
, верно?
Однако, когда я запускаю эту команду, кажется, что она больше не работает, то есть звук исходит не только с левой стороны.
Я даже безуспешно пытался изменить расположение одиночного '
в команде:
ffmpeg -y -i input.mp3 -af "sofalizer=sofa=ClubFritz1.sofa:type=freq:radius=2:speakers=FL 'if (0, 45, 45)'|FR 'if (0, 45, 45)'|BL 'if (0, 45, 45)'|BR 'if (0, 45, 45)'" output.mp3
Мой вопрос: каковы правила для работы выражений в команде ffmpeg?
Как переписать команду, чтобы if (0, 45, 45)
работал?
Я не думаю, что выражения не поддерживаются опциями safalizer
Да. Поддерживать ли выражение в его параметрах, полностью зависит от каждого фильтра. В документации явно указано, какие параметры фильтра поддерживают выражение в качестве своих значений.
Вы говорите, что каждый эффект должен поддерживать выражения?