نواجه مشكلة في 3.6.0.beta3-latest حيث يواجه مستخدمو iPhone و Safari على macOS دوامة لا نهائية عند محاولة تشغيل فيديو .mp4 (H.264) تم تحميله. هذه الفيديوهات نفسها كانت تعمل بشكل جيد حتى وقت قريب (لست متأكدًا من آخر إصدار من Discourse كانت تعمل فيه).
يبدو أن Safari يقوم بطلب GET لجلب البايتات الأولى (Range: bytes=0-1) من الفيديو (مثل /uploads/default/original/1X/44395933ccadf546b1b1ce65b742e24f900b33fa.mp4)، والذي يعود بـ 200 ولكنه يفشل لأسباب غير معروضة في وحدة تحكم JavaScript أو مفتش الشبكة (يتم تمييزها باللون الأحمر فقط، ولا توجد رسائل خطأ). إذا تم لصق نفس عنوان URL مباشرة في المتصفح، فيمكنهم تنزيل الفيديو بالكامل وتشغيله بنجاح.
لا توجد مشاكل في تشغيل الفيديوهات بواسطة Firefox و Chrome على macOS. كما لا يبدو أن هناك مشاكل في المتصفحات على Android.
الفيديوهات صغيرة (في نطاق 10 ميجابايت). لا نستخدم S3 للتحميلات.
هل يمكن لأي شخص آخر تأكيد ذلك، أو تأكيد عدم وجود مشاكل لديهم مع تشغيل الفيديوهات على iPhones/Safari؟ وهل هناك أي تشخيص آخر يمكنني القيام به قد يلقي الضوء على المشكلة؟
أواجه مشكلة مماثلة في منتدياتي، ولكن اختبار نفس الملفات هنا يبدو أنه يعمل بشكل جيد. يتأثر مستخدمو iOS/Safari فقط. تعمل بعض مقاطع الفيديو في حاوية WEBM، ولكن معظم مقاطع mp4 و mov وما إلى ذلك لا تعمل.
مرحباً، كنت أرى مشاكل مؤخراً وعلقت على موضوع بدأه @tsk تم إزالته. كنت أعمل على افتراض أن المشكلة كانت مع مقاطع الفيديو المشفرة بـ mp4/av1 حيث كانت مقاطع الفيديو webm/vp9 تعمل على منتدياتنا، ولكن يبدو أن المشكلة أكبر من ذلك لمستخدمي Safari.
لقد فكرت في أن هذا قد يكون مسؤولاً جزئيًا ولكن التكوين لم يتغير وهذه مشكلة جديدة في 3.6.0-beta2 على حد علمي. بدأت في تلقي شكاوى من مستخدمي Apple بعد إعادة البناء. على غرار @mandyk، لا أتذكر ما كنا عليه سابقًا.
هل هناك إعداد معين في discourse يجب علي تقييمه؟
لا يتعلق الأمر بـ Discourse، بل بالخادم الوكيل (proxy).
للأسف، لا يمكننا تغطية جميع الاحتمالات اللانهائية للتكوينات بشكل واقعي عندما يضيف الأشخاص أشياء فوق Discourse، ولهذا السبب نقوم بالشحن بتكوين جيد معروف في التثبيت القياسي الذي يأتي مع خادم وكيل عكسي تم تكوينه لـ Discourse.
قد يكون هناك سطر تكوين nginx واحد مفقود، ولكن ستحتاج إلى البحث في ذلك.
وأؤكد أيضًا أن الفيديو المنشور في هذا الموضوع يعمل بشكل جيد في سفاري.
لست متأكدًا مما إذا كان هذا ذا صلة، ولكن أحد الاختلافات التي يمكنني ملاحظتها هو أن الفيديو في هذا الموضوع يتم تقديمه من S3. عندما يقوم سفاري بإجراء أول طلب نطاق، يرد S3 برمز HTTP 206، وهو ما يبدو صحيحًا. لا يستخدم كل من مثيل Pixelspace ومثيلي S3، ويبدو أن Discourse يرد برمز HTTP 200 (وهو ما لا يبدو صحيحًا، لأن الطلب يتضمن رأس Range: bytes=0-1).
تم التأكيد على أن الفيديو على discourse-on-a-pi5.falco.dev لا يعمل لدي على متصفح سفاري. مرة أخرى، يمكنني رؤية أن طلب الفيديو يُرجع 200 بدلاً من 206.
تعديل: بالإضافة إلى ذلك، يبدو أن الاستجابة تحاول إرجاع الفيديو بأكمله على الرغم من تحديد Range: bytes=0-1. أشك في تجاهل طلبات النطاق، ويبدو أن سفاري حساس لهذا الأمر.
تعديل إضافي: هذا يعني على الأرجح أن البحث الفعال في مقاطع الفيديو الأكبر معطلاً للمتصفحات الأخرى غير سفاري أيضًا، حيث تحتاج إلى تنزيل الفيديو بأكمله قبل أن تتمكن من البحث.
لذا، لمزيد من المرح، قمت بنسخ ملف app.yml الخاص بي إلى app2.yml، وغيرت عنوان URL وبعض الدلائل، ولدينا الآن testfor.pixelspace.xyz يعمل على الفرع المستقر.