יכול להיות שיהיה קשה לנפות באגים ברכיבי מדיה ב-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 כדי להציג את יומני המדיה. תוכלו למצוא בו שפע של מידע כמו אירועים, אזהרות והודעות שגיאה, שייתן לכם רמזים טובים לגבי שגיאות בהפעלת מדיה.
אפשר גם להשתמש באפליקציה החינמית 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.