Education·7 min

Av Shamir

Vad är en .TS-fil och varför dina strömmar består av sådana

Om du någon gång har tittat inuti ett strömmanifest har du sett en lista över filer som slutar på .ts. Om du någon gång har hämtat video från en inspelningsenhet eller ett inspelningskort kan du ha fått en sådan fil. Och om du någon gång har försökt öppna en genom att dubbelklicka på den är chansen ganska stor att ingenting hände.

.ts står för MPEG Transport Stream och är ett av de viktigaste videoformaten, trots att det sällan uppmärksammas. Det utformades för satellit- och marksändningar på 1990-talet och kom tre decennier senare att bära en enorm andel av internetströmningen – av en anledning som är genuint elegant när man väl förstår den.

Vad en transportström faktiskt är

De flesta videoformat du känner till är filer: en behållare med ett sidhuvud i början, ett index över var allt finns och ett definierat slut. MP4 fungerar så. Formatet är utformat för att ligga på en disk och kunna navigeras med sökning.

En transportström är inte uppbyggd på det sättet. Den är ett kontinuerligt flöde av små paket med fast storlek – 188 byte vardera – som kan tas emot när som helst.

Det designvalet kommer från sändningstekniken. När du ställer in tv:n på en kanal börjar du inte från början av någonting. Du ansluter till en signal som redan pågår, och bilden måste visas inom en eller två sekunder. Ett format med ett sidhuvud i början och ett index vore oanvändbart: det finns ingen början.

Därför upprepar en transportström kontinuerligt allt du behöver. Med jämna mellanrum skickar den tabellerna som beskriver vilka strömmar som ingår, och den innehåller regelbundet en komplett nyckelbild som avkodningen kan börja från. Anslut när som helst och börja spela upp inom en sekund.

Det är hela grundidén, och den förklarar allt annat.

Varför internetströmning började använda formatet

HLS – strömningsmetoden bakom de flesta livesändningar du tittar på – fungerar genom att dela upp innehåll i korta segment, vanligtvis två till tio sekunder långa, och lista dem i ett manifest. Spelaren hämtar segmenten i ordningsföljd och börjar tyst begära versioner med lägre kvalitet om anslutningen blir sämre, i stället för att stanna.

För att det ska fungera måste varje segment kunna avkodas självständigt. Segment 47 kan inte vara beroende av ett sidhuvud som bara finns i segment 1, eftersom spelaren kan ansluta vid 47 eller byta kvalitet mellan 46 och 47.

Transportströmmen var redan exakt det formatet. Självbeskrivande, startbar var som helst och tålig mot dataförlust. HLS behövde inte uppfinna ett segmentformat; det ärvde ett sändningsformat som hade löst samma problem redan innan webben hade video.

Så när du tittar inuti ett .m3u8-manifest och ser:

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

är det sexsekundersbitar av transportström. Din ström är inte en enda video. Den består av tusentals små videor som hämtas i ordning. (Därför kan du inte bara "konvertera" en ström till MP4.)

.TS jämfört med .MP4

.ts (MPEG-TS).mp4
StrukturKontinuerligt paketflödeIndexerad fil med sidhuvud
Starta var som helst?JaNej – sidhuvudet behövs
Klarar dataförlust?Ja, synkroniseras om vid nästa paketSkador kan göra hela filen oläsbar
SökningLångsam, inget indexSnabb, indexerad
ÖverlagringHögre (sidhuvuden upprepas hela tiden)Lägre
Utformad förSändningar och liveströmningLagring och uppspelning av kompletta filer

Inget av dem är bättre. De löser motsatta problem. .ts är optimerat för att anlända; .mp4 är optimerat för att ligga still.

Det är också därför det i princip går enkelt och utan kvalitetsförlust att konvertera mellan dem – video- och ljudinnehållet kan vara identiskt; det är bara behållaren som ändras.

Var du stöter på .TS-filer i praktiken

  • I HLS-strömmar. Segmenten, som ovan. Du ser dem aldrig var för sig; spelaren hämtar och kastar bort dem.
  • Från en Xtream-liknande källa med output=ts. Den parametern ber servern om en rå transportström i stället för segmenterad HLS. (Så byggs de URL:erna.)
  • Från hårdvara för sändningsmottagning. Mottagare, inspelningskort och inspelningsenheter skriver ofta .ts direkt, eftersom det är det som kom in via luften.
  • På Blu-ray-skivor, som .m2ts – en nära släkting.
  • Från videokameror, särskilt AVCHD-modeller, som också använder .m2ts.

När en .TS-fil inte går att spela upp

Vanligt förekommande – och oftast beror det på en av fem saker.

1. Ingen filassociation. Windows och macOS levereras inte med någon hanterare för .ts. Ett dubbelklick gör ingenting eller öppnar något olämpligt. Det betyder inte att filen är skadad; det är inget fel på den. Öppna den inifrån en spelare i stället.

Ännu värre: på vissa system är .ts registrerat för en kodredigerare, eftersom det också är filändelsen för TypeScript-källfiler. Att en video öppnas i en textredigerare är förvirrande men ofarligt.

2. Kodningen inuti, inte behållaren. .ts är en behållare. Innehållet kan vara MPEG-2 (äldre sändningar), H.264 eller HEVC. Om enheten inte kan avkoda kodningen spelar behållaren ingen roll. Det klassiska symtomet är att ljudet spelas upp medan bilden är svart. (Svart bild men ljudet fungerar.)

MPEG-2 är en vanlig orsak här: formatet är uråldrigt, och vissa moderna enheter har inte längre någon avkodare för det eftersom ingen räknade med att det fortfarande skulle behövas.

3. Ovanligt ljud. Sändningars transportströmmar innehåller ofta AC-3-, E-AC-3- eller DTS-ljud. Bilden visas, men ljudet saknas. Det är ett problem med ljudkodningen eller vidarebefordran, inte med behållaren. (Lösningar när ljudet saknas.)

4. En avbruten fil. En överföring som avbryts mitt i skrivningen skapar en ofullständig fil. Transportströmmen hanterar detta relativt väl – den går vanligtvis att spela fram till avbrottet – vilket är en av dess verkliga fördelar jämfört med MP4, där en avbruten fil kanske inte öppnas alls.

5. Sökningen är långsam, vilket kan uppfattas som ett fel. Det finns inget index, så en spelare som söker i en stor .ts måste skanna den. Trög sökning i en stor transportströmsfil är normalt beteende, inte ett fel.

Vilken programvara öppnar en sådan fil

För en .ts-fil på datorn fungerar allmänna mediaspelare bra. VLC och mpv är standardalternativen, och båda öppnar transportströmmar direkt, även besvärliga sådana. Det är genuint det de är bäst på.

För strömmar som levereras som transportström över ett nätverk – en Xtream-källa med output=ts, en HLS-spellista med .ts-segment eller en enhet i ditt lokala nätverk – är det spelarens kärnuppgift, och Tuneline hanterar det på macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV och Apple TV.

För att vara tydlig med gränsdragningen, eftersom den spelar roll: Tuneline öppnar spellistor och strömmar, inte lokala videofiler. Om du har en .ts-fil på hårddisken använder du VLC eller mpv. Om en transportström kommer via nätverket är det precis det Tuneline är byggt för.

Frågan om output=ts kontra output=m3u8

Om källan låter dig välja – vilket Xtream-liknande källor gör – är det värt att förstå skillnaden, eftersom ett byte löser många uppspelningsproblem.

output=ts ger dig den råa, kontinuerliga strömmen. Bredast kompatibilitet och fungerar i princip överallt, men utan adaptiv bithastighet. Vid en svag anslutning stannar den i stället för att sänka kvaliteten.

output=m3u8 ger dig segmenterad HLS. Den fungerar bättre på opålitliga anslutningar eftersom spelaren kan växla ner till lägre kvalitet mitt i strömmen, och är i allmänhet bättre anpassad för mobilnät.

Praktiska råd: prova m3u8 först på telefoner och vid svagt wifi; prova ts när något vägrar spela upp överhuvudtaget. Att byta parametern är en ändring av ett enda tecken och löser förvånansvärt många rapporter om att "det går inte att spela upp". (Varför strömmar hackar och vad som faktiskt löser problemet.)

Sammanfattning

  • .ts är MPEG Transport Stream, byggt för sändningar: ett kontinuerligt paketflöde som du kan ansluta till när som helst.
  • HLS började använda formatet eftersom strömning kräver självständigt avkodningsbara segment, vilket det redan var.
  • Din liveström består av tusentals korta .ts-segment, inte en enda fil.
  • .ts kan starta var som helst och klarar skador; .mp4 erbjuder snabb sökning och effektiv lagring. Olika uppgifter.
  • Uppspelningsfel beror vanligtvis på codec inuti (MPEG-2, HEVC, AC-3), inte på containern.
  • Långsam sökning i en stor .ts är normalt – det finns inget index.

Har du en transportström som kommer över nätverket? Ladda ner Tuneline – gratis, utan medföljande innehåll, på alla plattformar du äger.

Dela artikeln

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.

Läs den här artikeln på ett annat språk

Tuneline är en mediespelarapplikation. Den tillhandahåller, lagrar eller distribuerar inget innehåll. Du tar med din egen spellista, precis som med VLC.