إصلاح التخزين المؤقت والتقطّع: قائمة تحقق تبدأ بالسؤال الصحيح

يصنّف التطبيق مسبقًا تسعة أعطال تشغيل متمايزة. ومعرفة أيّها لديك تحوّل مشكلة مبهمة إلى قائمة قصيرة.

معظم نصائح التخزين المؤقت تبدأ بـ«تحقق من اتصالك بالإنترنت». وقد فعلت ذلك بالفعل. الخطوة الأولى الأفضل هي أن تحدد أيًّا من عدة أعطال لديك، لأن لكل منها إصلاحًا مختلفًا، والتطبيق قد صنّفه لك مسبقًا.

تسعة أعطال، لا عطل واحد

ليس لدى المشغّل مفهوم واحد لـ«لا يعمل». فهو يصنّف الأعطال في 9 أنواع، والنوع هو الذي يقرر أي استرداد يعمل:

F1  NetStall      no bytes arriving at all
F2  SilentEof     the stream ended without you asking
F3  HardError     the stream would not open
F4  DemuxStarve   bytes arriving, no frames coming out
F5  VideoFreeze   picture stopped, audio still playing
F6  TotalFreeze   both stopped, data still flowing
F7  BlackFrames   everything healthy, picture is black
F8  ClockStall    the input clock stopped advancing
F9  RebufferLoop  repeated rebuffering in a rolling window

هذه مشكلات مختلفة. F1 مشكلة شبكتك أو شبكة المزوّد. F4 بث يرسل حشوًا بدل الفيديو، وهي مشكلة لدى المزوّد لا يستطيع اتصالك إصلاحها. F7 عادةً مصدر يبث صورة سوداء، ولن تنفع معه أي إعادة تشغيل مهما تكررت.

لا يُعلَن أي شيء فورًا. على العطل أن يستمر خلال نافذة أولًا: 4 ثوانٍ من صفر بايت، و6 ثوانٍ من محلِّل تفكيك (demuxer) جائع، و4 ثوانٍ من فيديو متوقف، و4 ثوانٍ من تجمّد كلي. توجد هذه النوافذ لأن تعثّرًا لمدة 2 ثانية ليس عطلًا. ومشغّل يتفاعل مع كل تعثّر سيقضي المساء في إعادة تشغيل بث كان على وشك التعافي.

ما يفعله المشغّل مسبقًا قبل أن تفعل أنت أي شيء

ثلاثة أمور، حتى لا تكرّرها.

إنه يكيّف مخازنه المؤقتة بنفسه. حين تتكرر إعادة التخزين المؤقت، يرفع المشغّل الحد الأدنى للتخزين المؤقت لديه بمقدار 1000 ملّي ثانية لكل حكم، حتى 5000. على اتصال هامشي، يكون التطبيق على الأرجح قد منح نفسه مخزنًا مؤقتًا أكبر من 1200 ملّي ثانية من ذاكرة الشبكة المؤقتة و800 من ذاكرة البث الحي المؤقتة التي يبدأ بها. ورفع إعداد المخزن المؤقت يدويًا يعيد في الغالب عملًا قد حدث بالفعل.

وهو حريص أيضًا على ما يُعَدّ إعادة تخزين مؤقت. لا تُحسب النوبة إلا حين تنخفض الذاكرة المؤقتة تحت 62 بالمئة، وتنتهي عند 88. هذا التخلّف (hysteresis) موجود لأن قراءات الذاكرة المؤقتة في HLS الحي تتذبذب عند حدود المقاطع، وحساب كل انخفاض تحت الامتلاء سيصنّف بثوثًا سليمة على أنها معطوبة.

ويلتقط العطل الذي لا يُنتج أي خطأ، ولهذا فإن «إنه يظل واقفًا فحسب» فئة حقيقية. يمكن لبث أن يتوقف عن الإرسال مع إبقاء مقبسه مفتوحًا. اختبرنا هذا على منصة حقن أعطال وكانت النتيجة قاطعة: فرق عدّاد البايتات يصير 0 ولا يصدر عن المشغّل أي حدث إطلاقًا. لا شيء يُخطئ. لا شيء يُلقي استثناءً. تبقى الصورة على آخر إطار وصلها.

لهذا يكون الكشف مؤقِّتًا يراقب العدّادات لا معالج أخطاء، ولهذا يوجد انتظار 4 ثوانٍ قبل أن يحدث أي شيء. إذا تجمّد بثك وتعافى بعد ثوانٍ قليلة، فقد شاهدت تلك الآلية تعمل.

لم أتوقع أن يكون جانب إعادة المحاولة هو الرافعة الأكبر. مع ضبط مهلتَي الاتصال كلتيهما على 8 ثوانٍ، قضى توقفٌ كلي للبايتات 8 ثوانٍ من أصل 15.7 ثانية في إعادة تشغيل عنوان URL كان لا يزال ميتًا. وتقليص مهلة إعادة المحاولة إلى 4 ثوانٍ، وهي ذات الـ4 ثوانٍ من صفر بايت الموثوق بها أصلًا للحكم على بث قائم، كان التحسين الأكبر منفردًا في زمن الانتقال المقاس من العطل إلى البديل. ويسمح السلّم أيضًا بإعادة تشغيل واحدة (1) بالضبط قبل تبديل المصادر، لأن بيانات الميدان أظهرت أن إعادة تشغيل ثانية لمصدر ميت لا تنفع أبدًا.

قائمة التحقق، بالترتيب الذي يجد الأشياء أسرع

1. هل هي قناة واحدة أم كلها؟ القناة الواحدة مشكلة مصدر ولن يصلحها أي إعداد على جهازك. إذا كان مزوّدك يقدّم القناة نفسها بجودة أخرى أو من خادم آخر، فجرّب ذلك. أما كل القنوات فالمشكلة من جهتك.

2. أهو اتصال سلكي أم لاسلكي؟ هذا هو السؤال الأكثر إنتاجية منفردًا. البث الحي قراءة مستمرة في الزمن الحقيقي، والاتصال اللاسلكي الهامشي ينتج بالضبط العَرَض الذي يلوم الناس المشغّل عليه. جرّب كابلًا مرة واحدة، لغرض التشخيص فقط.

3. هل تعمل القناة نفسها على جهاز آخر في الشبكة نفسها؟ إذا عملت على الهاتف ولم تعمل على الحاسوب، فقد حصرتها في الجهاز. وإذا فشلت على كليهما، فقد حصرتها في الشبكة أو المزوّد.

4. هل أنت عند حد اتصالاتك؟ اتصالان وثلاثة أجهزة تقطّع يبدو كأنه عرض نطاق وليس كذلك. يشرح الحد الأقصى للاتصالات لماذا يظل الاتصال مستهلكًا بعد أن توقفت عن المشاهدة.

5. هل الصورة تتوقف فعلًا، أم أنه ارتجاج (judder)؟ التقطّع المنتظم الإيقاعي في لقطات التحريك الأفقي هو عادةً عدم تطابق في معدل التحديث: محتوى 50 Hz على شاشة 60 Hz. ذلك إعداد للشاشة لا مشكلة مخزن مؤقت، ولن يغيّره أي قدر من التخزين المؤقت. يغطيه توصيل حاسوب محمول بالتلفزيون عبر HDMI.

إذا كنت تستخدم وكيلًا أو VPN داخل التطبيق

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

لذا فإن قناة كانت تعمل قبل أن تضبط ملفًا وتفشل بعده ليست بالضرورة ملفًا معطوبًا. قد تكون بثًا لا يستطيع المرحِّل حمل مخططه (scheme)، فيرفض التسريب. هذا هو الملف وهو يعمل. يغطي شبكات VPN وأداء البث ما يهم فعلًا هناك.

إذا كانت الصورة متجمدة والصوت مستمرًا، فذلك F5 تحديدًا وله مقاله الخاص: الفيديو يتجمد والصوت يستمر للآلية، وصوت بلا صورة لما ينبغي فعله حياله.

ما قياس هذه المادة22 ادعاءات، كل منها مزود بالأدلة التي تقف خلفه
المطالبةالأدلةعد
تُصنَّف أعطال التشغيل في تسعة أنواع بدل الإبلاغ عنها كخطأ عام واحد، والنوع هو الذي يحدد أي درجة استرداد تعمل.n = 931‏/08‏/2026
على كل عطل أن يستمر خلال نافذة ثابتة قبل إعلانه: 4 ثوانٍ من صفر بايت، و6 ثوانٍ من محلِّل تفكيك جائع، و4 ثوانٍ من فيديو متوقف، و4 ثوانٍ من تجمّد كلي.n = 431‏/08‏/2026
لا تُحسب نوبة إعادة التخزين المؤقت إلا حين تنخفض الذاكرة المؤقتة تحت 62 بالمئة، وتنتهي عند 88 بالمئة، لأن قراءات الذاكرة المؤقتة في HLS الحي تتذبذب عند حدود المقاطع، وحساب كل انخفاض تحت الامتلاء سيصنّف بثوثًا سليمة كمعطوبة.n = 123‏/08‏/2026
حين يُعلَن عن حلقة إعادة تخزين مؤقت، يرفع المشغّل الحد الأدنى للتخزين المؤقت لديه بمقدار 1000 ملّي ثانية لكل حكم، حتى سقف 5000 ملّي ثانية، بدل أن يطلب من المشاهد تغيير إعداد.n = 123‏/08‏/2026
التخزين المؤقت الافتراضي هو 1200 ملّي ثانية من ذاكرة الشبكة المؤقتة و800 من ذاكرة البث الحي المؤقتة على مسار البث الحي بملء الشاشة، مقابل 350 و200 على بلاطة عرض متعدد مكتومة الصوت.n = 123‏/08‏/2026
البث الذي يتوقف عن الإرسال مع إبقاء مقبسه مفتوحًا لا يُنتج أي حدث في المشغّل إطلاقًا. يصير فرق عدّاد البايتات صفرًا ولا يتغير شيء آخر، ولهذا يجب أن يكون الكشف مؤقِّتًا لا معالج أخطاء.n = 116‏/08‏/2026
للكاشف بكامله ثلاثة أوضاع طرح: Active وShadow (كشف وتسجيل فقط) وOff. الوضع الافتراضي هو Active، ويمكن ضبط الوضع من الإعدادات دون إعادة بناء.n = 301‏/09‏/2026
تُعايَن العدّادات مرة كل ثانية ما دام البث يبدو سليمًا، ومرتين كل ثانية حين يبدو مشبوهًا.n = 201‏/09‏/2026
يُحكَم على فتح البث بمعزل عن تشغيله: 15 ثانية للوصول إلى أول عرض في فتح بارد، و8 في محاولة استرداد، مع الحكم على الصمت الكلي للشبكة عند 8 ثوانٍ في الفتح البارد و4 في إعادة المحاولة.n = 401‏/09‏/2026
كان تقليص مهلة إعادة المحاولة التحسين الأكبر منفردًا في زمن الانتقال المقاس من العطل إلى البديل: مع ضبط المهلتين كلتيهما على 8 ثوانٍ، قضى توقفٌ كلي للبايتات 8 ثوانٍ من أصل 15.7 ثانية في إعادة تشغيل عنوان URL كان لا يزال ميتًا.n = 101‏/09‏/2026
يعود البث المشبوه إلى الحالة السليمة بعد 3 ثوانٍ من فروق طبيعية، و60 ثانية متواصلة من السلامة تعيد ضبط سلّم الاسترداد وتراجعه.n = 201‏/09‏/2026
يُسمح للعدّادات بالتوقف 5 ثوانٍ بعد تقديم أو إرجاع من المستخدم دون أن يُحسب ذلك عطلًا.n = 101‏/09‏/2026
القنوات التي ليست فيديو عاديًا تحصل على نوافذها الخاصة: 15 ثانية لقناة منخفضة معدل الإطارات و12 لقناة مصنّفة صوتًا فقط، مقابل 4 للفيديو العادي.n = 301‏/09‏/2026
تُصنَّف الجلسة صوتًا فقط بعد 4 ثوانٍ، وهي مدة اختيرت لتقع داخل مهلة البدء وفوق تأخيرات PMT المتأخرة المرصودة، لأن تصنيف قناة فيديو خطأً سيعطّل قواعد التجمّد الخاصة بها بصمت لبقية الجلسة.n = 101‏/09‏/2026
يفعّل تلف البث نوافذ تجمّد أقصر: 3 انقطاعات أو 25 وحدة تالفة في عيّنة واحدة تُبقي النوافذ المقلَّصة مفعّلة 10 ثوانٍ.n = 301‏/09‏/2026
لمدة 10 ثوانٍ بعد الاسترداد، تُقسَم نوافذ الحكم على اثنين، لأن الدليل الذي أدان المصدر قبل لحظات لا يزال قائمًا. والبث المُصلَح فعلًا يقدّم عدّاداته فورًا ولا يدخل تلك النوافذ أبدًا.n = 101‏/09‏/2026
تتراجع إعادات المحاولة بمقدار الأساس مضروبًا في اثنين مرفوعًا إلى رقم المحاولة ناقص واحد، بسقف 30 ثانية وبتذبذب زائد أو ناقص 20 بالمئة، فتنطلق المحاولة الأولى فورًا وتنمو اللاحقة 1 و3 و7 ثوانٍ.n = 301‏/09‏/2026
يسمح السلّم بإعادة تشغيل واحدة (1) بالضبط لعنوان URL فاشل قبل تبديل المصادر، لأن بيانات الميدان أظهرت أن إعادة تشغيل ثانية لمصدر ميت لا تنفع أبدًا ولا تفعل سوى تأخير التبديل.n = 101‏/09‏/2026
العطل في أول 15 ثانية من الجلسة يدخل السلّم عند التحويل الاحتياطي بدل إعادة التشغيل، على أساس أن المصدر لم يثبت نفسه قط. أما الجلسات الناضجة فتُبقي إعادة التشغيل أولًا حتى لا يسبّب تعثّر في منتصف المشاهدة تبديلًا للمصدر أبدًا.n = 101‏/09‏/2026
بعد أن يستسلم السلّم، تستمر إعادات المحاولة في الخلفية كل 60 ثانية وتتوقف كليًّا بعد 30 دقيقة، فلا يبقى سوى إعادة المحاولة اليدوية سبيلًا.n = 201‏/09‏/2026
يشغّل التحويل الاحتياطي السلس البديل على مفكّك ترميز ثانٍ ويبدّل عند أول إطار منه، لكنه يكلّف اتصالًا إضافيًا واحدًا لدى المزوّد خلال التداخل، لذا يرفض المخطِّط كلما لم يكن ذلك الاتصال فائضًا على نحو مثبَت ويتراجع إلى إعادة تشغيل عادية.n = 101‏/09‏/2026
حين يكون ملف اتصال قيد الاستخدام، فإن الوسائط التي لا يستطيع النقل المضبوط حملها تفشل بإغلاق بدل أن تتراجع إلى اتصال مباشر.n = 125‏/08‏/2026