Chrome 62-এ মিডিয়া আপডেট

ফ্রাঁসোয়া বিউফোর্ট
François Beaufort

অ্যান্ড্রয়েডের জন্য অবিরাম লাইসেন্স

এনক্রিপ্টেড মিডিয়া এক্সটেনশনে (ইএমই) স্থায়ী লাইসেন্স মানে ডিভাইসে লাইসেন্সটি টিকে থাকতে পারে যাতে অ্যাপ্লিকেশনগুলি সার্ভারে অন্য লাইসেন্স অনুরোধ না পাঠিয়ে লাইসেন্সটিকে মেমরিতে লোড করতে পারে। এইভাবে অফলাইন প্লেব্যাক ইএমইতে সমর্থিত হয়।

এখন পর্যন্ত, ক্রমাগত লাইসেন্স সমর্থন করার একমাত্র প্ল্যাটফর্ম ছিল ChromeOS। এটা আর সত্য নয়। ডিভাইসটি অফলাইনে থাকাকালীন EME এর মাধ্যমে সুরক্ষিত সামগ্রী চালানো এখন Android এও সম্ভব।

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.
});

আপনি নমুনা মিডিয়া পিডব্লিউএ পরীক্ষা করে এবং এই পদক্ষেপগুলি অনুসরণ করে নিজেকে ক্রমাগত লাইসেন্স চেষ্টা করতে পারেন:

  1. https://biograf-155113.appspot.com/ttt/episode-2/ এ যান
  2. "অফলাইনে উপলব্ধ করুন" ক্লিক করুন এবং ভিডিওটি ডাউনলোড হওয়ার জন্য অপেক্ষা করুন৷
  3. বিমান মোড চালু করুন।
  4. "প্লে" বোতামে ক্লিক করুন এবং ভিডিও উপভোগ করুন!

Android এর জন্য Widevine L1

আপনি ইতিমধ্যেই জানেন যে, সমস্ত অ্যান্ড্রয়েড ডিভাইস ওয়াইডিভাইন সিকিউরিটি লেভেল 3 (ওয়াইডিভাইন L3) সমর্থন করতে হবে। তবে সেখানে অনেক ডিভাইস রয়েছে যা সর্বোচ্চ নিরাপত্তা স্তরকেও সমর্থন করে: ওয়াইডিভাইন নিরাপত্তা স্তর 1 যেখানে সমস্ত বিষয়বস্তু প্রক্রিয়াকরণ, ক্রিপ্টোগ্রাফি এবং নিয়ন্ত্রণ বিশ্বস্ত এক্সিকিউশন এনভায়রনমেন্ট (TEE) এর মধ্যে সঞ্চালিত হয়।

ভাল খবর! Widevine L1 এখন Android এর জন্য Chrome-এ সমর্থিত যাতে মিডিয়া সবচেয়ে নিরাপদ উপায়ে চালানো যায়। মনে রাখবেন এটি ইতিমধ্যেই Chrome OS-এ সমর্থিত ছিল।

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.
});

শাকা প্লেয়ার , অভিযোজিত মিডিয়া ফরম্যাটের জন্য জাভাস্ক্রিপ্ট লাইব্রেরি (যেমন DASH এবং HLS) আপনার জন্য Widevine L1 চেষ্টা করার জন্য একটি ডেমো রয়েছে:

  1. https://shaka-player-demo.appspot.com/demo/ এ যান এবং অনুরোধ করা হলে "অনুমতি দিন" এ ক্লিক করুন।
  2. "এঞ্জেল ওয়ান (মাল্টিকোডেক, বহুভাষিক, ওয়াইডিভাইন)" বেছে নিন।
  3. "কনফিগারেশন" বিভাগের "ভিডিও দৃঢ়তা" ক্ষেত্রে HW_SECURE_ALL লিখুন।
  4. "লোড" বোতামে ক্লিক করুন এবং ভিডিও উপভোগ করুন!

ব্যাকগ্রাউন্ড ভিডিও ট্র্যাক অপ্টিমাইজেশান (শুধুমাত্র MSE)

Chrome টিম সর্বদা ব্যাটারি লাইফ উন্নত করার নতুন উপায় খুঁজে বের করার চেষ্টা করে এবং Chrome 62 এর ব্যতিক্রম নয়।

ভিডিওটি মিডিয়া সোর্স এক্সটেনশন (MSE) ব্যবহার করলে Chrome এখন ভিডিও ট্র্যাকগুলিকে অক্ষম করে যখন ভিডিওটি ব্যাকগ্রাউন্ডে প্লে হয় (যেমন, একটি অ-দৃশ্যমান ট্যাবে)৷ আরও জানতে আমাদের পূর্ববর্তী নিবন্ধটি দেখুন।

লাইভ MSE স্ট্রিমগুলিতে অনুসন্ধানযোগ্য পরিসর কাস্টমাইজ করুন

আপনি ইতিমধ্যেই জানেন যে, seekable বৈশিষ্ট্যে মিডিয়া সংস্থানগুলির রেঞ্জ রয়েছে যা ব্রাউজারটি অনুসন্ধান করতে পারে। সাধারণত, এটিতে একটি একক সময় পরিসীমা থাকে যা 0 থেকে শুরু হয় এবং মিডিয়া রিসোর্স মেয়াদে শেষ হয়। যদি সময়কাল উপলব্ধ না হয়, যেমন একটি লাইভ স্ট্রিম, সময়সীমা ক্রমাগত পরিবর্তিত হতে পারে।

ভাল খবর হল আপনি এখন মিডিয়া সোর্স এক্সটেনশন (MSE) এর সাথে seekable রেঞ্জ লজিককে আরও কার্যকরভাবে কাস্টমাইজ করতে পারেন একটি একক অনুসন্ধানযোগ্য পরিসর প্রদান করে বা সরিয়ে দিয়ে যা বর্তমান বাফার করা রেঞ্জের সাথে মিলিত। এটি একটি একক অনুসন্ধানযোগ্য পরিসরে পরিণত হয় যা উভয়ের সাথে খাপ খায়, যখন মিডিয়া উত্সের সময়কাল +Infinity হয়।

নীচের কোডে, মিডিয়া উত্সটি ইতিমধ্যেই একটি মিডিয়া উপাদানের সাথে সংযুক্ত করা হয়েছে এবং শুধুমাত্র এর init সেগমেন্ট রয়েছে:

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) }

এমন অনেকগুলি ঘটনা আছে যা আমি উপরে কভার করিনি তাই আমি আপনাকে অফিসিয়াল নমুনাটি চেষ্টা করার পরামর্শ দিচ্ছি যে বিভিন্ন MSE ইভেন্টে বাফার করা এবং অনুসন্ধানযোগ্য সময়সীমা কীভাবে প্রতিক্রিয়া দেখায়।

জাহাজের অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

MSE-এর জন্য MP4-এ FLAC

লসলেস অডিও কোডিং ফরম্যাট FLAC ক্রোম 56 থেকে নিয়মিত মিডিয়া প্লেব্যাকে সমর্থিত হয়েছে। ISO-BMFF সমর্থনে FLAC (ওরফে MP4 তে FLAC) যোগ করা হয়েছে। এবং এখন MP4-এ FLAC মিডিয়া সোর্স এক্সটেনশন (MSE) এর জন্য Chrome 62-এ উপলব্ধ।

তথ্যের জন্য, ফায়ারফক্সের লোকেরাই যারা MP4 এনক্যাপসুলেশন স্পেক-এ FLAC- এর জন্য সমর্থন তৈরি এবং প্রয়োগ করেছে, এবং BBC MSE-এর সাথে এটি ব্যবহার করার জন্য পরীক্ষা-নিরীক্ষা করছে। আরও জানতে আপনি বিবিসির "ডেলিভারিং রেডিও 3 কনসার্ট সাউন্ড" পোস্টটি পড়তে পারেন।

MP4-এ FLAC MSE-এর জন্য সমর্থিত কিনা তা আপনি কীভাবে সনাক্ত করতে পারেন তা এখানে:

if (MediaSource.isTypeSupported('audio/mp4; codecs="flac"')) {
  // TODO: Fetch data and feed it to a media source.
}

আপনি যদি একটি সম্পূর্ণ উদাহরণ দেখতে চান, আমাদের অফিসিয়াল নমুনা দেখুন।

জাহাজের অভিপ্রায় | Chromestatus ট্র্যাকার | ক্রোমিয়াম বাগ

ডিভাইসটি ঘোরানো হলে স্বয়ংক্রিয় ভিডিও ফুলস্ক্রিনে চলে যায়

ভিউপোর্টে ভিডিও চলার সময় আপনি যদি কোনো ডিভাইসকে ল্যান্ডস্কেপে ঘোরান, প্লেব্যাক স্বয়ংক্রিয়ভাবে ফুলস্ক্রিন মোডে চলে যাবে। ডিভাইসটিকে প্রতিকৃতিতে ঘোরানো ভিডিওটিকে উইন্ডো মোডে ফিরিয়ে আনে। আরো বিস্তারিত জানার জন্য আমাদের অতীত নিবন্ধ দেখুন.