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

Код, который я использую, это:

-filter_complex "[0]reverse[r];[0][r]concat,loop=2:80,setpts=N/13/TB" -vcodec libx264 -pix_fmt yuv420p -crf 17

Это прекрасно работает, но мне нужно добавить фильтр для обрезки изображений и изменения их размера. К сожалению, я не знаю, как заставить это работать с кодом, который я использую.

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

Это полный код, который работает:

-hide_banner -r 13.000 -threads:v 8 -i "C:/01/test-%02d.JPG" -codec:v copy -filter_complex "[0]reverse[r];[0][r]concat,loop=2:80,setpts=N/13/TB" -vcodec libx264 -pix_fmt yuv420p -crf 23 -an "C:/01/test.mp4"

Я уже пытался поставить фильтры перед обратным фильтром, возможно, я ошибся. Что-то вроде:

-crop=3300:3300 -scale=900:900

Я объясню лучше. Я использую графический интерфейс Avanti, и у него есть опция обрезки и масштабирования, но они не работают, когда я использую с -filter_complex. Я не знаю, как правильно добавить фильтры правильно.

1 ответ1

0

Вам просто нужно добавить фильтры crop и scale к reverse фильтру. Вы можете сделать это сразу (например, [0:v]crop,scale,reverse[r] , но вам нужно применить его как к исходному видео, так и к обратному, поэтому создайте две цепочки фильтров:

ffmpeg -i "C:/01/test-%02d.JPG"  -filter_complex "\
  [0:v]crop=3300:3300,scale=900:900[vid]; \
  [0:v]crop=3300:3300,scale=900:900,reverse[r]; \
  [vid][r]concat,loop=2:80,setpts=N/13/TB[out]" \
  -map "[out"] \
  -vcodec libx264 -pix_fmt yuv420p -crf 23 -an \
  "C:/01/test.mp4"

Примечание: не используйте -codec:v copy - когда вы используете фильтр, вам нужно позволить ffmpeg перекодировать видео.

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