لماذا تسوء ملفات GIF في مرحلة الاستخراج
يتم تحديد معظم ملفات GIF السيئة قبل فتح أي برنامج GIF. يستخرج شخص ما كل إطار من مقطع مدته خمس ثوانٍ، ويحصل على 150 صورة، ويجمعها، وينتهي به الأمر بملف بحجم 14 ميغابايت يرفض تطبيق الدردشة تضمينه. ومن ثم فإن الغريزة هي الضغط بقوة أكبر، مما يجعله موحلًا دون جعله أصغر بكثير.
المشكلة الفعلية هي المنبع. إن ملف GIF ليس برنامج ترميز فيديو - فهو لا يحتوي على تعويض للحركة، ولا يوجد تنبؤ بين الإطارات يستحق هذا الاسم، وسقف ثابت يبلغ 256 لونًا لكل إطار. كل إطار قريب من صورة مستقلة. هذه الحقيقة الوحيدة هي التي تحدد كل قرار أدناه.
لذا فإن التسلسل الذي يجب التفكير فيه هو: تحديد عدد الإطارات أولاً، ولوحة الألوان ثانيًا، وبعد ذلك فقط القلق بشأن الضغط.
الخطوة 1: اختر الفاصل الزمني لأخذ العينات
السؤال ليس "كم عدد الإطارات التي يحتوي عليها المصدر" ولكن "كم عدد الإطارات التي تحتاجها الحركة بالفعل". بعض نقاط البداية التقريبية:
- 10-12 إطارًا في الثانية — الإعداد الأساسي. سلس بدرجة كافية للإيماءات والعروض التوضيحية لواجهة المستخدم ومعظم مقاطع التفاعل. على مصدر 30 إطارًا في الثانية، هذا هو كل إطار ثالث؛ بمعدل 60 إطارًا في الثانية، كل خامس.
- 15 إطارًا في الثانية — للحركة المستمرة حيث يبدأ 12 في الوميض، مثل تحريك الكاميرا أو كائن مرتد.
- 5–8 إطارًا في الثانية — للمحتوى الشبيه بالشرائح: إنشاء مخطط، قبل/بعد، تكبير/تصغير بطيء. غالبًا ما تبدو متعمدة وليست رخيصة.
- 24+ إطارًا في الثانية — نادرًا ما يستحق ذلك. يتضاعف حجم الملف تقريبًا مقابل 12 إطارًا في الثانية ولا يستطيع معظم المشاهدين معرفة ذلك من خلال صورة متكررة صغيرة.
في مستخرج الإطارات، استخدم وضع "معدل الإطارات (FPS)" وأدخل المقسوم عليه: 3 لكل إطار ثالث، و5 لكل إطار خامس. يتم تحديث عدد الإطارات أثناء الكتابة، وهو الرقم الذي يتنبأ فعليًا بحجم ملفك.
التحقق من السلامة قبل الاستخراج: اضرب عدد الإطارات المقصود بحوالي 30-60 كيلوبايت. يعد هذا ملعبًا واقعيًا لإطار GIF بعرض 480 بكسل بعد تقليل اللوحة. يصل حجم ستين إطارًا إلى حوالي 2-3 ميغابايت. إذا كان ذلك يتجاوز ميزانيتك، فقم بقص الإطارات الآن - فهو أكثر فعالية بكثير من الضغط لاحقًا.
الخطوة 2: اجعل المدة قصيرة
لا تحتوي GIF على حالة استخدام طويلة. تغطي ثانيتان إلى أربع ثوانٍ تقريبًا كل ما يعمل كحلقة، ونقطة التكرار مهمة أكثر من الطول: المقطع الذي ينتهي بالقرب من حيث بدأ يُقرأ على أنه مستمر، بينما المقطع الذي يقطع الحركة المتوسطة يلفت الانتباه إلى التماس في كل تكرار.
استخدم شريط تمرير النطاق الزمني للقص قبل الاستخراج بدلاً من حذف الإطارات بعد ذلك. تكون الطوابع الزمنية مرئية أثناء السحب، لذا يمكنك وضع النقطة الخارجية في نفس الوضع مثل النقطة الداخلية.
الخطوة 3: فهم حد الـ 256 لونًا
هذا هو القيد الذي يفاجئ الناس، وهو يستحق الفهم بدلاً من القتال.
يتم فهرسة كل إطار GIF في لوحة مكونة من 256 لونًا على الأكثر. يحتوي الفيديو المصدر الخاص بك على الملايين. يجب أن يتخلص شيء ما من الاختلاف، وكيفية القيام بذلك هي التي تحدد كيفية ظهور النتيجة.
هناك إستراتيجيتان، والواحدة الصحيحة تعتمد كليًا على المحتوى:
- التردد ينثر وحدات البكسل من ألوان اللوحة المجاورة لتزييف الألوان المفقودة. التدرجات - السماء، والإضاءة الناعمة، والظلال على الوجه - تبقى أفضل بكثير معها. التكلفة عبارة عن نمط بقع مرئي وملف أكبر بشكل ملحوظ، لأن هذا الضجيج يتغلب على الضغط.
- لا يوجد تردد يوفر مساحات ألوان مسطحة ونظيفة وملفات أصغر بكثير. مثالي لتسجيلات الشاشة، وعروض واجهة المستخدم، وفن الخط، وأي شيء يحتوي على مناطق موحدة كبيرة. وينتج على التدرجات الفوتوغرافية نطاقات صلبة.
قاعدة عملية: محتوى الشاشة، بدون ثبات. لقطات الكاميرا، والتردد على. إذا لم تكن متأكدًا، قم بتصدير كليهما وانظر إليهما بالحجم الفعلي - الفرق واضح ويستغرق دقيقة.
وهذا أيضًا سبب الاستخراج إلى PNG هو الخيار الصحيح على الرغم من أن ملف GIF النهائي يحتوي على 256 لونًا. تصبح كل قطعة أثرية بتنسيق JPEG في المصدر لونًا يتعين على اللوحة إنفاق الإدخال عليه. إن إدخال إطارات نظيفة وغير مفقودة في خطوة اللوحة يمنح جهاز قياس الكمية نقطة بداية أفضل.
الخطوة 4: مطابقة تأخير الإطار مع الفاصل الزمني الذي استخرجته
لا تخزن ملفات GIF معدل الإطارات. إنهم يخزنون تأخيرًا لكل إطار، بمئات من الثانية - وهذا هو المكان الذي يتم فيه تشغيل الكثير من ملفات GIF بسرعة خاطئة.
الحساب بسيط: التأخير = 100 ÷ الإطارات المستهدفة في الثانية.
- 12 إطارًا في الثانية → تأخير 8 (0.08 ثانية)
- 10 إطارًا في الثانية → تأخير 10 (0.10 ثانية)
- 15 إطارًا في الثانية → تأخير 7 (تقريب إلى 6.67)
- 5 إطارًا في الثانية → تأخير 20 (0.20 ثانية)
هناك شيئان يجب معرفتهما. أولاً، التقريب حقيقي: لا يمكن التعبير عن 15 إطارًا في الثانية بدقة، لذا تنحرف الحلقة قليلاً. بالنسبة لأي شيء حيث التوقيت مهم، تفضل 10 أو 12.5 أو 20 أو 25 إطارًا في الثانية، والتي تنقسم بشكل نظيف. ثانيًا، تقوم معظم المتصفحات بضبط التأخيرات بشكل صامت أقل من 2 (0.02 ثانية) حتى 10 — وبالتالي فإن ملف GIF الذي تم إنشاؤه بمعدل 50 إطارًا في الثانية سيتم تشغيله بمعدل 10 إطارات في الثانية لمعظم المشاهدين، بخمسة أضعاف حجم الملف وبدون أي سلاسة.
الخطوة 5: قص الحجم، بالترتيب الذي يعمل
إذا كان الملف لا يزال كبيرًا جدًا، فقم بتطبيق ذلك بالترتيب. كل واحدة تكلف جودة أقل لكل بايت محفوظ مقارنة بتلك التي تليها.
- تقليل الأبعاد. يؤدي خفض العرض إلى أرباع عدد وحدات البكسل. يعد ملف GIF بعرض 480 بكسل مناسبًا لمعظم سياقات التضمين؛ نادرًا ما يكون الرقم 800+ ضروريًا.
- إفلات الإطارات. يؤدي الانتقال من 15 إلى 10 إطارات في الثانية إلى إزالة ثلث البيانات لتغيير لن يسجله معظم المشاهدين.
- اختصار المقطع. بلا رحمة. يحتوي كل ملف GIF تقريبًا على ثانية في البداية أو النهاية لا تفعل شيئًا.
- تقليل اللوحة إلى أقل من 256. 128 أو حتى 64 لونًا غالبًا ما تكون غير مرئية على محتوى الشاشة وتكون أصغر حجمًا بشكل ملحوظ.
- أوقف تشغيل التدرج إذا كنت تستخدمه ويمكن للمحتوى استيعابه.
لاحظ أن "الضغط بقوة أكبر" ليس موجودًا في القائمة. يتم ضغط ملفات GIF بدون فقدان LZW - ولا يوجد اتصال عالي الجودة. كل ما يمكنك فعله هو اتخاذ قرار بشأن البيانات التي يجب تضمينها في المقام الأول.
متى لا ينبغي لك إنشاء صورة GIF على الإطلاق
يستحق القول بوضوح، لأنه يوفر الكثير من الجهد:
- أي شيء يستغرق حوالي خمس ثوانٍ. سيكون MP4 أو WebM جزءًا صغيرًا من الحجم بجودة أفضل. تقوم معظم الأنظمة الأساسية التي تقبل "ملفات GIF" الآن بتحويلها إلى فيديو داخليًا على أي حال.
- محتوى فوتوغرافي به الكثير من التدرج. 256 لونًا ببساطة غير كافية، ولا توجد خدعة في لوحة الألوان يتم حل المشكلة.
- أي شيء يحتاج إلى صوت. لا يحتوي ملف GIF على أي شيء، وستشعر الحلقة بالخطأ إذا كان المصدر به إيقاع.
- أي شيء يزيد عرضه عن 800 بكسل. بحلول ذلك الوقت، تكون عقوبة الحجم شديدة بما يكفي بحيث يكون الفيديو هو الإجابة الصحيحة.
تكتسب GIF مكانها في موقف واحد بالضبط: حلقة قصيرة وصامتة يتم تشغيلها تلقائيًا ويجب أن تعمل في أي مكان بدون مشغل. ولهذا السبب، لا يزال لم يتم التغلب عليه - بشرط أن يتم اختيار الإطارات التي يتم إدخالها عمدًا.
مثال عملي
لنفترض أنك تريد صورة GIF لـ تفاعل واجهة المستخدم لمدة ثلاث ثوانٍ من تسجيل شاشة بمعدل 60 إطارًا في الثانية، بأقل من 1 ميغابايت.
- الاقتطاع إلى 3.2 ثانية تحتوي على التفاعل، مع اقتراب الإطار الأخير من الأول.
- استخراج في وضع FPS مع N = 5 — كل إطار خامس بمعدل 60 إطارًا في الثانية يعطي 12 إطارًا في الثانية، أي حوالي 38 إطارًا. إخراج PNG.
- التجميع عند التأخير 8، يتم إيقاف التدرج (وهو محتوى شاشة بألوان مسطحة).
- قم بقياسه إلى 600 بكسل عرضًا إذا كان المصدر أكبر.
- تحقق من النتيجة. يصل حجم حوالي 38 إطارًا من محتوى واجهة المستخدم المسطحة عادةً إلى أقل من 1 ميغابايت. إذا لم يكن الأمر كذلك، فقم بإسقاط اللوحة إلى 128 لونًا قبل لمس أي شيء آخر.
يستغرق الأمر برمته بضع دقائق، وكل خطوة هي قرار اتخذته وليس خطأً ورثته.