gif의 프레임 수를 얻는 명령이 있습니까?


23

gif의 프레임 수를 얻는 명령이 있습니까? gif가 있고 배열로 변환하고 싶지만 프로그램에 피드를 발생시키는 임의의 gif의 프레임 수에 따라 배열 및 배열 구조를 제한하고 싶습니다. imagemagick에 이러한 옵션이있을 수 있다고 생각했지만 아직 찾지 못했습니다.

답변:


24

ImageMagick을 설치 한 경우 identify다음과 같이 해당 명령을 사용할 수 있습니다.

identify /path/to/image.gif

각 프레임에 대한 세부 정보를 얻을 수 있습니다.

steeldriver 에서 제안한 것처럼 %n출력 형식 지정자를 사용하여 시퀀스의 이미지 수를 직접 얻을 수는 있지만 각 이미지마다 한 번씩 인쇄하는 것처럼 보입니다. 단일 번호를 얻으려면 할 수 있습니다

identify -format "%n\n" path/to/file.gif | head -1

2
죄송합니다. 나는 첫 번째 답변을 게시 한 다음 마지막 개정판과 매우 유사한 귀하의 답변을 보지 않고 3 번 업데이트했습니다 ...
WinEunuuchs2Unix

18

Exiftool 은 광범위한 출력의 일부로 프레임 수 를 표시합니다 .

이것은 애니메이션 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

2
당신은 할 필요가 없습니다 grep exiftool'의 출력 : 모든 필드가 독립적으로 인쇄 할 수 있습니다 exiftool dev/slack-emojinator/gifs/yj_batsu.gif -FrameCountexiftool dev/slack-emojinator/gifs/yj_batsu.gif -b -FrameCount단지 값
muru

@muru 정보를 주셔서 감사합니다. 나는 대답을 고칠 것이다.
LD James

8

한 줄 명령

기사 에서 영감을 얻은 이 단일 라이너 명령을 사용하십시오.

$ identify drop_caches.gif | wc -l
128

자세한 내용은 다음을 사용하십시오.

identify -verbose filename.gif

웹 사이트 에서는 .gif프레임 수를 포함하여 다양한 방법으로 파일 을 업로드 하고 분석 할 수 있습니다.

ezgif.png


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

7

FFmpeg 방법 :

ffprobe -v warning -show_frames qqq.gif | grep -c '\[/FRAME\]'

GIF 비디오는 비디오이므로 비디오 분석 도구도 도움이 될 수 있습니다.


내 경험 FFMPEG 내 요구를 충족하기 위해 컴파일하는 것은 나쁜 것을,하지만 난들이 유용이의 대답 희망 누군가 발견을하는 데 걸린 시간 감사드립니다
j0h

@ j0h, 배포판으로 제공되는 FFmpeg는 이것을 위해 작동하지 않습니까?
Vi.

5

설치 한 less경우 명령 을 사용할 수도 있습니다 ImageMagick.

less +G image.gif

총 프레임 수는 마지막 #대괄호입니다 image.gif[#]...(0부터 시작). 또는 다음과 같이 계산하십시오.

less image.gif | wc -l

호기심 .......
j0h
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.