2012-06-27 33 views
1

我需要從視頻(通常是FLV)獲取前x幀並將其轉換爲GIF。這個想法是使用這些GIF作爲真實事物的簡短預覽。來自視頻的前x幀

目前,我們正在使用的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。這裏涉及很多不必要的步驟。

有沒有人有任何建議加快這個過程?

在此先感謝!

+0

我是正確的思維要創建GIF動畫?你有沒有嘗試直接從ffmpeg創建一個動畫gif。我認爲這應該是可能的。 – bcelary

回答

1

FFMPEG不擅長創建GIF動畫。根據the docs,它們將被解壓縮。但是當閱讀不同的視頻編解碼器時,ffmpeg非常靈活。

ImageMagick可以創建好的動畫GIF,但只具有非常有限的視頻功能。然而,它apparently has rudimentary .avi support.

您可以通過將輸入視頻轉換爲通用avi流與ffmpeg,並直接管道到convert沒有中介png文件。

這個工作對我來說:

ffmpeg -i movie.mov -t 1 -f avi -|convert -delay 1 - preview.gif 
+0

我以爲這會工作,但我實際上得到一個錯誤,即: 轉換:沒有解碼委託這個圖像格式'/ tmp/magick-vzjPD8ux'@ error /構成/ ReadImage/544。 轉換:沒有定義圖像'preview.gif'@ error/convert.c/ConvertImageCommand/3044。 我有代表mpeg png x11 zlib在識別-list配置。任何想法如何讓IM接受AVI? – Doa