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

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 هو أداة مفيدة لتصحيح مشاكل بث البيانات البتية. ومع ذلك، يجب فهم تنسيق MP4 مسبقًا.

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