স্ট্রিমিং আর IPTV
ইন্টারনেটে লাইভ টেলিভিশন এর শব্দভাণ্ডার তিনটা ভিন্ন জায়গা থেকে ধার নিয়েছে — সম্প্রচার, ওয়েব, আর একটা নির্দিষ্ট প্যানেল সফটওয়্যার যা দুর্ঘটনাক্রমে একটা স্ট্যান্ডার্ড হয়ে উঠেছিল। এগুলো সেই শব্দ যা সামনে আসে।
-
HLS
HTTP Live Streaming -
Apple-এর স্ট্রিমিং প্রোটোকল, আর প্রায় সবকিছুই যা ব্যবহার করে। ভিডিওটা একটা টেক্সট প্লেলিস্টে তালিকাভুক্ত ছোট সেগমেন্টে কাটা, আর প্লেয়ারটা সাধারণ HTTP-এর মাধ্যমে ক্রমানুসারে সেগুলো আনে।
HLS জিতেছিল কারণ এর কোনো বিশেষ সার্ভার দরকার নেই: সেগমেন্ট হলো ফাইল, প্লেলিস্টটা একটা ফাইল, আর যেকোনো ওয়েব সার্ভার দুটোই দিতে পারে। এটা Apple প্ল্যাটফর্মে সবখানে আর প্রায় বাকি সবখানে নেটিভভাবে সাপোর্টেড।
এর ডিজাইনের একটা ফলাফল আছে যা মানুষ ক্রমাগত দেখা করে — সেভ করার মতো একক কোনো ভিডিও ফাইল নেই। তুমি যা দেখছ তা শুধু হাজারটা টুকরো আর সেগুলো আনার একটা নির্দেশনা সেট হিসেবে বিদ্যমান।
আরও দেখো: ManifestSegmentAdaptive bitrate
-
Manifest
playlist, .m3u8 -
একটা স্ট্রিম কী নিয়ে গঠিত তা তালিকাভুক্ত করা টেক্সট ফাইল। একটা মাস্টার manifest উপলব্ধ কোয়ালিটি লেভেল তালিকাভুক্ত করে; এগুলোর প্রতিটা আসল সেগমেন্ট তালিকাভুক্ত একটা মিডিয়া manifest-এর দিকে নির্দেশ করে।
একটা খোলো আর এটা কয়েক ডজন লাইন: একটা হেডার, কিছু প্যারামিটার, আর ঠিকানা। তুমি যা দেখো তা সব অন্য কোথাও। একটা লাইভ সম্প্রচারের জন্য প্লেয়ারটা কয়েক সেকেন্ড পরপর এই ফাইলটা আবার আনে, কারণ সম্প্রচার চলতে থাকলে এটা বাড়ে।
Manifest ঠিকানা সাধারণত সাইন করা আর সময়-সীমিত, যে কারণে আজ সকালে কাজ করা একটা লিংক প্রায়ই বিকেলের মধ্যে কিছুরই দিকে নির্দেশ করে না।
-
Segment
chunk -
একটা স্ট্রিমের একটা ছোট টুকরো, সাধারণত দুই থেকে দশ সেকেন্ড, নিজের ফাইল হিসেবে দেওয়া। এক ঘণ্টার ভিডিও এগুলোর কয়েকশো থেকে কয়েক হাজার।
সেগমেন্টিংই প্লেব্যাকের মাঝখানে কোয়ালিটি বদলানো সম্ভব করে তোলে: প্লেয়ারটা সহজভাবে একটা ভিন্ন কোয়ালিটি লেভেল থেকে পরের টুকরোটা অনুরোধ করে, আর বদলটা একটা বাধার বদলে একটা সীমানায় ঘটে।
এটাও যা একটা স্ট্রিম ডাউনলোড করাকে একটা কপির বদলে একটা পুনর্নির্মাণ বানায়। প্রতিটা সেগমেন্ট আনতে হয় আর তারপর একটা যথাযথ ইনডেক্সসহ একটা একক কন্টেইনারে লিখতে হয় — সেই ধাপ যা ফলাফলকে একটা কাজ করা স্ক্রাব বার দেয়।
-
Adaptive bitrate
ABR -
একই কনটেন্ট কয়েকটা কোয়ালিটি লেভেলে দেওয়া আর কানেকশন বদলালে প্লেয়ারকে এগুলোর মধ্যে সরতে দেওয়া। এই কারণেই স্ট্রিম থামার বদলে তীক্ষ্ণতায় কমে।
প্লেয়ারটা মাপে সেগমেন্ট কত দ্রুত আসছে আর সে যতটা টিকিয়ে রাখতে পারবে বলে বিশ্বাস করে ততটা সর্বোচ্চ কোয়ালিটি বাছে। কানেকশন টাইট হলে এটা নিচে নামে, সাধারণত বাফার শুকিয়ে যাওয়ার আগে।
একটা স্ট্রিম দেখা আর একটা ফাইল ডাউনলোড করার মধ্যে এটাই সবচেয়ে বড় একক পার্থক্য। একটা ডাউনলোড সেরা সংস্করণ চায় আর অপেক্ষা করবে; একটা স্ট্রিম থামার চেয়ে নরম দেখতে পছন্দ করবে।
-
Buffering
-
একটা প্লেয়ার তুমি যা দেখছ তার সামনে কয়েক সেকেন্ড ভিডিও ধরে রাখা, তাই একটা সংক্ষিপ্ত নেটওয়ার্ক হেঁচকি একটা বিরতি হয়ে ওঠে না। তুমি শব্দটা দেখলে, বাফারটা শেষ হয়ে গেছে।
একটা বড় বাফার শুরু করতে বেশি সময় নেওয়ার আর একটা চ্যানেল বদলে ধীর প্রতিক্রিয়া দেখানোর খরচে বেশি বাধা সহ্য করে। লাইভ স্ট্রিম ইচ্ছাকৃতভাবে এটা ছোট রাখে, যে কারণে এগুলো অন-ডিমান্ড ভিডিওর চেয়ে বেশি ভঙ্গুর।
একটা IPTV চ্যানেল আটকে গেলে, কারণটা প্রায় সবসময় প্রোভাইডার আর তোমার মাঝে কোথাও — তাদের সার্ভার, রুট, তোমার কানেকশন। একই ডিভাইসে একই অ্যাপ একই বিটরেটের একটা লোকাল ফাইল একটুও আটকে না চালায়, যা দুটোকে আলাদা করে বলার সবচেয়ে দ্রুত উপায়।
আরও দেখো: Adaptive bitrateIPTV
-
IPTV
-
বাতাসে, কেবলে বা স্যাটেলাইটের বদলে ইন্টারনেটে দেওয়া টেলিভিশন। একটা শব্দ হিসেবে এটা একটা ডেলিভারি পদ্ধতি বর্ণনা করে আর কী দেওয়ার অধিকার কার আছে তা নিয়ে কিছুই বলে না।
একটা সাবস্ক্রিপশন আসলে যা নিয়ে গঠিত তা একটা তালিকা — একটা M3U প্লেলিস্ট, বা একটা প্যানেলে একটা অ্যাকাউন্ট — যা চ্যানেলের নাম দেয় আর প্রতিটার একটা ঠিকানা দেয়। প্লেয়ারটা এটাকে একটা চ্যানেল গাইডে পরিণত করে; এটা কিছুই হোস্ট বা সরবরাহ করে না।
যা আইনগতভাবে আর প্রযুক্তিগতভাবেও গুরুত্বপূর্ণ অংশ। IPTV চালায় এমন একটা অ্যাপ কোনো চ্যানেল পাঠায় না, আর একটা নির্দিষ্ট প্রোভাইডারের এটা যা বহন করে তা বহন করার অধিকার আছে কিনা তা সেই প্রোভাইডার নিয়ে একটা প্রশ্ন।
আরও দেখো: M3U playlistXtream CodesEPG
-
M3U playlist
-
চ্যানেলের নাম আর স্ট্রিম ঠিকানার একটা সাধারণ-টেক্সট তালিকা, আর একটা IPTV সাবস্ক্রিপশন দেওয়ার সবচেয়ে সাধারণ উপায়। এতে একদমই কোনো ভিডিও নেই।
প্রতিটা এন্ট্রি চ্যানেলটার নাম দেওয়া একটা লাইন — একটা লোগো, একটা গ্রুপ আর প্রথা অনুযায়ী যুক্ত একটা শনাক্তকারী সহ — আর এর ঠিকানা দেওয়া একটা লাইন। সেই প্রথাগুলোর কোনোটাই কখনো স্ট্যান্ডার্ডাইজড হয়নি, তাই প্রতিটা প্রোভাইডার সেগুলো একটু ভিন্নভাবে লেখে।
প্রোভাইডার তালিকা ফরম্যাটটা যা আশা করেছিল তার অনেক বেশি বেড়েছে: কয়েকশো হাজার চ্যানেল আর কয়েকশো মেগাবাইট টেক্সট এখন সাধারণ, আর যে অ্যাপ পার্স করার আগে একটাকে মেমরিতে পড়ে তা শেষ হওয়ার অনেক আগেই iOS দিয়ে মেরে ফেলা হবে।
আরও দেখো: IPTVXtream Codes
-
Xtream Codes
-
একটা প্যানেল সফটওয়্যার যার API একটা বাস্তবিক স্ট্যান্ডার্ড হয়ে উঠেছে। একটা প্লেলিস্ট ফাইলের বদলে তুমি একটা সার্ভার ঠিকানা, একটা ইউজারনেম আর একটা পাসওয়ার্ড পাও, আর অ্যাপটা চ্যানেল, সিনেমা, সিরিজ আর গাইডের জন্য প্যানেলকে জিজ্ঞেস করে।
এর পেছনের কোম্পানি ২০১৯ সালে বন্ধ হয়ে গিয়েছিল; APIটা এটার চেয়ে বেঁচে গিয়েছিল, কারণ হাজার হাজার প্রোভাইডার ইতিমধ্যে এর ওপর তৈরি করে ফেলেছিল আর তাদের গ্রাহকরা এটা আশা করত। "Xtream compatible" বলে বর্ণনা করা সফটওয়্যার সেই ইন্টারফেসটা বাস্তবায়ন করছে, সেই কোম্পানির পণ্য ব্যবহার করছে না।
এটা একটা সাধারণ প্লেলিস্ট থেকে দুটো কার্যকর উপায়ে আলাদা: ক্যাটালগটা একটা সমতল তালিকার বদলে গঠিত ডেটা হিসেবে আসে, আর প্যানেলটা একটা কানেকশন সীমা প্রয়োগ করে — যে কারণে একই সময়ে একটা ডাউনলোড আর একটা লাইভ চ্যানেল একে অপরকে ফেলে দিতে পারে।
আরও দেখো: IPTVM3U playlistEPG
-
EPG
electronic programme guide -
সময়সূচি: এখন প্রতিটা চ্যানেলে কী চলছে, পরে কী আছে, আর আগে কী ছিল। চ্যানেলগুলো থেকে আলাদাভাবে দেওয়া, সাধারণত একটা XMLTV ফাইল হিসেবে।
গাইডটা প্রোভাইডার প্রতিটাতে বসানো একটা শনাক্তকারী দিয়ে চ্যানেলের সাথে মিলানো হয়। সেই শনাক্তকারীগুলো অনুপস্থিত বা অসামঞ্জস্যপূর্ণ হলে — যা সাধারণ — গাইড ডেটা উপস্থিত আর সঠিক থাকা সত্ত্বেও চ্যানেলগুলো কোনো প্রোগ্রাম তথ্য দেখায় না।
একটা বড় প্রোভাইডারের জন্য একটা সম্পূর্ণ গাইড নিজেই একটা যথেষ্ট ডাউনলোড, হাজার হাজার চ্যানেলের কয়েক দিনের সময়সূচি ধরে।
আরও দেখো: IPTVCatch-upXtream Codes
-
Catch-up
timeshift, archive -
ইতিমধ্যে সম্প্রচারিত কিছু দেখা, একটা চ্যানেলে একটা অতীত সময়ের জন্য প্রোভাইডারের সার্ভারকে জিজ্ঞেস করে। এটা শুধু বিদ্যমান যেখানে প্রোভাইডার রেকর্ড করে; তোমার ডিভাইসে কিছুই সংরক্ষিত না।
এটা যেখানে দেওয়া হয়, একটা অ্যাপ গাইডের একটা অতীত প্রোগ্রামকে সেই চ্যানেলের সেই সময়ের একটা অনুরোধে পরিণত করতে পারে। সাধারণ আর্কাইভ কয়েক দিন চলে।
এটা পুরোপুরি প্রোভাইডারের ক্ষমতা। একটা অ্যাপ এমন একটা চ্যানেলে catch-up যোগ করতে পারে না যার কোনোটা নেই, আর গত সপ্তাহের একটা গাইড এন্ট্রি রেকর্ডিং বিদ্যমান তার প্রমাণ না।
-
DRM
digital rights management -
এনক্রিপশন যা শুধু লাইসেন্সপ্রাপ্ত প্লেব্যাক সফটওয়্যার একটা লাইসেন্স সার্ভার থেকে আনা চাবি ব্যবহার করে খুলতে পারে। Apple প্ল্যাটফর্মে FairPlay, Android আর বেশিরভাগ ওয়েব ব্রাউজারে Widevine।
একটা DRM-সুরক্ষিত স্ট্রিম শুরু থেকে শেষ এনক্রিপ্টেড, আর চাবিটা শুধু সেই সফটওয়্যারে ছাড়া হয় যা প্রমাণ করেছে এর সাথে যুক্ত নিয়মগুলো মেনে চলবে — সেভ করা যাবে না, ক্যাপচার করা যাবে না, কখনো কখনো বাহ্যিক ডিসপ্লেও না।
এটা এড়ানোর মতো একটা সমস্যা না; এটা কাজ করা প্রক্রিয়া। একটা DRM-সুরক্ষিত স্ট্রিম ডাউনলোড করার দাবি করা যেকোনো টুল এটা কী করে বা স্ট্রিমটা কী তার একটা ভুল উপস্থাপনা করছে।