ملفات GIF المضمنة في المشاركات تتوقف مؤقتًا بعد تنزيلها محليًا

مرحباً،

أواجه مشكلة في تضمين ملفات GIF مخصصة (تم إنشاؤها باستخدام ScreenToGif) في منشورات Discourse. عند تضمين ملف GIF، يعمل لفترة وجيزة ثم يتجمد على الإطار الأول، على سبيل المثال:

يبدو أنه يعمل كما هو متوقع في معاينة المنشور. وعند فتح ملف GIF المرفوع في علامة تبويب جديدة، يعمل هناك أيضاً. لكنه يتجمد فقط داخل Discourse نفسه.

جربت أربع حلول بديلة:

  1. رفع ملف GIF إلى موقع ويب آخر (مثل سلة S3)، ثم إنشاء رابط إليه. يعمل ذلك حتى يأتي بوت النظام ويقوم بتحميله محلياً، وعندها يتجمد مرة أخرى.

  2. ظننت أيضاً أن هذا قد يكون له علاقة بتغيير الحجم، لذا جربت إزالة تنسيق Markdown للصورة، على سبيل المثال:

    ![](upload://4IHl8zz0sJiYl5Vm3H21YTEFo9z.gif)
    

    بدلاً من:

    ![example|690x383](upload://4IHl8zz0sJiYl5Vm3H21YTEFo9z.gif)
    
  3. بما أن ملف GIF كان يعمل عندما تابعت الرابط إلى علامة تبويب جديدة، جربت استبدال URI المختصر “upload” بعنوان URL الكامل للصورة المرفوعة، على سبيل المثال:

    ![example|690x383](https://d11a6trkgmumsb.cloudfront.net/original/3X/2/1/211635b9ae2b0960e8e135299b3a91189b00c289.gif)
    
  4. أخيراً، اعتقدت أن المشكلة قد تكون مرتبطة بتفسير Discourse لكود Markdown، لذا جربت استخدام وسم صورة HTML خام مع عنوان URL الكامل للصورة المرفوعة:

    <img src="https://d11a6trkgmumsb.cloudfront.net/original/3X/2/1/211635b9ae2b0960e8e135299b3a91189b00c289.gif">
    

للأسف، لم ينجح أي شيء. لو كنت أتحكم في المنتدى الذي أرغب في النشر فيه، لكان بإمكاني تعطيل التحميلات المحلية. لكن للأسف، لا أملك ذلك!

بما أن الأمر يعمل هنا ولكنه لا يعمل على موقعك، فإنني أقترح إعادة بناء موقعك والمحاولة مرة أخرى. لقد قمنا بالعديد من التغييرات الأخيرة حول ملفات GIF. خلال بعض الفترات، واجهنا أخطاءً مثل تلك التي أبلغت عنها، وقد يكون موقعك يعمل على إصدار متأثر.

لا أعتقد أن هذه هي المشكلة. بالنسبة لي، لا تعمل هنا. أستطيع رؤية الإطار الأول فقط.

هل من الممكن أن يكون هناك إعداد افتراضي آخر في Chrome يعيق الأمر؟

أوه، يمكنني تكراره على Chrome. غريب جدًا.

الأصلي

مُحسَّن عبر Gifscicle
weird_optimized

بعد تمريره عبر Gifscicle، يعمل:

شكرًا لك على إعادة الإنتاج. ما أمر gifcicle الذي قمت بتشغيله للتحسين؟

إنها بسيطة:

gifscicle original.gif -o fixed.gif

وبالمناسبة، يدعم Discourse تلقائيًا كلا من ملفات MP4 و WEBP، مما قد يمنحك نتائج أفضل!

لا أعتقد أن الأمر يتعلق بحجم الملف، لأنني جربت صورًا متحركة (GIF) أكبر وأصغر حجمًا دون جدوى.

رائع، دعني أرى ما إذا كان هذا يعمل مع ملفات GIF الفعلية الخاصة بي. سأقوم بالتحديث عند الانتهاء.

بالتأكيد ليس حجم الملف، بل ملف “غير صحيح” يقوم gifscicle بإصلاحه. من الشائع رؤية بعض الأدوات تنتج ملفات معيبة. أنا دائمًا أعرض ملفات GIF الخاصة بي على أداة جيدة مثل ffmpeg قبل مشاركتها. ولكن حتى في هذه الحالة، قد تحصل بسهولة على ملف غير صحيح إذا كانت الأبعاد فردية، على سبيل المثال.

صيغة GIF معقدة، وهناك خيارات أفضل في الوقت الحاضر مثل MP4 و WEBP لمعظم التطبيقات.

نجح الأمر مع جميع ملفات GIF الخاصة بي. كما اضطررت إلى إضافة العلم --colors 256 في بعض الحالات.

بالنسبة لأي شخص يتساءل، فقد قمت بتوليد ملفات GIF التي كانت بها أخطاء في الأصل باستخدام مولد “الشبكات العصبية” لـ ScreenToGif.

شكرًا لمساعدتك يا @Falco

@nbianca هل لديك أي فكرة عن سبب عدم تحريك صورة GIF المصغرة؟ يبدو أن ملف GIF الأصلي يقع ضمن الحدود المسموح بها.

يتم تشغيله بشكل متحرك في فايرفوكس. إما أن ملف GIF تالف أو أن هناك خطأ في كروم.

لا يتم تشغيله بشكل متحرك لدي في أحدث إصدار من Firefox على نظام Windows 10.

مثير للاهتمام! إليك كيف يظهر لي على نظام لينكس، مع متصفح فايرفوكس على اليسار وكروم على اليمين:

جميع ملفات GIF في هذا الموضوع متحركة بالنسبة لي (متصفح Chrome على نظام Arch Linux)، لكن إصدار FastImage الحالي يقول إنها ليست متحركة بسبب هذا العيب.

في هذه الحالة، يجب أن نسعى لدمج ذلك في أقرب وقت ممكن بدلاً من التأخير :+1:

لأجل ما تملكه، لقد وجدتُ حالتين حيث لا يعمل gifsicle. على وجه التحديد، أحيانًا يُستلزم استخدام --colors 256 للحصول على ملف GIF يعمل. لكن في أحيان أخرى، يكون من الضروري استبعاد هذا العلم.

مرحباً،

تم قبول الإصلاح لمشكلتك وهو متاح الآن في أحدث إصدار.