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

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.