GIFのフレーム数を取得するコマンドはありますか?いくつかのgifがあり、それらを配列に変換したいのですが、配列を制限したり、プログラムにフィードするランダムgifのフレーム数に基づいて配列の構造を制限したりします。 imagemagickにはそのようなオプションがあるかもしれないと思っていましたが、まだ見つかりませんでした。
ImageMagickがインストールされている場合、次のようにidentify
コマンドを使用できます
identify /path/to/image.gif
各フレームの詳細が表示されます。
steeldriver で示唆されているように、%n
出力フォーマット指定子を使用してシーケンス内の画像の数を直接取得できますが、画像ごとに1回印刷するように思われます。単一の番号を取得するには
identify -format "%n\n" path/to/file.gif | head -1
Exiftoolは、詳細な出力の一部としてFrame Countをリストします。
これは、アニメーションGifファイルのコマンドと出力です。
$ exiftool -b -FrameCount giphy.gif
33
gifの完全なexiftool出力:
$ exiftool giphy.gif
ExifTool Version Number : 10.10
File Name : giphy.gif
Directory : .
File Size : 2.1 MB
File Modification Date/Time : 2018:04:22 21:00:42-04:00
File Access Date/Time : 2018:04:22 21:01:03-04:00
File Inode Change Date/Time : 2018:04:22 21:00:52-04:00
File Permissions : rw-rw-r--
File Type : GIF
File Type Extension : gif
MIME Type : image/gif
GIF Version : 89a
Image Width : 500
Image Height : 281
Has Color Map : Yes
Color Resolution Depth : 7
Bits Per Pixel : 7
Background Color : 127
Animation Iterations : Infinite
XMP Toolkit : Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27
Creator Tool : Adobe Photoshop CS6 (Macintosh)
Instance ID : xmp.iid:C312DB1DA6A311E5B8F5D2BA262E999D
Document ID : xmp.did:C312DB1EA6A311E5B8F5D2BA262E999D
Derived From Instance ID : xmp.iid:C312DB1BA6A311E5B8F5D2BA262E999D
Derived From Document ID : xmp.did:C312DB1CA6A311E5B8F5D2BA262E999D
Frame Count : 33
Duration : 2.31 s
Image Size : 500x281
Megapixels : 0.141
これに触発されて 記事 、このワンライナーコマンドを使用します。
$ identify drop_caches.gif | wc -l
128
詳細については、以下を使用してください。
identify -verbose filename.gif
これは website を使用して.gif
をアップロードし、その中のフレーム数を含むさまざまな方法で分析できます。
Image Magicが提供するconvert
は、.gif
をフレームごとに個別の.png
画像に変換します。
$ convert -verbose -coalesce drop_caches.gif drop_caches.png
drop_caches.gif[0] GIF 470x940 470x940+0+0 8-bit sRGB 256c 177KB 0.090u 0:00.099
drop_caches.gif[1] GIF 13x1 470x940+398+704 8-bit sRGB 256c 177KB 0.080u 0:00.089
drop_caches.gif[2] GIF 306x620 470x940+144+130 8-bit sRGB 256c 177KB 0.080u 0:00.089
(... SNIP ...)
drop_caches.gif=>drop_caches-125.png[125] GIF 470x940 470x940+0+0 8-bit sRGB 255c 50.3KB 27.100u 0:24.890
drop_caches.gif=>drop_caches-126.png[126] GIF 470x940 470x940+0+0 8-bit sRGB 254c 48.9KB 27.320u 0:25.089
drop_caches.gif=>drop_caches-127.png[127] GIF 470x940 470x940+0+0 8-bit sRGB 254c 48.9KB 27.480u 0:25.269
FFmpegの方法:
ffprobe -v warning -show_frames qqq.gif | grep -c '\[/FRAME\]'
Gifビデオはビデオなので、ビデオ分析ツールも役立ちます。
less
がインストールされている場合は、ImageMagick
コマンドも使用できます。
less +G image.gif
合計フレームは、#
内の括弧内の最後のimage.gif[#]...
(0から開始)です。またはとカウント:
less image.gif | wc -l