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

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. הכלים האלה עשויים להיות שווים לכם.