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. همان‌طور که گفتیم، بخش‌ها در آنجا قرار دارند. شما آن‌ها را به‌صورت جداگانه نمی‌بینید؛ پخش‌کننده آن‌ها را دریافت و سپس کنار می‌گذارد.
  • از منبعی به سبک Xtream با output=ts. این پارامتر از سرور می‌خواهد ترنسپورت استریم خام را به‌جای HLS بخش‌بندی‌شده ارسال کند. (این URLها چگونه ساخته می‌شوند.)
  • از سخت‌افزارهای کپچر پخش تلویزیونی. تیونرها، کارت‌های کپچر و ضبط‌کننده‌ها اغلب مستقیماً با .ts می‌نویسند، چون چیزی که از طریق امواج دریافت کرده‌اند همین قالب است.
  • روی دیسک‌های بلوری، به شکل .m2ts — قالبی نزدیک به آن.
  • در دوربین‌های فیلم‌برداری، به‌ویژه مدل‌های AVCHD که از .m2ts نیز استفاده می‌کنند.

وقتی فایل .TS پخش نمی‌شود

این مشکل رایج است و معمولاً یکی از پنج علت را دارد.

۱. فایل با برنامه‌ای مرتبط نیست. ویندوز و macOS به‌صورت پیش‌فرض برنامه‌ای برای باز کردن .ts ندارند. دوبار کلیک کردن هیچ کاری نمی‌کند یا فایل را با برنامه‌ای نامناسب باز می‌کند. این موضوع به معنی خراب بودن فایل نیست؛ مشکلی با خود فایل وجود ندارد. آن را از داخل یک پخش‌کننده باز کنید.

بدتر اینکه در برخی سیستم‌ها .ts به یک ویرایشگر کد اختصاص داده شده است، چون پسوند فایل‌های سورس TypeScript هم محسوب می‌شود. باز شدن ویدیو در ویرایشگر متن گیج‌کننده است، اما خطری ندارد.

۲. مشکل از کدک داخل فایل است، نه محفظه. .ts فقط یک پوسته است. محتوای داخل آن ممکن است MPEG-2 (پخش تلویزیونی قدیمی‌تر)، H.264 یا HEVC باشد. اگر دستگاه شما نتواند کدک را رمزگشایی کند، محفظه اهمیتی ندارد. نشانه کلاسیک این مشکل پخش شدن صدا همراه با تصویر سیاه است. (صفحه سیاه است اما صدا پخش می‌شود.)

MPEG-2 در اینجا مقصر رایجی است: این کدک بسیار قدیمی است و برخی دستگاه‌های جدید دیگر رمزگشای آن را ندارند، چون کسی انتظار نداشته هنوز به آن نیاز باشد.

۳. صدای غیرمعمول. ترنسپورت استریم‌های پخش تلویزیونی اغلب صدای AC-3، E-AC-3 یا DTS دارند. ویدیو پخش می‌شود اما صدا ندارید. این مشکل به کدک صوتی یا عبوردهی صدا مربوط است، نه محفظه. (راهکارهای رفع مشکل صدا.)

۴. کپچر ناقص. اگر فرایند نوشتن در میانه کار قطع شود، فایل ناقصی ایجاد می‌شود. ترنسپورت استریم به‌شکل مناسبی با این وضعیت کنار می‌آید — معمولاً تا محل قطع شدن پخش می‌شود — و این یکی از مزیت‌های واقعی آن نسبت به MP4 است؛ چون فایل ناقص MP4 ممکن است اصلاً باز نشود.

۵. جابه‌جایی بین بخش‌ها کند است و ممکن است آن را به‌اشتباه خرابی تلقی کنید. چون فهرستی وجود ندارد، پخش‌کننده هنگام جلو و عقب بردن در یک فایل .ts بزرگ باید آن را اسکن کند. کند بودن جابه‌جایی در یک فایل ترنسپورت استریم بزرگ طبیعی است و ایراد محسوب نمی‌شود.

کدام نرم‌افزار آن را باز می‌کند؟

برای یک فایل .ts روی رایانه، پخش‌کننده‌های همه‌منظوره عملکرد خوبی دارند. VLC و mpv گزینه‌های استاندارد هستند و هر دو ترنسپورت استریم‌ها، حتی نمونه‌های مشکل‌دار، را مستقیماً باز می‌کنند. این دقیقاً یکی از کارهایی است که در آن بهترین عملکرد را دارند.

برای استریم‌هایی که به‌صورت ترنسپورت استریم از طریق شبکه ارسال می‌شوند — یک منبع Xtream با output=ts، یک فهرست پخش HLS شامل بخش‌های .ts یا دستگاهی در شبکه محلی شما — این کار اصلی یک پخش‌کننده است و Tuneline آن را در macOS، ویندوز، لینوکس، آیفون، آیپد، اندروید، Android TV، Google TV و Apple TV انجام می‌دهد.

برای روشن شدن دقیق این تفاوت، چون اهمیت دارد: Tuneline فهرست‌های پخش و استریم‌ها را باز می‌کند، نه فایل‌های ویدیویی محلی را. اگر یک فایل .ts روی هارد دیسک خود دارید، از VLC یا mpv استفاده کنید. اگر ترنسپورت استریم از طریق شبکه به دستتان می‌رسد، Tuneline برای همین کار ساخته شده است.

پرسش output=ts در برابر output=m3u8

اگر منبع شما امکان انتخاب می‌دهد — و منابع به سبک Xtream چنین امکانی دارند — درک این تفاوت ارزشمند است، چون تغییر آن بسیاری از مشکلات پخش را برطرف می‌کند.

output=ts استریم پیوسته و خام را در اختیارتان می‌گذارد. بیشترین سازگاری را دارد و تقریباً همه‌جا کار می‌کند، اما نرخ بیت تطبیقی ندارد. در اتصال ضعیف، به‌جای افت کیفیت، پخش متوقف و دچار وقفه می‌شود.

output=m3u8 HLS بخش‌بندی‌شده را ارائه می‌کند. در اتصال‌های ناپایدار عملکرد بهتری دارد، چون پخش‌کننده می‌تواند در میانه استریم به کیفیت پایین‌تر برود و معمولاً برای شبکه‌های موبایل نیز مناسب‌تر است.

توصیه عملی: ابتدا روی گوشی‌ها و وای‌فای‌های ضعیف 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.