Education·7 min

লিখেছেন Shamir

.TS ফাইল কী, আর আপনার স্ট্রিমগুলো কেন এগুলো দিয়ে তৈরি

আপনি যদি কখনও কোনো স্ট্রিম ম্যানিফেস্টের ভেতর দেখেন, তাহলে .ts দিয়ে শেষ হওয়া ফাইলের একটি তালিকা দেখেছেন। কোনো রেকর্ডার বা ক্যাপচার কার্ড থেকে ভিডিও নিলে হয়তো এমন একটি ফাইল পেয়েছেন। আর কখনও ডাবল-ক্লিক করে এটি খোলার চেষ্টা করলে, সম্ভবত কিছুই ঘটেনি।

.ts-এর অর্থ MPEG Transport Stream, এবং ভিডিও জগতে এটি সবচেয়ে গুরুত্বপূর্ণ অথচ কম আলোচিত ফরম্যাটগুলোর একটি। ১৯৯০-এর দশকে স্যাটেলাইট ও টেরেস্ট্রিয়াল সম্প্রচারের জন্য এটি তৈরি করা হয়েছিল, আর তিন দশক পর ইন্টারনেট স্ট্রিমিংয়ের বিপুল অংশ বহন করতে শুরু করে—এর পেছনের কারণটি বুঝলে বিষয়টি সত্যিই চমৎকার মনে হয়।

ট্রান্সপোর্ট স্ট্রিম আসলে কী

আপনার পরিচিত বেশিরভাগ ভিডিও ফরম্যাটই ফাইল: সামনে একটি হেডার, সবকিছুর অবস্থান নির্দেশকারী একটি ইনডেক্স এবং একটি নির্দিষ্ট সমাপ্তি থাকে। MP4 এভাবেই কাজ করে। এটি ডিস্কে সংরক্ষণ করে বিভিন্ন অংশে দ্রুত যাওয়ার জন্য তৈরি।

ট্রান্সপোর্ট স্ট্রিমের গঠন এমন নয়। এটি ছোট, নির্দিষ্ট আকারের প্যাকেটের ধারাবাহিক প্রবাহ—প্রতিটি ১৮৮ বাইট—যা যেকোনো মুহূর্তে গ্রহণ করা যায়।

এই নকশার সিদ্ধান্তটি সম্প্রচার থেকেই এসেছে। টেলিভিশনে কোনো চ্যানেলে টিউন করলে আপনি কোনো কিছুর শুরু থেকে দেখেন না। ইতিমধ্যে চলতে থাকা একটি সিগন্যালে যুক্ত হন, আর এক-দুই সেকেন্ডের মধ্যে ছবি দেখা দিতে হয়। সামনে হেডার ও ইনডেক্স থাকা কোনো ফরম্যাট এখানে অকেজো: কারণ কোনো শুরুই নেই।

তাই ট্রান্সপোর্ট স্ট্রিম ধারাবাহিকভাবে আপনার প্রয়োজনীয় সবকিছু পুনরাবৃত্তি করে। নির্দিষ্ট বিরতিতে এটি ভেতরে থাকা স্ট্রিমগুলোর বর্ণনাকারী টেবিলগুলো আবার পাঠায় এবং নিয়মিত একটি সম্পূর্ণ কীফ্রেম অন্তর্ভুক্ত করে, যেখান থেকে ডিকোডিং শুরু করা যায়। যেকোনো বিন্দুতে যুক্ত হয়ে এক সেকেন্ডের মধ্যেই প্লেব্যাক শুরু করা যায়।

মূল ধারণাটি এতটুকুই, আর বাকি সবকিছু এর থেকেই বোঝা যায়।

ইন্টারনেট স্ট্রিমিং কেন এটি গ্রহণ করল

HLS—আপনি দেখা অধিকাংশ লাইভ ভিডিওর পেছনে থাকা স্ট্রিমিং পদ্ধতি—কনটেন্টকে সাধারণত দুই থেকে দশ সেকেন্ডের ছোট সেগমেন্টে ভাগ করে ম্যানিফেস্টে তালিকাভুক্ত করে। আপনার প্লেয়ার ধারাবাহিকভাবে সেগমেন্টগুলো আনে, আর সংযোগ দুর্বল হলে আটকে না থেকে নীরবে কম মানের সংস্করণ চাওয়া শুরু করে।

এটি কাজ করতে হলে প্রতিটি সেগমেন্টকে স্বতন্ত্রভাবে ডিকোড করা সম্ভব হতে হবে। সেগমেন্ট ৪৭ এমন কোনো হেডারের ওপর নির্ভর করতে পারে না, যা শুধু সেগমেন্ট ১-এ আছে—কারণ প্লেয়ার ৪৭ নম্বর সেগমেন্টে যুক্ত হতে পারে, অথবা ৪৬ ও ৪৭-এর মধ্যে মান পরিবর্তন করতে পারে।

ট্রান্সপোর্ট স্ট্রিম আগে থেকেই ঠিক এই ফরম্যাট ছিল। নিজেই নিজের বর্ণনা দিতে পারে, যেকোনো স্থান থেকে শুরু করা যায় এবং ডেটা হারালেও টিকে থাকে। HLS-কে নতুন করে কোনো সেগমেন্ট ফরম্যাট তৈরি করতে হয়নি; এটি এমন একটি সম্প্রচার ফরম্যাট উত্তরাধিকারসূত্রে পেয়েছিল, যা ওয়েবে ভিডিও আসারও আগে থেকেই একই সমস্যার সমাধান করে আসছিল।

তাই কোনো .m3u8 ম্যানিফেস্টের ভেতর তাকালে এবং এটি দেখলে:

#EXTINF:6.000,
segment000.ts
#EXTINF:6.000,
segment001.ts

এগুলো ছয় সেকেন্ডের ট্রান্সপোর্ট-স্ট্রিম খণ্ড। আপনার স্ট্রিম একটি ভিডিও নয়; এটি ক্রমানুসারে অনুরোধ করা হাজারো ছোট ভিডিও। (এ কারণেই স্ট্রিমকে সরাসরি MP4-তে "রূপান্তর" করা যায় না।)

.TS বনাম .MP4

.ts (MPEG-TS).mp4
গঠনধারাবাহিক প্যাকেট প্রবাহহেডারসহ ইনডেক্স করা ফাইল
যেকোনো স্থান থেকে শুরু করা যায়?হ্যাঁনা—হেডার প্রয়োজন
ডেটা হারালেও টিকে থাকে?হ্যাঁ, পরের প্যাকেটে পুনরায় সিঙ্ক হয়ক্ষতি হলে পুরো ফাইল নষ্ট হয়ে যেতে পারে
সিক করাধীর, কোনো ইনডেক্স নেইদ্রুত, ইনডেক্স করা
অতিরিক্ত ডেটাবেশি (হেডার বারবার পুনরাবৃত্তি হয়)কম
যার জন্য তৈরিসম্প্রচার ও লাইভ স্ট্রিমিংসম্পূর্ণ ফাইল সংরক্ষণ ও প্লেব্যাক

কোনোটিই ভালো নয়। তারা বিপরীত দুটি সমস্যার সমাধান করে। .ts পৌঁছানোর জন্য অপ্টিমাইজ করা; .mp4 স্থিরভাবে পড়ে থাকার জন্য অপ্টিমাইজ করা।

এ কারণেই তাদের মধ্যে রূপান্তর করা সাধারণত সহজ এবং নীতিগতভাবে ক্ষতিহীন—ভেতরের ভিডিও ও অডিও একই থাকতে পারে, শুধু মোড়কটি বদলে যায়।

বাস্তবে কোথায় .TS ফাইলের দেখা পাবেন

  • HLS স্ট্রিমের ভেতরে। ওপরের মতোই সেগমেন্ট। আপনি এগুলো আলাদা করে কখনও দেখেন না; আপনার প্লেয়ার এগুলো আনে এবং ফেলে দেয়।
  • output=ts-সহ Xtream-ধাঁচের সোর্সে। এই প্যারামিটার সার্ভারকে সেগমেন্ট করা HLS-এর বদলে কাঁচা ট্রান্সপোর্ট স্ট্রিম দিতে বলে। (এই URL কীভাবে তৈরি হয়।)
  • সম্প্রচার ক্যাপচার হার্ডওয়্যার থেকে। টিউনার, ক্যাপচার কার্ড ও রেকর্ডার প্রায়ই সরাসরি .ts লেখে, কারণ বাতাসের মাধ্যমে আসা ডেটাও এটিই।
  • ব্লু-রে ডিস্কে, .m2ts হিসেবে—যা এর ঘনিষ্ঠ আত্মীয়।
  • ক্যামকর্ডার থেকে, বিশেষ করে AVCHD মডেলগুলো, যেগুলোও .m2ts ব্যবহার করে।

যখন .TS ফাইল চলে না

এটি সাধারণ ঘটনা, এবং সাধারণত পাঁচটির একটির কারণে হয়।

১. ফাইল অ্যাসোসিয়েশন নেই। Windows ও macOS-এ .ts খোলার জন্য কোনো ডিফল্ট হ্যান্ডলার থাকে না। ডাবল-ক্লিক করলে কিছুই হয় না, অথবা কোনো অনুপযোগী অ্যাপ খুলে যায়। এটি ফাইল নষ্ট হওয়ার লক্ষণ নয়; ফাইলের কোনো সমস্যা নেই। বরং কোনো প্লেয়ারের ভেতর থেকে এটি খুলুন।

আরও খারাপ বিষয় হলো, কিছু সিস্টেমে .ts কোনো কোড এডিটরের সঙ্গে যুক্ত থাকে, কারণ TypeScript সোর্স ফাইলের এক্সটেনশনও এটি। ভিডিও টেক্সট এডিটরে খুললে বিভ্রান্তিকর লাগতে পারে, তবে ক্ষতিকর নয়।

২. সমস্যা কনটেইনারে নয়, ভেতরের কোডেকে। .ts একটি মোড়ক। এর ভেতরে MPEG-2 (পুরোনো সম্প্রচার), H.264 বা HEVC থাকতে পারে। আপনার ডিভাইস কোডেকটি ডিকোড করতে না পারলে কনটেইনারের ধরন কোনো ব্যাপার নয়। সাধারণ লক্ষণ হলো অডিও চলে, কিন্তু ছবি কালো থাকে। (কালো স্ক্রিন, কিন্তু অডিও কাজ করে।)

এখানে MPEG-2 একটি সাধারণ কারণ: এটি অনেক পুরোনো, আর কেউ এখনও এটি ব্যবহার করবে বলে প্রত্যাশা না থাকায় কিছু আধুনিক ডিভাইসে এর ডিকোডার আর রাখা হয় না।

৩. অস্বাভাবিক অডিও। সম্প্রচারের ট্রান্সপোর্ট স্ট্রিমে প্রায়ই AC-3, E-AC-3 বা DTS অডিও থাকে। ভিডিও চলে, কিন্তু শব্দ হয় না। এটি অডিও কোডেক বা পাসথ্রু-সংক্রান্ত সমস্যা, কনটেইনারের নয়। (শব্দ না হওয়ার সমাধান।)

৪. অসম্পূর্ণ ক্যাপচার। লেখা চলার মাঝপথে ক্যাপচার বাধাগ্রস্ত হলে আংশিক ফাইল তৈরি হয়। ট্রান্সপোর্ট স্ট্রিম ধীরে ধীরে ক্ষতিগ্রস্ত হয়—সাধারণত যেখানে সমস্যা হয়েছে তার আগ পর্যন্ত চলে—এটি MP4-এর তুলনায় এর একটি বাস্তব সুবিধা; MP4-এর অসম্পূর্ণ ফাইল একেবারেই নাও খুলতে পারে।

৫. সিকিং ধীর, তাই সেটিকে নষ্ট মনে হয়। কোনো ইনডেক্স নেই, তাই বড় .ts ফাইলে প্লেয়ারকে স্ক্যান করতে হয়। বড় ট্রান্সপোর্ট স্ট্রিম ফাইলে ধীরগতির সিকিং স্বাভাবিক আচরণ, কোনো ত্রুটি নয়।

কোন সফটওয়্যারে এটি খোলা যায়

ডেস্কটপে থাকা .ts ফাইলের জন্য সাধারণ উদ্দেশ্যের প্লেয়ারগুলো ভালোভাবে কাজ করে। VLC এবং mpv হলো প্রচলিত সমাধান, এবং দুটিই জটিল ফাইলসহ ট্রান্সপোর্ট স্ট্রিম সরাসরি খুলতে পারে। সত্যি বলতে, এ ধরনের কাজেই তারা সবচেয়ে ভালো।

নেটওয়ার্কের মাধ্যমে ট্রান্সপোর্ট স্ট্রিম হিসেবে আসা স্ট্রিমের ক্ষেত্রে—output=ts-সহ একটি Xtream সোর্স, .ts সেগমেন্টের একটি HLS প্লেলিস্ট, অথবা আপনার LAN-এ থাকা কোনো ডিভাইস—এটাই প্লেয়ারের মূল কাজ, আর Tuneline macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV ও Apple TV-তে এটি সামলাতে পারে।

সীমারেখাটি স্পষ্ট করে বলা জরুরি: Tuneline প্লেলিস্ট ও স্ট্রিম খোলে, স্থানীয় ভিডিও ফাইল নয়। আপনার হার্ড ড্রাইভে যদি কোনো .ts ফাইল পড়ে থাকে, তাহলে VLC বা mpv ব্যবহার করুন। আর ট্রান্সপোর্ট স্ট্রিম যদি নেটওয়ার্কের মাধ্যমে আসে, সেটিই Tuneline-এর জন্য তৈরি।

output=ts বনাম output=m3u8: কোনটি বেছে নেবেন

আপনার সোর্সে বেছে নেওয়ার সুযোগ থাকলে—এবং Xtream-ধাঁচের সোর্সে থাকে—বিষয়টি বোঝা উপকারী, কারণ এটি বদলালেই অনেক প্লেব্যাক সমস্যা ঠিক হয়।

output=ts আপনাকে কাঁচা ধারাবাহিক স্ট্রিম দেয়। এর সামঞ্জস্যতা সবচেয়ে বেশি, প্রায় সব জায়গায় কাজ করে, তবে এতে অ্যাডাপটিভ বিটরেট নেই। সংযোগ দুর্বল হলে মান কমার বদলে এটি আটকে যায়।

output=m3u8 আপনাকে সেগমেন্ট করা HLS দেয়। অনির্ভরযোগ্য সংযোগে এটি ভালো কাজ করে, কারণ প্লেয়ার স্ট্রিম চলার মাঝেই কম মানে নেমে যেতে পারে; মোবাইল নেটওয়ার্কের জন্যও এটি সাধারণত বেশি উপযোগী।

ব্যবহারিক পরামর্শ: ফোন ও দুর্বল Wi-Fi-তে আগে m3u8 চেষ্টা করুন; কিছু একেবারেই চলতে না চাইলে ts চেষ্টা করুন। প্যারামিটার বদলাতে মাত্র একটি অক্ষর সম্পাদনা করতে হয়, আর এতে "চলছে না" ধরনের আশ্চর্য রকমের অনেক সমস্যার সমাধান হয়। (স্ট্রিম কেন আটকে যায়, আর আসলে কীভাবে ঠিক করবেন।)

সারকথা

  • .ts হলো MPEG Transport Stream, সম্প্রচারের জন্য তৈরি: একটি ধারাবাহিক প্যাকেট প্রবাহ, যাতে যেকোনো মুহূর্তে যুক্ত হওয়া যায়।
  • স্ট্রিমিংয়ের জন্য স্বতন্ত্রভাবে ডিকোড করা যায় এমন সেগমেন্ট দরকার—ঠিক সেটিই আগে থেকেই ছিল বলে HLS এটিকে গ্রহণ করেছে।
  • আপনার লাইভ স্ট্রিম হলো হাজারো ছোট .ts সেগমেন্ট, একটি ফাইল নয়।
  • .ts যেকোনো স্থান থেকে শুরু করা যায় এবং ক্ষতি সহ্য করতে পারে; .mp4 দ্রুত সিক করে ও দক্ষতার সঙ্গে সংরক্ষণ করে। কাজ আলাদা।
  • প্লেব্যাক ব্যর্থতার কারণ সাধারণত ভেতরের কোডেক (MPEG-2, HEVC, AC-3), কনটেইনার নয়।
  • বড় .ts-এ ধীরে সিক করা স্বাভাবিক—এতে কোনো ইনডেক্স নেই।

নেটওয়ার্কের মাধ্যমে ট্রান্সপোর্ট স্ট্রিম আসছে? ডাউনলোড করুন Tuneline — বিনামূল্যে, কোনো বান্ডেল করা কনটেন্ট নেই, আপনার মালিকানাধীন প্রতিটি প্ল্যাটফর্মে।

আর্টিকেলটি শেয়ার করুন

The fast fix

Get Tuneline free

A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.

Download free

The cross-platform media player behind these answers — new platforms, sync updates, the honest build story. No spam, unsubscribe anytime.

এই আর্টিকেলটি অন্য ভাষায় পড়ুন

Tuneline একটি মিডিয়া প্লেয়ার অ্যাপ্লিকেশন। এটি কোনো কনটেন্ট সরবরাহ, হোস্ট বা বিতরণ করে না। আপনি নিজের প্লেলিস্ট নিয়ে আসেন, ঠিক যেমনটি VLC-তে করেন।