Я новичок в FFmpeg и программировании, поэтому вопрос может быть слишком глупым ... У меня есть видео, и я хочу разрезать его на мелкие кусочки и рендерить каждый, поэтому я пытаюсь использовать цикл FOR:

FOR /l %x IN (0,40,1000) DO ffmpeg -i sample.avi -filter:v "crop=20:20:x:x" outx.avi; done

Я получил следующее: [NULL @ 0000000002624220] Невозможно найти подходящий выходной формат для 'outx.avi;' outx.avi ;: неверный аргумент

Кто-нибудь может помочь это?

1 ответ1

2

Вы очевидно используете пакетные файлы Windows. Здесь циклы FOR не имеют трейлинга ; done , как петли Баш.

Под виндой:

FOR ... IN ... DO ...

Под Bash:

for ... in ...; do ...; done

Итак, убедитесь, что вы используете правильный синтаксис для вашей оболочки.


Обратите внимание, что простое указание out.avi заставит ffmpeg выбрать MPEG-4 и MP3 в качестве видео и аудио кодеков соответственно, и ваше качество может быть довольно плохим. В идеале, укажите видео и аудио кодеры, например:

ffmpeg -i <input> -c:v libx264 -crf 23 -c:a aac -b:a 192k out.mp4

Прочитайте руководство по кодированию H.264 для получения дополнительной информации.

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