Education·7 min

Autor Shamir

Czym jest plik .TS i dlaczego składają się z nich Twoje strumienie

Jeśli kiedykolwiek zaglądałeś do manifestu strumienia, widziałeś listę plików kończących się na .ts. Jeśli kiedykolwiek zgrywałeś obraz z rejestratora lub karty przechwytującej, być może otrzymałeś właśnie taki plik. A jeśli próbowałeś go otworzyć dwukrotnym kliknięciem, jest spora szansa, że nic się nie wydarzyło.

.ts to skrót od MPEG Transport Stream — jednego z najważniejszych, choć mało znanych formatów wideo. Zaprojektowano go do transmisji satelitarnej i naziemnej w latach 90., a trzy dekady później zaczął przenosić ogromną część internetowego streamingu — z powodu, który po zrozumieniu okazuje się naprawdę elegancki.

Czym właściwie jest Transport Stream

Większość znanych Ci formatów wideo to pliki: kontener z nagłówkiem na początku, indeksem zawartości i określonym końcem. Tak działa MP4. Ten format zaprojektowano z myślą o przechowywaniu na dysku i swobodnym przewijaniu.

Transport stream nie ma takiej struktury. To ciągły przepływ małych pakietów o stałym rozmiarze — każdy ma 188 bajtów — które można przechwycić w dowolnym momencie.

Taka decyzja projektowa wynikała z potrzeb transmisji. Gdy przełączasz telewizor na kanał, nie zaczynasz oglądać od początku żadnego materiału. Dołączasz do sygnału, który już trwa, a obraz musi pojawić się w ciągu sekundy lub dwóch. Format z nagłówkiem na początku i indeksem byłby bezużyteczny: nie ma tu żadnego początku.

Dlatego transport stream nieustannie powtarza wszystkie potrzebne informacje. Co jakiś czas ponownie wysyła tabele opisujące zawarte w nim strumienie i regularnie dołącza kompletną klatkę kluczową, od której można rozpocząć dekodowanie. Dołącz w dowolnym momencie, a odtwarzanie rozpocznie się w ciągu sekundy.

Na tym polega cały pomysł — i wyjaśnia on wszystko pozostałe.

Dlaczego internetowy streaming go przyjął

HLS — metoda streamingu wykorzystywana w większości oglądanych przez Ciebie transmisji na żywo — polega na dzieleniu treści na krótkie fragmenty, zwykle trwające od dwóch do dziesięciu sekund, i umieszczaniu ich na liście w manifeście. Odtwarzacz pobiera fragmenty po kolei, a gdy połączenie słabnie, po cichu zaczyna żądać wersji o niższej jakości zamiast przerywać odtwarzanie.

Aby to działało, każdy fragment musi dać się niezależnie zdekodować. Fragment 47 nie może zależeć od nagłówka, który istnieje wyłącznie we fragmencie 1, ponieważ odtwarzacz może dołączyć do strumienia przy fragmencie 47 albo przełączyć jakość między fragmentami 46 i 47.

Transport stream już dokładnie taki był. Samoopisujący się, możliwy do uruchomienia w dowolnym miejscu i odporny na utratę danych. HLS nie musiało wymyślać formatu fragmentów — odziedziczyło format emisyjny, który rozwiązywał ten sam problem jeszcze zanim internet zyskał wideo.

Kiedy więc zajrzysz do manifestu .m3u8 i zobaczysz:

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

są to sześciusekundowe fragmenty transport stream. Twój strumień nie jest jednym filmem. To tysiące małych plików pobieranych po kolei. (Dlaczego nie możesz po prostu „przekonwertować” strumienia do MP4.)

.TS a .MP4

.ts (MPEG-TS).mp4
StrukturaCiągły przepływ pakietówIndeksowany plik z nagłówkiem
Uruchamianie w dowolnym miejscu?TakNie — wymaga nagłówka
Odporność na utratę danych?Tak, synchronizuje się przy następnym pakiecieUszkodzenie może przerwać odtwarzanie całego pliku
PrzewijanieWolne, brak indeksuSzybkie, indeksowane
NarzutWiększy (nagłówki są nieustannie powtarzane)Mniejszy
PrzeznaczenieTransmisje i streaming na żywoPrzechowywanie i odtwarzanie kompletnych plików

Żaden z nich nie jest lepszy. Rozwiązują przeciwne problemy. .ts jest zoptymalizowany pod kątem docierania; .mp4 — pod kątem spokojnego przechowywania.

Dlatego konwersja między nimi jest standardową procedurą i w zasadzie nie powoduje utraty jakości — znajdujące się w środku wideo i audio mogą być identyczne, a zmienia się tylko opakowanie.

Gdzie można spotkać pliki .TS

  • W strumieniach HLS. Fragmenty, jak wyżej. Nigdy nie widzisz ich pojedynczo — odtwarzacz pobiera je i odrzuca.
  • W źródle w stylu Xtream z output=ts. Ten parametr prosi serwer o surowy transport stream zamiast segmentowanego HLS. (Jak tworzone są takie adresy URL.)
  • W sprzęcie do przechwytywania transmisji. Tunery, karty przechwytujące i rejestratory często zapisują bezpośrednio w formacie .ts, ponieważ właśnie taki sygnał dociera drogą radiową.
  • Na płytach Blu-ray, w formacie .m2ts — blisko spokrewnionym.
  • W kamerach, szczególnie w modelach AVCHD, które również wykorzystują .m2ts.

Gdy plik .TS nie chce się odtworzyć

To częsty problem, zwykle wynikający z jednej z pięciu przyczyn.

1. Brak przypisania pliku do aplikacji. Windows i macOS nie mają wbudowanej obsługi formatu .ts. Dwukrotne kliknięcie nic nie robi albo otwiera niewłaściwą aplikację. Nie oznacza to uszkodzenia — z plikiem wszystko jest w porządku. Otwórz go z poziomu odtwarzacza.

Co gorsza, w niektórych systemach rozszerzenie .ts jest przypisane do edytora kodu, ponieważ jest ono również rozszerzeniem plików źródłowych TypeScript. Otwarcie filmu w edytorze tekstu może być mylące, ale jest nieszkodliwe.

2. Problem tkwi w kodeku, a nie w kontenerze. .ts to opakowanie. W środku może znajdować się MPEG-2 (starsze transmisje), H.264 albo HEVC. Jeśli urządzenie nie potrafi zdekodować danego kodeka, kontener nie ma znaczenia. Typowym objawem jest odtwarzanie dźwięku przy czarnym obrazie. (Czarny ekran, ale dźwięk działa.)

Częstym winowajcą jest tu MPEG-2: to bardzo stary kodek, a niektóre współczesne urządzenia nie zawierają już jego dekodera, ponieważ nikt nie spodziewał się, że nadal będzie potrzebny.

3. Nietypowy dźwięk. W transport streamach z transmisji często występuje dźwięk AC-3, E-AC-3 lub DTS. Obraz się odtwarza, ale nie ma dźwięku. To problem z kodekiem audio lub przekazywaniem dźwięku, a nie z kontenerem. (Jak naprawić brak dźwięku.)

4. Niekompletny plik. Przerwanie zapisu w trakcie tworzenia pliku prowadzi do powstania jego częściowej wersji. Transport stream zachowuje się wtedy łagodnie — zazwyczaj odtwarza się aż do miejsca przerwania — co stanowi jedną z jego rzeczywistych przewag nad MP4, którego niekompletny plik może w ogóle się nie otworzyć.

5. Przewijanie działa wolno i wygląda jak awaria. Brak indeksu oznacza, że odtwarzacz musi skanować duży plik .ts podczas przewijania. Powolne przewijanie dużego pliku transport stream jest normalne, a nie wynikiem usterki.

Jakie programy otwierają takie pliki

W przypadku pliku .ts na komputerze dobrze sprawdzają się odtwarzacze ogólnego przeznaczenia. VLC i mpv to standardowy wybór — oba bezpośrednio otwierają transport streamy, także te problematyczne. To właśnie ich mocna strona.

W przypadku strumieni dostarczanych przez sieć w formacie transport stream — źródła Xtream z output=ts, playlisty HLS zawierającej fragmenty .ts, urządzenia w sieci LAN — jest to podstawowe zadanie odtwarzacza, a Tuneline obsługuje je na urządzeniach macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV i Apple TV.

Dla jasności warto wyznaczyć granicę: Tuneline otwiera playlisty i strumienie, a nie lokalne pliki wideo. Jeśli masz nagranie .ts zapisane na dysku, użyj VLC lub mpv. Jeśli transport stream dociera przez sieć, właśnie do tego służy Tuneline.

Kwestia output=ts a output=m3u8

Jeśli źródło pozwala Ci wybrać opcję — a źródła w stylu Xtream na to pozwalają — warto to zrozumieć, ponieważ zmiana tego ustawienia rozwiązuje wiele problemów z odtwarzaniem.

output=ts zapewnia surowy, ciągły strumień. Oferuje najszerszą zgodność i działa praktycznie wszędzie, ale nie obsługuje adaptacyjnej przepływności. Przy słabym połączeniu zatrzymuje się zamiast obniżać jakość.

output=m3u8 zapewnia segmentowane HLS. Lepiej radzi sobie z niestabilnymi połączeniami, ponieważ odtwarzacz może przełączyć się w trakcie strumienia na niższą jakość, a ponadto zwykle lepiej sprawdza się w sieciach komórkowych.

Praktyczna rada: najpierw wypróbuj m3u8 na telefonach i przy słabym Wi-Fi; użyj ts, gdy coś w ogóle nie chce się odtwarzać. Zmiana parametru to edycja jednego znaku, która rozwiązuje zaskakująco dużą część problemów typu „nie chce się odtworzyć”. (Dlaczego strumienie się zacinają i co naprawdę pomaga.)

Najważniejsze informacje

  • .ts to MPEG Transport Stream, format stworzony z myślą o transmisji: ciągły przepływ pakietów, do którego można dołączyć w dowolnym momencie.
  • HLS przyjęło ten format, ponieważ streaming wymaga niezależnie dekodowalnych fragmentów, a dokładnie tym formatem był już transport stream.
  • Twój strumień na żywo składa się z tysięcy krótkich fragmentów .ts, a nie z jednego pliku.
  • .ts można uruchomić w dowolnym miejscu i jest odporny na uszkodzenia; .mp4 pozwala szybko przewijać i efektywnie przechowuje dane. Różne zadania.
  • Problemy z odtwarzaniem zwykle wynikają z kodeka wewnątrz (MPEG-2, HEVC, AC-3), a nie z kontenera.
  • Powolne przewijanie w dużym pliku .ts jest czymś normalnym — nie ma w nim indeksu.

Odbierasz strumień transportowy przez sieć? Pobierz Tuneline — za darmo, bez dołączonych treści, na każdej posiadanej przez Ciebie platformie.

Udostępnij artykuł

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.

Przeczytaj ten artykuł w innym języku

Tuneline to aplikacja do odtwarzania multimediów. Nie dostarcza, nie hostuje ani nie rozpowszechnia żadnych treści. Własną playlistę przynosisz sam, dokładnie tak jak w VLC.