Первые x кадры из видео

Мне нужно получить первые x кадров из видео (обычно FLV) и превратить его в GIF. Идея состоит в том, чтобы использовать эти GIF-изображения в качестве краткого предварительного просмотра реальных вещей.

На данный момент мы используем ffmpeg и imagemagick для этого:

ffmpeg -y -i movie.flv -pix_fmt rgb32 -r fps extracted/%d.png

convert extracted/0.png ... extracted/50.png -delay 4 -loop 0 \
-set dispose Background -sample 256x256> preview.gif

Таким образом, в основном, сначала кадры извлекаются, преобразуются в PNG, затем PNG снова объединяются в GIF. Здесь много ненужных шагов.

У кого-нибудь есть предложения по ускорению этого процесса?

Заранее спасибо!

1 ответ

FFMPEG не очень хорош в создании анимационных картинок. Они будут распакованы, согласно документам. Но ffmpeg очень универсален для чтения различных видеокодеков.

ImageMagick может создавать хорошие анимированные картинки, но имеет очень ограниченные возможности видео. Тем не менее, он, очевидно, имеет элементарную поддержку.avi.

Вы можете обойтись без промежуточных файлов png, преобразовав входное видео в общий поток AVI с ffmpeg и напрямую обвязать это convert,

Это работает для меня:

ffmpeg -i movie.mov -t 1 -f avi -|convert -delay 1 - preview.gif
Другие вопросы по тегам