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

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 Box Organization Viewer एक उपयोगी टूल है. हालांकि, इसका इस्तेमाल करने के लिए MP4 को समझना ज़रूरी है.

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