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

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

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

לבסוף, יכול להיות שכדאי לכם להשתמש בכמה כלים מקצועיים לניתוח וידאו בסטרימינג, כמו VQAnalyzer, Elecard StreamEye ו-Codecian CodecVisa.