वेब पर मीडिया चलाने से जुड़ी गड़बड़ियां डीबग करना

François Beaufort
François Beaufort

एचटीएमएल मीडिया एलिमेंट, जैसे कि <video> और <audio> को डीबग करना मुश्किल हो सकता है, क्योंकि डिकोडर अलग-अलग तरीके से गड़बड़ियों को मानता है (आम तौर पर, हार्डवेयर डिकोडर सबसे ज़्यादा सख्त होते हैं). ऐसा खास तौर पर तब होता है, जब वीडियो चलाने के दौरान किसी खास कोडेक की ज़्यादा इसोटेरिक सुविधाओं का इस्तेमाल किया जा रहा हो. अच्छी बात यह है कि ऐसे कई टूल हैं जिनका इस्तेमाल करके हम आपकी मदद कर सकते हैं.

मीडिया प्लेबैक की गड़बड़ियों को डीबग करते समय, आम तौर पर हम सबसे पहले एचटीएमएल मीडिया एलिमेंट पर मौजूद MediaError error एट्रिब्यूट के बारे में पता लगाते हैं. यह एट्रिब्यूट, मीडिया वीडियो चलाने में गड़बड़ी की वजह का एक हाई लेवल संकेत है. प्रॉपर्टी 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 "मीडिया पैनल" का इस्तेमाल करके, मीडिया लॉग देखें. यहां आपको काफ़ी जानकारी मिलेगी, जैसे कि इवेंट, चेतावनियां, और गड़बड़ी के मैसेज. इससे आपको मीडिया चलाने में होने वाली गड़बड़ियों के बारे में कुछ अच्छे संकेत मिलेंगे.

Chrome DevTools में मीडिया पैनल का स्क्रीनशॉट
Chrome 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 बॉक्स स्ट्रक्चर व्यूअर एक मददगार टूल है, जिसकी मदद से बिटस्ट्रीम से जुड़ी समस्याओं को डीबग किया जा सकता है. हालांकि, इस्तेमाल करने के लिए MP4 को समझना ज़रूरी है.

वीडियो स्ट्रीम का विश्लेषण करने वाले कुछ प्रोफ़ेशनल टूल का इस्तेमाल करना फ़ायदेमंद हो सकता है. जैसे, VQAnalyzer, Elecard StreamEye, और Codecian CodecVisa.