ניפוי באגים ותיקון שגיאות בהפעלת מדיה באינטרנט

François Beaufort
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 כדי להציג את יומני המדיה. תוכלו למצוא מידע רב, כמו אירועים, אזהרות והודעות שגיאה, שיעזרו לכם לזהות את שגיאות ההפעלה של המדיה.

צילום מסך של חלונית המדיה בכלי הפיתוח ל-Chrome
חלונית המדיה בכלי הפיתוח ל-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.