تصحيح أخطاء تشغيل الوسائط على الويب

François Beaufort
François Beaufort

قد يكون تصحيح أخطاء عناصر الوسائط في HTML، مثل <video> و<audio>، أمرًا صعبًا لأنّ عمليات تنفيذ برامج الترميز تختلف في ما تعتبره أخطاء (تكون برامج ترميز الأجهزة بشكل عام الأكثر صرامة)، لا سيما عندما قد يستخدم التشغيل ميزات أكثر غموضًا لبرنامج ترميز معيّن. لحسن الحظ، تتوفّر مجموعة متنوعة من الأدوات التي يمكننا الاستفادة منها للمساعدة.

عند تصحيح أخطاء تشغيل الوسائط، نتحقق عادةً أولاً من سمة MediaError error في عنصر الوسائط HTML. هذه السمة هي تلميح على مستوى عالٍ يشير إلى سبب خطأ تشغيل الوسائط. تعرِض السمة MediaError.code قيمة رقمية تمثّل نوع الخطأ الذي حدث في عنصر وسائط. قد يوفّر الموقع الآخر MediaError.message سلسلة تتضمّن بعض المعلومات التشخيصية من المتصفّح.

const video = document.querySelector('video');
video.addEventListener('error', () => {
  console.log('Error code: ' + video.error.code);
  console.log('Error message: ' + video.error.message);
});

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

للوصول إلى معلومات الأخطاء الكاملة، استخدِم "لوحة الوسائط" في "أدوات مطوري البرامج في Chrome" لعرض سجلات الوسائط. ستجد الكثير من المعلومات، مثل الأحداث والتحذيرات ورسائل الخطأ التي ستمنحك بعض الإشارات المفيدة حول أخطاء تشغيل الوسائط.

لقطة شاشة للوحة الوسائط في &quot;أدوات مطوّري البرامج في Chrome&quot;
لوحة الوسائط في "أدوات مطوّري البرامج في Chrome"

يمكنك أيضًا استخدام تطبيق FFmpeg المجاني للتحقّق من سلامة ملف الوسائط باستخدام الأمر التالي:

ffmpeg -err_detect explode -i <file> -f null -

في ما يلي بعض الأخطاء التي قد تظهر لك عند استخدام هذه الأوامر لملف فيديو يتضمّن برنامج ترميز غير صالح:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc62df05380] Could not find codec parameters for stream 0 (Video: none (zzzz / 0x7A7A7A7A), none(smpte170m/smpte170m/bt709, progressive), 320x240, 4 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
[matroska,webm @ 0x7fd45b705380] Unknown EBML doctype '0000'
[matroska,webm @ 0x7f8d17904d40] Element at 0x8b ending at 0x10400000095 exceeds containing master element ending at 0x9b
Truncating packet of size 9069 to 94

إنّ MP4Box.js / ISOBMFF Box Structure Viewer هو أداة مفيدة لتصحيح أخطاء بث البيانات. يتطلب استخدام هذا التنسيق فهم تنسيق MP4.

أخيرًا، قد تكون بعض الأدوات الاحترافية لتحليل أحداث بث الفيديو، مثل VQAnalyzer وElecard StreamEye وCodecian CodecVisa، جديرة بالاهتمام.