Я полный новичок в 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
Вы, по-видимому, используете пакетные файлы Windows. Здесь FOR
циклы не имеют завершающего ; done
, как циклы Bash.
В Windows:
FOR ... IN ... DO ...
Под Башем:
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для получения дополнительной информации.