2017-05-31 135 views
3

我想從jpeg圖像列表中創建一個gif圖像,一切正常,但是如何減慢動畫速度?使用ffmpeg從jpeg圖像生成gif

這裏是我的代碼:

<?php 
exec('ffmpeg -f image2 -i thumb/%001d.jpg -vf scale=480x240 out.gif'); 
?> 

回答

2

要減慢圖像序列,降低其幀率

ffmpeg -f image2 -framerate 10 -i thumb/%001d.jpg -vf scale=480x240 out.gif 
+0

您可以提高ffmpeg中gif的質量嗎? – wojttaa

+0

是的,請參閱http://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html – Mulvya

+0

謝謝,你能幫我按照網站上的教程申請我的ffmpeg代碼嗎? – wojttaa

0

您希望-r標誌設置的幀速率(每秒幀數)。從官方文件:

-r [:stream_specifier] FPS(輸入/輸出,每流)

設定的幀速率(赫茲值,分數或縮寫)。

作爲輸入選項,忽略存儲在文件中的任何時間戳,而是生成時間戳,假設幀速率爲fps。這與用於某些輸入格式(如image2或v4l2)的-framerate選項不同(它在FFmpeg的舊版本中與以前版本相同)。如果有疑問,請使用-framerate而不是輸入選項-r。

作爲輸出選項,複製或放下輸入幀以實現恆定輸出幀頻fps。

例如,設置爲30 fps:

ffmpeg -f image2 -i thumb/%001d.jpg -vf scale=480x240 -r 30 out.gif 

注:-r參數必須出現輸入文件後如果你想讓它適用於輸出

+0

當-r 1設置僅顯示2幀時有效。在拇指目錄中,我有6張照片,我想顯示所有人,併爲每個人顯示1秒鐘。 – wojttaa

+0

嘗試在'out.gif'之前添加'-frames:v 6'' – MTCoster

0

我使用這個代碼:

<?php 
exec('ffmpeg -ss '.$date.' -i video.mp4 -vf scale=320x180 thumb/'.$i.'.png'); 
?> 

我使用一個循環生成多張圖像,$ I在變量$日期並有環數,而$日期產生時的時間圖像將被生成。問題在於有時會生成黑色圖像。如何解決它?