জিআইএফ-তে ফ্রেমের সংখ্যা পাওয়ার জন্য কোনও আদেশ আছে কি?


23

জিআইএফ-তে ফ্রেমের সংখ্যা পাওয়ার জন্য কোনও আদেশ আছে কি? আমার কিছু জিআইএফ রয়েছে, এবং আমি সেগুলি অ্যারে রূপান্তর করতে চাই, তবে আমি অ্যারে এবং ফ্রেমের সংখ্যার উপর ভিত্তি করে অ্যারের কাঠামোটি সীমাবদ্ধ করতে চাই, আমার প্রোগ্রামটি ফিড করার জন্য ঘটে। আমি ভাবছিলাম ইমেজম্যাগিকের কাছে এ জাতীয় কোনও বিকল্প থাকতে পারে তবে আমি এটি এখনও পাইনি।

উত্তর:


23

আপনার যদি ইমেজম্যাগিক ইনস্টল করা থাকে তবে আপনি এর identifyকমান্ডটি নিম্নরূপ ব্যবহার করতে পারেন

identify /path/to/image.gif

আপনি প্রতিটি ফ্রেমের বিশদ পাবেন।

স্টিল্ড্রাইভার দ্বারা প্রস্তাবিত হিসাবে , আপনি সরাসরি %nআউটপুট ফর্ম্যাট স্পেসিফায়ার ব্যবহার করে ক্রমটিতে চিত্রের সংখ্যা পেতে পারেন তবে বিরক্তিকরভাবে এটি প্রতিটি চিত্রের জন্য এটি একবার মুদ্রণ করতে দেখা যায়। একটি নম্বর পেতে আপনি করতে পারেন

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

2
Oopsie। আমি প্রথমে একটি উত্তর পোস্ট করেছি এবং তারপরে আপনার উত্তরটি না দেখে 3 বার আপডেট করেছি যা আমার শেষ সংশোধনের সাথে
একদম

18

এক্সিফ্টোল তার বিস্তৃত আউটপুটের অংশ হিসাবে ফ্রেম গণনা তালিকাভুক্ত করবে ।

এটি একটি অ্যানিমেটেড জিফ ফাইলের একটি কমান্ড এবং আউটপুট:

$ exiftool -b -FrameCount giphy.gif
33

জিআইএফ-তে সম্পূর্ণ এক্সফ্টোল আউটপুট:

$ 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 -FrameCountএবং exiftool dev/slack-emojinator/gifs/yj_batsu.gif -b -FrameCountকেবলমাত্র মানটির জন্য
মুরু

@ মুরু তথ্যের জন্য ধন্যবাদ। আমি উত্তর ঠিক করব।
এলডি জেমস

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\]'

জিআইএফ ভিডিওটি একটি ভিডিও, তাই ভিডিও বিশ্লেষণ সরঞ্জামগুলিও সহায়তা করতে পারে।


আমার অভিজ্ঞতা হ'ল আমার প্রয়োজনীয়তা মেটাতে এফএফএমপিইগ সংকলন করা দুশ্চরিত্রা, তবে আমি এই উত্তরটি দেওয়ার জন্য যে সময়টি নিয়েছি তা প্রশংসা করি I আমি আশা করি যে কেউ এটির কাজে
লাগবে

@ j0 এইচ, কী ডিস্ট্রো-সরবরাহিত এফএফম্পেগ কেবল এ জন্য কাজ করে না?
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.