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

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 जैसे वीडियो स्ट्रीम के विश्लेषण के लिए इस्तेमाल होने वाले कुछ प्रोफ़ेशनल टूल, आपके लिए काम के हो सकते हैं.