Education·7 min

Por Shamir

O que é um arquivo .TS e por que seus streams são feitos deles

Se você já olhou dentro do manifesto de um stream, viu uma lista de arquivos terminados em .ts. Se já extraiu vídeo de um gravador ou de uma placa de captura, talvez tenha acabado com um desses arquivos. E, se já tentou abri-lo clicando duas vezes, é bem possível que nada tenha acontecido.

.ts significa MPEG Transport Stream e é um dos formatos mais discretamente importantes do vídeo. Ele foi criado para transmissões via satélite e terrestres nos anos 1990 e, três décadas depois, acabou transportando uma enorme parcela do streaming pela internet — por um motivo realmente elegante quando você entende como funciona.

O que é, de fato, um Transport Stream

A maioria dos formatos de vídeo que você conhece são arquivos: um contêiner com um cabeçalho no início, um índice indicando onde está cada coisa e um fim definido. O MP4 funciona assim. Ele foi projetado para ficar armazenado em um disco e permitir navegação pelo conteúdo.

Um transport stream não tem esse formato. Ele é um fluxo contínuo de pequenos pacotes de tamanho fixo — cada um com 188 bytes — que pode ser acessado em qualquer momento.

Essa decisão de design veio das transmissões. Quando você sintoniza uma televisão em um canal, não começa pelo início de nada. Você entra em um sinal que já está em andamento, e a imagem precisa aparecer em um ou dois segundos. Um formato com um cabeçalho no início e um índice seria inútil: não existe um início.

Por isso, um transport stream repete continuamente tudo de que você precisa. De tempos em tempos, ele reenvia as tabelas que descrevem quais streams estão dentro dele e inclui regularmente um keyframe completo a partir do qual a decodificação pode começar. Entre em qualquer ponto e você poderá começar a reproduzir em um segundo.

Essa é a ideia central — e ela explica todo o resto.

Por que o streaming pela internet o adotou

HLS — o método de streaming por trás da maior parte dos vídeos ao vivo que você assiste — funciona dividindo o conteúdo em segmentos curtos, normalmente de dois a dez segundos, e listando-os em um manifesto. Seu player busca os segmentos em sequência e, se a conexão ficar mais fraca, começa discretamente a solicitar versões de menor qualidade em vez de travar.

Para isso funcionar, cada segmento precisa ser decodificável de forma independente. O segmento 47 não pode depender de um cabeçalho que só existe no segmento 1, porque o player pode entrar no 47 ou mudar de qualidade entre o 46 e o 47.

O transport stream já tinha exatamente esse formato. Ele é autodescritivo, pode começar em qualquer ponto e é resistente a perdas. O HLS não precisou inventar um formato de segmentos; herdou um formato de transmissão que resolvia o mesmo problema desde antes de a web ter vídeo.

Então, quando você olha dentro de um manifesto .m3u8 e vê:

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

esses são blocos de transport stream de seis segundos. Seu stream não é um único vídeo. São milhares de pequenos vídeos, solicitados em sequência. (Por que isso significa que você não pode simplesmente "converter" um stream para MP4.)

.TS vs. .MP4

.ts (MPEG-TS).mp4
EstruturaFluxo contínuo de pacotesArquivo indexado com cabeçalho
Começa em qualquer ponto?SimNão — precisa do cabeçalho
Resiste a perdas?Sim, sincroniza novamente no pacote seguinteUm dano pode inutilizar o arquivo inteiro
NavegaçãoLenta, sem índiceRápida, indexada
SobrecargaMaior (os cabeçalhos se repetem o tempo todo)Menor
Projetado paraTransmissões e streaming ao vivoArmazenamento e reprodução de arquivos completos

Nenhum é melhor. Eles resolvem problemas opostos. O .ts é otimizado para chegar; o .mp4 é otimizado para ficar armazenado.

É por isso também que converter entre eles é algo rotineiro e, em princípio, sem perda — o vídeo e o áudio internos podem ser idênticos; apenas o contêiner muda.

Onde você encontra arquivos .TS na prática

  • Dentro de streams HLS. São os segmentos mencionados acima. Você nunca os vê individualmente; seu player os busca e descarta.
  • Em uma fonte no estilo Xtream com output=ts. Esse parâmetro solicita ao servidor um transport stream bruto, em vez de HLS segmentado. (Como esses URLs são criados.)
  • Em equipamentos de captura de transmissão. Sintonizadores, placas de captura e gravadores frequentemente gravam diretamente em .ts, porque esse é o formato que chega pelo ar.
  • Em discos Blu-ray, como .m2ts — um formato muito próximo.
  • Em filmadoras, especialmente nos modelos AVCHD, que também usam .m2ts.

Quando um arquivo .TS não reproduz

É algo comum — e geralmente se deve a uma destas cinco coisas.

1. Nenhuma associação de arquivo. Windows e macOS não vêm com um aplicativo para abrir .ts. Clicar duas vezes não faz nada ou abre algo inadequado. Isso não significa que o arquivo esteja corrompido; não há nada de errado com ele. Abra-o de dentro de um player.

Pior: em alguns sistemas, .ts fica associado a um editor de código, porque também é a extensão de arquivos-fonte do TypeScript. Abrir um vídeo em um editor de texto é confuso, mas inofensivo.

2. O codec interno, não o contêiner. .ts é um contêiner. O conteúdo pode ser MPEG-2 (transmissões mais antigas), H.264 ou HEVC. Se o seu dispositivo não consegue decodificar o codec, o contêiner é irrelevante. O sintoma clássico é o áudio reproduzir com a imagem preta. (Tela preta, mas o áudio funciona.)

O MPEG-2 é um culpado comum nesse caso: é antigo e alguns dispositivos modernos já não incluem um decodificador para ele, porque ninguém esperava que ainda fosse necessário.

3. Áudio incomum. Transport streams de transmissão frequentemente carregam áudio AC-3, E-AC-3 ou DTS. O vídeo reproduz, mas não há som. Isso é um problema de codec de áudio ou de passthrough, não do contêiner. (Soluções para quando não há som.)

4. Uma captura truncada. Uma gravação interrompida durante a gravação gera um arquivo parcial. O transport stream lida bem com isso — normalmente reproduz até o ponto da interrupção —, uma de suas vantagens reais sobre o MP4, no qual um arquivo truncado pode nem abrir.

5. A navegação é lenta e parece que o arquivo está com problema. Como não há índice, um player que percorre um .ts grande precisa fazer uma varredura. A navegação lenta em um arquivo transport stream grande é um comportamento normal, não um defeito.

Quais programas abrem esse formato

Para um arquivo .ts no computador, players de uso geral lidam bem com ele. VLC e mpv são as opções padrão e abrem transport streams diretamente, inclusive os mais problemáticos. É justamente nisso que eles são melhores.

Para streams entregues pela rede como transport stream — uma fonte Xtream com output=ts, uma playlist HLS de segmentos .ts, um dispositivo na sua rede local — essa é a função principal de um player, e Tuneline faz isso em macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV e Apple TV.

Para deixar clara a diferença, pois isso importa: Tuneline abre playlists e streams, não arquivos de vídeo locais. Se você tem uma gravação .ts no disco rígido, use VLC ou mpv. Se você tem um transport stream chegando pela rede, é para isso que o Tuneline foi criado.

A questão output=ts vs. output=m3u8

Se a sua fonte permite escolher — e as fontes no estilo Xtream permitem —, vale a pena entender isso, porque trocar essa opção resolve muitos problemas de reprodução.

output=ts fornece o stream contínuo bruto. Tem a maior compatibilidade, funciona praticamente em qualquer lugar, mas não oferece bitrate adaptativo. Em uma conexão fraca, ele trava em vez de reduzir a qualidade.

output=m3u8 fornece HLS segmentado. Funciona melhor em conexões instáveis, porque o player pode mudar para uma qualidade menor durante o stream, e costuma ser mais adequado para redes móveis.

Dica prática: experimente m3u8 primeiro em celulares e redes Wi-Fi instáveis; use ts quando algo se recusar a reproduzir de qualquer maneira. Trocar o parâmetro exige editar apenas um caractere e resolve uma parcela surpreendente dos relatos de "não reproduz". (Por que os streams travam e o que realmente resolve.)

O resultado final

  • .ts é o MPEG Transport Stream, criado para transmissões: um fluxo contínuo de pacotes ao qual você pode se conectar em qualquer momento.
  • HLS o adotou porque o streaming precisa de segmentos decodificáveis de forma independente, exatamente o que ele já era.
  • Seu stream ao vivo é composto por milhares de segmentos .ts curtos, não por um único arquivo.
  • .ts começa em qualquer ponto e resiste a danos; .mp4 permite navegação rápida e armazena dados com eficiência. Funções diferentes.
  • As falhas de reprodução geralmente são causadas pelo codec interno (MPEG-2, HEVC, AC-3), não pelo contêiner.
  • É normal a busca ser lenta em um .ts grande — não há índice.

Recebeu um fluxo de transporte pela rede? Baixe o Tuneline — grátis, sem conteúdo incluído e em todas as plataformas que você usa.

Compartilhar o artigo

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.

Leia este artigo em outro idioma

O Tuneline é um aplicativo reprodutor de mídia. Ele não fornece, hospeda nem distribui nenhum conteúdo. Você traz a sua própria lista de reprodução, exatamente como faria com o VLC.