ГИФС не зацикливается в фильтре фильма 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
в противном случае кодирование будет выполняться бесконечно, поскольку один из входов зацикливается.