Education·7 min

Szerző Shamir

Mi az a .TS-fájl, és miért ezekből állnak az adatfolyamok

Ha valaha belenéztél egy stream manifestfájljába, láttál már .ts végződésű fájlokból álló listát. Ha valaha videót mentettél ki egy rögzítőből vagy capture kártyáról, előfordulhat, hogy te is kaptál egy ilyet. És ha megpróbáltad már dupla kattintással megnyitni, jó eséllyel nem történt semmi.

A .ts a MPEG Transport Stream rövidítése, és a videók világának egyik csendben kulcsfontosságú formátuma. Az 1990-es években műholdas és földfelszíni műsorszóráshoz tervezték, három évtizeddel később pedig az internetes streamelés jelentős részét kezdte továbbítani — méghozzá egy igazán elegáns okból, ha megértjük a működését.

Mi is valójában a Transport Stream?

A legtöbb ismert videoformátum fájl: elöl egy fejlécet, az összes elem helyét tartalmazó indexet és egy meghatározott végét tartalmazó konténer. Az MP4 ilyen. Lemezen való tárolásra és a tartalomban való keresésre tervezték.

A transport stream nem így épül fel. Folyamatos, kis méretű, rögzített méretű csomagokból álló adatfolyam — minden csomag 188 bájtos —, amelyhez bármelyik pillanatban lehet csatlakozni.

Ez a tervezési döntés a műsorszórásból ered. Amikor egy televíziót egy csatornára hangolsz, nem valaminek az elején kezdesz. Egy már folyamatban lévő jelhez csatlakozol, és a képnek egy-két másodpercen belül meg kell jelennie. Egy elején fejléccel és indexszel rendelkező formátum használhatatlan lenne: nincs eleje.

Ezért a transport stream folyamatosan ismétel mindent, amire szükség van. Időről időre újra elküldi a benne található streamfolyamokat leíró táblázatokat, és rendszeresen tartalmaz teljes kulcsképkockát is, amelytől el lehet kezdeni a dekódolást. Bármelyik ponthoz csatlakozol, egy másodpercen belül elindíthatod a lejátszást.

Ez az egész lényege, és minden mást is megmagyaráz.

Miért terjedt el az internetes streamelésben?

Az HLS — a legtöbb általad nézett élő videó mögött álló streamelési módszer — úgy működik, hogy a tartalmat rövid, jellemzően két-tíz másodperces szegmensekre darabolja, majd felsorolja őket egy manifestfájlban. A lejátszó sorban tölti le a szegmenseket, és ha gyengül a kapcsolat, akadás helyett csendben alacsonyabb minőségű változatokat kezd kérni.

Ehhez minden szegmensnek önállóan dekódolhatónak kell lennie. A 47. szegmens nem függhet egy olyan fejléctől, amely csak az 1. szegmensben található, mert a lejátszó csatlakozhat a 47. szegmensnél, vagy a 46. és a 47. között minőséget válthat.

A transport stream eleve pontosan ilyen formátum volt. Önállóan leírható, bárhol indítható és adatvesztéssel szemben ellenálló. Az HLS-nek nem kellett új szegmensformátumot kitalálnia; egy olyan műsorszórási formátumot örökölt, amely ugyanazt a problémát oldotta meg már azelőtt, hogy a weben egyáltalán létezett volna videó.

Amikor tehát belenézel egy .m3u8-manifestfájlba, és ezt látod:

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

ezek hat másodperces transport stream-darabok. A streamfolyamod nem egyetlen videó. Több ezer apró videóból áll, amelyeket a lejátszó sorrendben kér le. (Ezért nem lehet egy streamet egyszerűen MP4-re „konvertálni”.)

.TS és .MP4

.ts (MPEG-TS).mp4
FelépítésFolyamatos csomagfolyamFejléccel rendelkező, indexelt fájl
Bárhol elindítható?IgenNem — szükség van a fejlécre
Túléli az adatvesztést?Igen, a következő csomagnál újraszinkronizálA sérülés az egész fájlt használhatatlanná teheti
KeresésLassú, nincs indexGyors, indexelt
TöbbletterhelésNagyobb (a fejlécek folyamatosan ismétlődnek)Kisebb
Erre terveztékMűsorszórásra és élő streamelésreTeljes fájlok tárolására és lejátszására

Egyik sem jobb a másiknál. Ellentétes problémákat oldanak meg. Az .ts arra van optimalizálva, hogy érkezzen; az .mp4 pedig arra, hogy nyugalomban legyen.

Ezért rutinszerű és elvben veszteségmentes a köztük való konvertálás — a bennük lévő video- és hanganyag azonos lehet, és csak a csomagolás változik.

Hol találkozhatsz .TS-fájlokkal?

  • HLS streamfolyamokban. A fent említett szegmensekben. Egyenként sosem látod őket; a lejátszó letölti, majd eldobja őket.
  • Xtream-típusú forrásból, output=ts használatával. Ez a paraméter nyers transport streamet kér a szervertől a szegmentált HLS helyett. (Így épülnek fel ezek az URL-ek.)
  • Műsorszórási vételi hardverből. A tunerek, capture kártyák és rögzítők gyakran közvetlenül .ts formátumba írnak, mivel ez érkezik az éteren keresztül.
  • Blu-ray lemezeken, .m2ts formátumban — közeli rokonságban álló változatként.
  • Videokamerákból, különösen az AVCHD-modellekből, amelyek szintén .m2ts formátumot használnak.

Amikor egy .TS-fájl nem játszható le

Gyakori jelenség, és általában öt ok valamelyikére vezethető vissza.

1. Nincs fájltársítás. Az Windows és az macOS nem tartalmaz .ts-kezelőt. Dupla kattintásra nem történik semmi, vagy valami használhatatlan nyílik meg. Ez nem sérülés; nincs baj a fájllal. Nyisd meg közvetlenül a lejátszóból.

Ennél rosszabb, hogy egyes rendszereken az .ts egy kódszerkesztőhöz van társítva, mivel ez a TypeScript-forrásfájlok kiterjesztése is. A szövegszerkesztőben megnyíló videó zavaró, de ártalmatlan.

2. Nem a konténer, hanem a benne lévő kodek a probléma. Az .ts egy csomagolóformátum. A belsejében lehet MPEG-2 (régebbi műsorszórásoknál), H.264 vagy HEVC. Ha az eszközöd nem tudja dekódolni a kodeket, a konténer lényegtelen. A klasszikus tünet, hogy a hang lejátszódik, de a kép fekete. (Fekete képernyő, de van hang.)

Itt gyakran az MPEG-2 a hibás: ősi formátum, és egyes modern eszközök már nem tartalmaznak hozzá dekódert, mert senki sem számított arra, hogy még szükség lesz rá.

3. Szokatlan hangformátum. A műsorszórási transport streamek gyakran AC-3, E-AC-3 vagy DTS hangsávokat tartalmaznak. A videó lejátszódik, de nincs hang. Ez hangkodek- vagy passthrough-probléma, nem a konténerrel van gond. (Megoldások hanghiány esetére.)

4. Megszakadt felvétel. A félbeszakadt írás miatt hiányos fájl keletkezik. A transport stream fokozatosan romlik — általában a megszakadásig lejátszható —, ami az egyik valódi előnye az MP4-gyel szemben, amelynél előfordulhat, hogy a csonka fájl egyáltalán nem nyílik meg.

5. A keresés lassú, ezért hibának tűnik. Mivel nincs index, a lejátszónak egy nagy .ts-fájlon való tekeréskor pásztáznia kell az adatot. A nagy transport stream-fájlok lassú tekerése normális működés, nem hiba.

Milyen program nyitja meg?

Asztali gépen egy .ts-fájlhoz az általános célú lejátszók jól használhatók. A VLC és az mpv a bevett megoldás, és mindketten közvetlenül megnyitják a transport streameket, még a problémásabbakat is. Valóban ebben a legerősebbek.

A hálózaton transport streamként érkező streamekhez — például egy output=ts-t használó Xtream-forráshoz, egy HLS lejátszási listán lévő .ts-szegmensekhez vagy a helyi hálózatod egyik eszközéhez — ez a lejátszó alapvető feladata, és a Tuneline kezeli ezeket macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV és Apple TV rendszereken.

A pontos határvonal fontos: az Tuneline lejátszási listákat és streameket nyit meg, nem helyi videofájlokat. Ha egy .ts-felvétel a merevlemezeden található, használd a VLC programot vagy az mpv-t. Ha transport stream érkezik a hálózaton keresztül, arra készült az Tuneline.

Az output=ts kontra output=m3u8 kérdés

Ha a forrásod lehetővé teszi a választást — az Xtream-típusú források igen —, érdemes megérteni a különbséget, mert a váltás számos lejátszási problémát megold.

Az output=ts a nyers, folyamatos streamet adja. A legszélesebb körű kompatibilitást biztosítja, gyakorlatilag mindenhol működik, viszont nincs adaptív bitráta. Gyenge kapcsolatnál megakad ahelyett, hogy romlana a minőség.

Az output=m3u8 szegmentált HLS-et ad. Megbízhatatlan kapcsolatokon jobban teljesít, mert a lejátszó streamelés közben alacsonyabb minőségre válthat, és általában mobilhálózatokon is kedvezőbb.

Gyakorlati tanács: telefonon és gyenge Wi-Fi-kapcsolatnál először próbáld az m3u8-t; ha valami egyáltalán nem akar lejátszódni, próbáld az ts-et. A paraméter cseréje egyetlen karakter módosítása, és meglepően sok „nem játszható le” problémát megold. (Miért akadoznak a streamek, és mi oldja meg ténylegesen a problémát?)

A lényeg

  • Az .ts a MPEG Transport Stream, amelyet műsorszórásra terveztek: folyamatos csomagfolyam, amelyhez bármelyik pillanatban csatlakozhatsz.
  • Az HLS azért vette át, mert a streameléshez önállóan dekódolható szegmensekre van szükség, és ez pontosan az volt, amire eredetileg is tervezték.
  • Az élő streamed több ezer rövid .ts-szegmensből áll, nem egyetlen fájlból.
  • Az .ts bárhol elindítható és sérülés esetén is működőképes marad; az .mp4 gyors keresést és hatékony tárolást kínál. Más feladatokra valók.
  • A lejátszási hibákat általában a belső kodek (MPEG-2, HEVC, AC-3) okozza, nem a konténer.
  • Egy nagy méretű .ts esetén a lassú keresés normális — nincs index.

Hálózaton keresztül érkező transport streamet játszanál le? Töltsd le a Tuneline alkalmazást — ingyenes, nincs benne mellékelt tartalom, és minden általad használt platformon elérhető.

Cikk megosztása

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.

Olvassa el ezt a cikket más nyelven

A Tuneline egy médialejátszó alkalmazás. Semmilyen tartalmat nem szolgáltat, nem tárol és nem terjeszt. A saját lejátszási listáját Ön hozza, pontosan úgy, mint a VLC esetében.