gif
ファイルのセットからpng
アニメーションを作成するツールはありますか?
ImageMagick スイートからconvert
コマンドを試しましたが、これが常に成功するとは限りません。また、これにはいくつかの問題があります:
-delay
フラグはgifアニメーションのフレームレートを変更しません。convert
は、ファイル名のアルファベット順に基づいてフレームの順序を決定します。これは、name500.png
がname50.png
の直後ではなくname450.png
の直後に配置されることを意味します。0を追加することでこれを修正できますが、これは面倒です。新しいバージョンのffmpegには-sameq( faqを参照 )はありませんが、GIFはサポートされています。
ffmpeg -i %03d.png output.gif
%03dは3桁のフレームIDです。
また、ffmpeg
を使用して一連の画像からムービーを作成し、そのムービーをGIFアニメーションに変換することもできます(ここでもffmpeg
を使用します)。
# cf. http://pages.uoregon.edu/noeckel/MakeMovie.html
# first convert an image sequence to a movie
ffmpeg -sameq -i %03d.jpg output.mp4
# ... and then convert the movie to a GIF animation
ffmpeg -i output.mp4 -pix_fmt rgb24 -s qcif -loop_output 0 output.gif
convert
は、そのための便利なコマンドラインツールです。 cd
をpng-ファイルを含むフォルダーに追加し、次のコマンドを実行します。
convert -delay 10 -loop 0 *.png animation.gif
convert
の--delay
オプションは、コマンドラインの次のイメージにのみ適用されます。そう convert -delay 10 *
は、最初のフレームの遅延のみを0.1秒に設定します。オプションを繰り返す必要があります:
convert $(for a in *; do printf -- "-delay 10 %s " $a; done; ) result.gif
あなたの並べ替えの必要性のために、変換はフレームを並べ替えません、シェルグロビング*
します。フレームの番号が0〜700であることがわかっている場合は、自分で番号を計算できます。
convert $(for ((a=0; a<700; a++)); do printf -- "-delay 10 name%s.png " $a; done;) result.gif
更新:
Png-to-gifにはconvert
を使用し、次にアニメーションには gifsicle を使用します。これは、1つのアプリですべてを解決できるわけではありませんが、確かにスクリプト化可能です。
[〜#〜] gimp [〜#〜] できます アニメーションGIFを作成する そして、タイミング/遅延および繰り返しなどの制御を提供します
ffmeg重要なGIFオプション+テストデータ
補足するには この答え :
wget -O opengl-rotating-triangle.Zip https://github.com/cirosantilli/media/blob/master/opengl-rotating-triangle.zip?raw=true
unzip opengl-rotating-triangle.Zip
cd opengl-rotating-triangle
ffmpeg \
-framerate 60 \
-pattern_type glob \
-i 'tmp.*.png' \
-r 15 \
-vf scale=512:-1 \
out.gif \
;
テストデータは次のように生成されました https://stackoverflow.com/questions/3191978/how-to-use-glut-opengl-to-render-to-a-file/14324292#14324292
私が強調したかった重要なffmpeg
オプションは次のとおりです。
-patter_type glob
:画像を選択する便利な方法-framerate 60
および-r 15
:入力画像が60 FPSであると想定します(ffmpeg
は、ビデオ形式のように画像にFPSデータがないため、他の方法では知ることができません)、4つの画像ごとに1つ選択してサイズを小さくします(4 == 60 / 15
)-vf scale=512:-1
:通常、サイズを縮小してスペースを節約するために、幅とスケールの高さを比例的に設定します以下も参照してください。
Ubuntu 18.10、ffmpeg 4.0.2でテスト済み。
ImageMagickは、高品質のgifアニメーションを生成できます。このビデオを確認してください- http://www.youtube.com/watch?v=OFusYizJ-bA
ポイント2に関して
私が持っているImageMagick "display"のバージョン(ImageMagick 6.7.2-7 2017-01-12)は、convertコマンドを使用して設定されたフレームレートを無視して、アニメーションgifを生成します。別のプログラムを試して、FirefoxのようなアニメーションGIFを表示します。