مشكلة في تشغيل مقاطع الفيديو على Safari لنظامي التشغيل iOS و macOS

مرحباً بالجميع،

نواجه مشكلة في 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؟ وهل هناك أي تشخيص آخر يمكنني القيام به قد يلقي الضوء على المشكلة؟

إعجاب واحد (1)

أواجه مشكلة مماثلة في منتدياتي، ولكن اختبار نفس الملفات هنا يبدو أنه يعمل بشكل جيد. يتأثر مستخدمو iOS/Safari فقط. تعمل بعض مقاطع الفيديو في حاوية WEBM، ولكن معظم مقاطع mp4 و mov وما إلى ذلك لا تعمل.

إعجابَين (2)

مرحباً، كنت أرى مشاكل مؤخراً وعلقت على موضوع بدأه @tsk تم إزالته. كنت أعمل على افتراض أن المشكلة كانت مع مقاطع الفيديو المشفرة بـ mp4/av1 حيث كانت مقاطع الفيديو webm/vp9 تعمل على منتدياتنا، ولكن يبدو أن المشكلة أكبر من ذلك لمستخدمي Safari.

فقط للمرح، لقد تحققت من أنني على أحدث إصدار، على الرغم من أنني لم أر شيئًا في الالتزامات يشير إلى أنه يؤثر على مستخدمي Apple.

image

يستخدم التكوين الخاص بي التخزين المحلي للتحميلات. معظم المواضيع مقفلة خلف مستوى الثقة، لكننا نختبر في فئة عامة هنا:

هل يمكنك مشاركة رابط للفيديو المذكور، أو تحميله هنا؟

إعجاب واحد (1)

@Les79 لقد قمت بتحميل هذا الفيديو في كلا المنتديين كاختبار.

هل يمكنك تأكيد أن الفيديو في موضوع تشغيل بكسل سبيس سفاري لا يعمل لديك، ولكن الفيديو هنا يعمل؟

إعجاب واحد (1)

نعم، الفيديو المنشور هنا يعمل على سفاري على كل من جهاز iPhone 13 وجهاز MacBook Pro M3 الخاص بي. إنه لا يعمل في منتدى PixelSpace.

إعجابَين (2)

هذا الفيديو بصيغة H.264 في MP4، ويجب أن يعمل على جميع المتصفحات التي تشغل Discourse. بما أنه يعمل هنا وليس على نسختك، أشك في وجود خطأ في التكوين هناك.

هل تستخدم أي وكيل عكسي إضافي فوق Discourse؟ لقد رأيت بعض الرؤوس في هذه النسخة التي لا توجد في التثبيتات القياسية، لذا أنا مهتم بما تم القيام به هناك.

إعجاب واحد (1)

أنا أرى نفس الشيء.

أنا أستخدم هذا الحاوية كوكيل عكسي

لقد فكرت في أن هذا قد يكون مسؤولاً جزئيًا ولكن التكوين لم يتغير وهذه مشكلة جديدة في 3.6.0-beta2 على حد علمي. بدأت في تلقي شكاوى من مستخدمي Apple بعد إعادة البناء. على غرار @mandyk، لا أتذكر ما كنا عليه سابقًا.
image
هل هناك إعداد معين في discourse يجب علي تقييمه؟

إعجاب واحد (1)

لا يتعلق الأمر بـ Discourse، بل بالخادم الوكيل (proxy).

للأسف، لا يمكننا تغطية جميع الاحتمالات اللانهائية للتكوينات بشكل واقعي عندما يضيف الأشخاص أشياء فوق Discourse، ولهذا السبب نقوم بالشحن بتكوين جيد معروف في التثبيت القياسي الذي يأتي مع خادم وكيل عكسي تم تكوينه لـ Discourse.

قد يكون هناك سطر تكوين nginx واحد مفقود، ولكن ستحتاج إلى البحث في ذلك.

إعجاب واحد (1)

وأؤكد أيضًا أن الفيديو المنشور في هذا الموضوع يعمل بشكل جيد في سفاري.

لست متأكدًا مما إذا كان هذا ذا صلة، ولكن أحد الاختلافات التي يمكنني ملاحظتها هو أن الفيديو في هذا الموضوع يتم تقديمه من S3. عندما يقوم سفاري بإجراء أول طلب نطاق، يرد S3 برمز HTTP 206، وهو ما يبدو صحيحًا. لا يستخدم كل من مثيل Pixelspace ومثيلي S3، ويبدو أن Discourse يرد برمز HTTP 200 (وهو ما لا يبدو صحيحًا، لأن الطلب يتضمن رأس Range: bytes=0-1).

لقد قمت بتحميل نفس الفيديو إلى المثيل التجريبي الخاص بي على
https://discourse-on-a-pi5.falco.dev/t/test-safari-bug/25?u=falco

تم التأكيد على أن الفيديو على discourse-on-a-pi5.falco.dev لا يعمل لدي على متصفح سفاري. مرة أخرى، يمكنني رؤية أن طلب الفيديو يُرجع 200 بدلاً من 206.

تعديل: بالإضافة إلى ذلك، يبدو أن الاستجابة تحاول إرجاع الفيديو بأكمله على الرغم من تحديد Range: bytes=0-1. أشك في تجاهل طلبات النطاق، ويبدو أن سفاري حساس لهذا الأمر.

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

3 إعجابات

التشغيل لا يعمل في سفاري بالنسبة لي

وهل يعمل على Test Safari Bug - Discourse صحيح؟

نعم، هذا يعمل! وأرى HTTP 206 هناك.

إعجاب واحد (1)

يبدو أن هذا تراجع في إعدادات nginx الافتراضية لدينا، شكرًا على التقرير @mandyk

إعجاب واحد (1)

شكراً لـ @Adubs على نشر مقارنة مضادة للمقارنة! ولـ فريق Discourse على أداة رائعة.

5 إعجابات

لذا، لمزيد من المرح، قمت بنسخ ملف app.yml الخاص بي إلى app2.yml، وغيرت عنوان URL وبعض الدلائل، ولدينا الآن testfor.pixelspace.xyz يعمل على الفرع المستقر.

https://testfor.pixelspace.xyz/t/safari-playback-test/8

يؤكد مستخدمي أن الأمر يعمل هنا من خلال نفس الوكيل.

تعديل: أرى الآن تأكيدًا للمشكلة. أعتذر لعدم التفكير في تجربة هذا في وقت سابق. شكراً لك على رؤيتك @mandyk

لم أكن لأكتشف ذلك بنفسي.

3 إعجابات