اشکال زدایی خطاهای پخش رسانه در وب

فرانسوا بوفور
François Beaufort

اشکال زدایی عناصر رسانه ای HTML، مانند <video> و <audio> ، می تواند سخت باشد، زیرا پیاده سازی رمزگشا در مواردی که آنها خطا در نظر می گیرند متفاوت است (رمزگشاهای سخت افزاری معمولاً سخت ترین هستند)، به خصوص زمانی که ممکن است در پخش از ویژگی های باطنی یک کدک خاص استفاده شود. . خوشبختانه برای ما، ابزارهای مختلفی وجود دارد که می‌توانیم از آنها برای کمک استفاده کنیم.

هنگام اشکال زدایی خطاهای پخش رسانه، اولین چیزی که معمولا بررسی می کنیم ویژگی error MediaError در عنصر رسانه 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 DevTools برای مشاهده گزارش‌های رسانه استفاده کنید. اطلاعات زیادی مانند رویدادها، هشدارها و پیام های خطا پیدا خواهید کرد که نکات خوبی در مورد خطاهای پخش رسانه به شما می دهد.

اسکرین شات از پنل رسانه در کروم DevTools
پنل رسانه در کروم DevTools.

همچنین می توانید از برنامه رایگان 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 ممکن است ارزش پول شما را داشته باشند.