ГИФС не зацикливается в фильтре фильма ffmpeg

У меня есть GIF, который зацикливается (loop.gif). Я хочу наложить этот GIF в верхнем левом углу video.mpg. Поэтому я использую этот код, чтобы сделать это:

ffmpeg -i video.mpg -vf "movie=loop.gif [logo]; [in][logo] overlay=10:10 [out]" -vcodec mpeg2video out.mpg

Проблема в; GIF циклы только 1 раз и последний кадр GIF, показывающий до конца video.mpg.

Как я могу зациклить этот GIF постоянно?

1 ответ

Решение

Граф, обезьяна, граф

Граф, обезьяна, граф! (Это не гиф).

Использовать -ignore_loop вариант из дем демпфер gif:

ffmpeg -i video.mpg -ignore_loop 0 -i loop.gif -filter_complex \
"[0:v][1:v]overlay=10:10:shortest=1" -vcodec mpeg2video out.mpg
  • Дополнительные параметры демоверсии GIF можно посмотреть с ffmpeg -h demuxer=gif,
  • Нет необходимости использовать movie исходный фильтр.
  • Использовать shortest вариант в overlay в противном случае кодирование будет выполняться бесконечно, поскольку один из входов зацикливается.
Другие вопросы по тегам