- Android डिवाइसों पर, सदाबहार लाइसेंस की मदद से ऑफ़लाइन वीडियो चलाने और Widevine L1 की सुविधा अब काम करती है.
- परफ़ॉर्मेंस को ऑप्टिमाइज़ करने के लिए, Chrome अब बैकग्राउंड में एमएसई वीडियो चलने पर वीडियो ट्रैक बंद कर देता है.
- वेब डेवलपर, लाइव एमएसई स्ट्रीम पर वीडियो पर आगे-पीछे जाने की सीमा को पसंद के मुताबिक सेट कर सकते हैं.
- Chrome अब MSE के साथ MP4 में FLAC के साथ काम करता है.
- डिवाइस को घुमाने पर, वीडियो फ़ुल स्क्रीन मोड में चला जाएगा.
Android के लिए हमेशा चालू रहने वाले लाइसेंस
एन्क्रिप्टेड मीडिया एक्सटेंशन (ईएमई) में लाइसेंस को हमेशा के लिए सेव करने का मतलब है कि लाइसेंस को डिवाइस पर सेव किया जा सकता है, ताकि ऐप्लिकेशन, लाइसेंस का अनुरोध करने के लिए सर्वर को फिर से अनुरोध भेजे बिना, लाइसेंस को मेमोरी में लोड कर सकें. EME में ऑफ़लाइन प्लेबैक की सुविधा इस तरह काम करती है.
अब तक, ChromeOS ही ऐसा प्लैटफ़ॉर्म था जिस पर हमेशा के लिए लाइसेंस लेने की सुविधा काम करती थी. यह अब सही नहीं है. अब Android डिवाइस पर भी, डिवाइस के ऑफ़लाइन होने पर, EME की मदद से सुरक्षित कॉन्टेंट चलाया जा सकता है.
const config = [{
sessionTypes: ['persistent-license'],
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'SW_SECURE_DECODE' // Widevine L3
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content while being offline when
// license is stored locally on device and loaded later.
})
.catch(error => {
// Persistent licenses are not supported on this platform yet.
});
सैंपल मीडिया PWA देखकर और यह तरीका अपनाकर, हमेशा के लिए लाइसेंस की सुविधा को आज़माया जा सकता है:
- https://biograf-155113.appspot.com/ttt/episode-2/ पर जाएं
- "ऑफ़लाइन उपलब्ध कराएं" पर क्लिक करें और वीडियो के डाउनलोड होने का इंतज़ार करें.
- हवाई जहाज़ मोड चालू करें.
- "चलाएं" बटन पर क्लिक करें और वीडियो का आनंद लें!
Android के लिए Widevine L1
आपको पता होगा कि सभी Android डिवाइसों में, Widevine Security Level 3 (Widevine L3) की सुविधा होनी चाहिए. हालांकि, ऐसे कई डिवाइस भी हैं जो सबसे बेहतर सुरक्षा लेवल: Widevine सिक्योरिटी लेवल 1 के साथ काम करते हैं. इनमें कॉन्टेंट प्रोसेसिंग, क्रिप्टोग्राफ़ी, और कंट्रोल, ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट (टीईई) में किया जाता है.
खुशखबरी! अब Android के लिए Chrome में Widevine L1 का इस्तेमाल किया जा सकता है, ताकि मीडिया को सबसे सुरक्षित तरीके से चलाया जा सके. ध्यान दें कि यह सुविधा पहले से ही ChromeOS पर काम करती थी.
const config = [{
videoCapabilities: [{
contentType: 'video/webm; codecs="vp09.00.10.08"',
robustness: 'HW_SECURE_ALL' // Widevine L1
}]
}];
// Chrome will prompt user if website is allowed to uniquely identify
// user's device to play protected content.
navigator.requestMediaKeySystemAccess('com.widevine.alpha', config)
.then(access => {
// User will be able to watch encrypted content in the most secure way.
})
.catch(error => {
// Widevine L1 is not supported on this platform yet.
});
Shaka Player, एडैप्टिव मीडिया फ़ॉर्मैट (जैसे कि DASH और एचएलएस) के लिए JavaScript लाइब्रेरी है. इसमें Widevine L1 को आज़माने के लिए एक डेमो है:
- https://shaka-player-demo.appspot.com/demo/ पर जाएं और पूछे जाने पर "अनुमति दें" पर क्लिक करें.
- "Angel One (मल्टीकोडेक, कई भाषाओं में उपलब्ध, Widevine)" चुनें.
- "कॉन्फ़िगरेशन" सेक्शन के "वीडियो की परफ़ॉर्मेंस" फ़ील्ड में
HW_SECURE_ALL
डालें. - "लोड करें" बटन पर क्लिक करें और वीडियो का आनंद लें!
बैकग्राउंड में चलने वाले वीडियो ट्रैक को ऑप्टिमाइज़ करना (सिर्फ़ MSE के लिए)
Chrome की टीम हमेशा बैटरी लाइफ़ को बेहतर बनाने के नए तरीके ढूंढती रहती है. Chrome 62 में भी ऐसा ही किया गया है.
अगर वीडियो में मीडिया सोर्स एक्सटेंशन (एमएसई) का इस्तेमाल किया जाता है, तो Chrome अब बैकग्राउंड में वीडियो चलाने पर (जैसे, किसी ऐसे टैब में जिसमें वीडियो नहीं दिख रहा है) वीडियो ट्रैक बंद कर देता है. ज़्यादा जानने के लिए, हमारा पिछला लेख पढ़ें.
लाइव एमएसई स्ट्रीम पर, वीडियो पर आगे-पीछे जाने की सीमा को पसंद के मुताबिक बनाना
जैसा कि आपको पहले से पता होगा, seekable
एट्रिब्यूट में मीडिया रिसॉर्स की वे रेंज शामिल होती हैं जिन पर ब्राउज़र जा सकता है. आम तौर पर, इसमें एक समयसीमा होती है, जो 0 से शुरू होती है और मीडिया रिसॉर्स की अवधि पर खत्म होती है. हालांकि, अगर किसी लाइव स्ट्रीम के लिए कुल समय उपलब्ध नहीं है, तो समयसीमा लगातार बदल सकती है.
अच्छी खबर यह है कि अब मीडिया सोर्स एक्सटेंशन (एमएसई) की मदद से, seekable
रेंज लॉजिक को ज़्यादा असरदार तरीके से पसंद के मुताबिक बनाया जा सकता है. इसके लिए, आपको बस एक ऐसी रेंज देनी होगी या हटानी होगी जिसे मौजूदा बफ़र की गई रेंज के साथ यूनियन किया जा सके. इससे, मीडिया सोर्स की अवधि +Infinity
होने पर, एक ऐसी रेंज बनती है जिस पर दोनों वीडियो में जाया जा सकता है.
नीचे दिए गए कोड में, मीडिया सोर्स को पहले से ही किसी मीडिया एलिमेंट से अटैच किया जा चुका है और इसमें सिर्फ़ उसका शुरुआती सेगमेंट शामिल है:
const mediaSource = new MediaSource();
...
mediaSource.duration = +Infinity;
// Seekable time ranges: { }
// Buffered time ranges: { }
mediaSource.setLiveSeekableRange(1 /* start */, 4 /* end */);
// Seekable time ranges: { [1.000, 4.000) }
// Buffered time ranges: { }
// Let's append a media segment that starts at 3 seconds and ends at 6.
mediaSource.sourceBuffers[0].appendBuffer(someData);
// Seekable time ranges: { [1.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
mediaSource.clearLiveSeekableRange();
// Seekable time ranges: { [0.000, 6.000) }
// Buffered time ranges: { [3.000, 6.000) }
हमने ऊपर कई मामलों के बारे में नहीं बताया है. इसलिए, हमारा सुझाव है कि आप आधिकारिक सैंपल आज़माएं. इससे आपको यह जानने में मदद मिलेगी कि बफ़र की गई और आगे-पीछे स्किप की जा सकने वाली समयसीमा, अलग-अलग एमएसई इवेंट पर कैसे प्रतिक्रिया देती है.
शिप करने का इंटेंट | Chromestatus ट्रैकर | Chromium बग
MSE के लिए MP4 में FLAC
Chrome 56 से, सामान्य मीडिया चलाने के लिए लॉसलेस ऑडियो कोडिंग फ़ॉर्मैट FLAC का इस्तेमाल किया जा सकता है. इसके कुछ समय बाद, ISO-BMFF में FLAC (जिसे MP4 में FLAC भी कहा जाता है) की सुविधा जोड़ी गई. अब Chrome 62 में, मीडिया सोर्स एक्सटेंशन (एमएसई) के लिए, MP4 में FLAC उपलब्ध है.
जानकारी के लिए, Firefox के लोगों ने MP4 एनकैप्सलेशन स्पेसिफ़िकेशन में FLAC के लिए सहायता को डेवलप और लागू किया है. साथ ही, बीबीसी एमएसई के साथ इसका इस्तेमाल करने के लिए एक्सपेरिमेंट कर रहा है. ज़्यादा जानने के लिए, बीबीसी की "रेडियो 3 कॉन्सर्ट की आवाज़ को डिलीवर करना" पोस्ट पढ़ें.
एमएसई के लिए, MP4 में FLAC का इस्तेमाल किया जा सकता है या नहीं, यह पता लगाने का तरीका यहां बताया गया है:
if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
// TODO: Fetch data and feed it to a media source.
}
अगर आपको पूरा उदाहरण देखना है, तो हमारा आधिकारिक सैंपल देखें.
शिप करने का इंटेंट | Chromestatus ट्रैकर | Chromium बग
डिवाइस को घुमाने पर, वीडियो अपने-आप फ़ुल स्क्रीन मोड में चलना
अगर व्यूपोर्ट में वीडियो चलने के दौरान, डिवाइस को लैंडस्केप मोड में घुमाया जाता है, तो वीडियो अपने-आप फ़ुलस्क्रीन मोड में चलने लगेगा. डिवाइस को पोर्ट्रेट मोड में घुमाने पर, वीडियो फिर से विंडो मोड में दिखने लगता है. ज़्यादा जानकारी के लिए, हमारा पिछला लेख देखें.