Education·7 min

Автор Shamir

Что такое файл .TS и почему ваши трансляции состоят из них

Если вы когда-нибудь заглядывали в манифест трансляции, то видели список файлов, заканчивающихся на .ts. Если вы когда-нибудь выгружали видео с рекордера или платы захвата, у вас мог оказаться такой файл. А если вы пытались открыть его двойным щелчком, то вполне вероятно, что ничего не произошло.

.ts — это MPEG Transport Stream, один из незаметно важнейших форматов в мире видео. Его разработали для спутникового и наземного вещания в 1990-х, а спустя три десятилетия он стал основой огромной доли интернет-трансляций — и тому есть действительно элегантное объяснение.

Что на самом деле представляет собой транспортный поток

Большинство знакомых вам видеоформатов — это файлы: контейнер с заголовком в начале, индексом расположения данных и определённым концом. Именно так устроен MP4. Такой формат рассчитан на хранение на диске и перемещение по файлу.

Транспортный поток устроен иначе. Это непрерывный поток небольших пакетов фиксированного размера — по 188 байт каждый, — к которому можно подключиться в любой момент.

Такое решение появилось благодаря вещанию. Когда вы настраиваете телевизор на канал, вы не начинаете просмотр с самого начала. Вы подключаетесь к уже идущему сигналу, и изображение должно появиться за одну-две секунды. Формат с заголовком в начале и индексом был бы бесполезен: начала просто нет.

Поэтому транспортный поток непрерывно повторяет всё необходимое. Время от времени он заново передаёт таблицы с описанием содержащихся в нём потоков и регулярно включает полный ключевой кадр, с которого можно начать декодирование. Подключитесь в любой момент — и воспроизведение начнётся в течение секунды.

В этом и заключается вся идея — и она объясняет всё остальное.

Почему интернет-трансляции выбрали этот формат

HLS — метод потоковой передачи, лежащий в основе большинства просматриваемых вами прямых трансляций, — разбивает контент на короткие сегменты, обычно от двух до десяти секунд, и перечисляет их в манифесте. Плеер загружает сегменты по порядку, а при ухудшении соединения незаметно начинает запрашивать версии более низкого качества вместо остановки воспроизведения.

Чтобы это работало, каждый сегмент должен декодироваться независимо. Нельзя, чтобы сегмент 47 зависел от заголовка, который есть только в сегменте 1: плеер может подключиться на сегменте 47 или переключить качество между сегментами 46 и 47.

Транспортный поток уже был именно таким форматом: самодостаточным, готовым к воспроизведению с любой точки и устойчивым к потерям данных. 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, поскольку именно такой поток приходит по эфиру.
  • На дисках Blu-ray — в формате .m2ts, близком родственнике.
  • В видеокамерах, особенно моделях AVCHD, которые также используют .m2ts.

Когда файл .TS не воспроизводится

Ситуация распространённая, и обычно причина одна из пяти.

1. Нет привязки файла к приложению. В Windows и macOS нет встроенного обработчика для .ts. Двойной щелчок ничего не делает или открывает неподходящее приложение. Это не повреждение: с файлом всё в порядке. Откройте его из самого плеера.

Хуже того, в некоторых системах .ts привязан к редактору кода, поскольку это также расширение исходных файлов TypeScript. Видео, открывшееся в текстовом редакторе, может озадачить, но вреда не причинит.

2. Проблема в кодеке внутри контейнера, а не в самом контейнере. .ts — это оболочка. Внутри может быть MPEG-2 (старое вещание), H.264 или HEVC. Если устройство не умеет декодировать этот кодек, контейнер не имеет значения. Классический симптом — звук воспроизводится, а изображение остаётся чёрным. (Чёрный экран, но звук есть.)

MPEG-2 часто оказывается причиной: это очень старый кодек, и некоторые современные устройства больше не включают его декодер, поскольку никто не ожидал, что он всё ещё понадобится.

3. Необычный аудиокодек. В вещательных транспортных потоках часто используется звук AC-3, E-AC-3 или DTS. Видео воспроизводится, а звука нет. Это проблема аудиокодека или сквозной передачи звука, а не контейнера. (Как исправить отсутствие звука.)

4. Обрезанный файл. Если процесс записи прервался во время сохранения, получится неполный файл. Транспортный поток корректно деградирует — обычно он воспроизводится до места повреждения. Это одно из его реальных преимуществ перед MP4, который после обрыва может вообще не открыться.

5. Перемотка работает медленно, и это выглядит как неисправность. Индекса нет, поэтому плееру приходится сканировать большой .ts при перемотке. Медленная перемотка в большом файле транспортного потока — нормальное поведение, а не ошибка.

Какие программы его открывают

Для файла .ts на компьютере подойдут универсальные плееры. VLC и mpv — стандартный выбор: оба напрямую открывают транспортные потоки, в том числе проблемные. Именно с такими файлами они справляются особенно хорошо.

Для трансляций, передаваемых по сети в виде транспортного потока, — источника Xtream с output=ts, плейлиста HLS с сегментами .ts, устройства в вашей локальной сети — это основная задача плеера, и Tuneline справляется с ней на macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV и Apple TV.

Чтобы точно обозначить границу, поскольку это важно: Tuneline открывает плейлисты и трансляции, а не локальные видеофайлы. Если у вас на жёстком диске лежит запись .ts, используйте VLC или mpv. Если транспортный поток поступает по сети, для этого и предназначен Tuneline.

Вопрос о output=ts и output=m3u8

Если источник позволяет выбирать — а источники в стиле Xtream это позволяют, — стоит разобраться в различиях: переключение часто устраняет проблемы с воспроизведением.

output=ts передаёт необработанный непрерывный поток. Совместимость максимально широкая, он работает практически везде, но адаптивного битрейта нет. При слабом соединении трансляция будет зависать, а не переходить на более низкое качество.

output=m3u8 передаёт сегментированный HLS. При нестабильном соединении он работает лучше, поскольку плеер может перейти на более низкое качество прямо во время трансляции; кроме того, такой вариант обычно удобнее в мобильных сетях.

Практический совет: сначала попробуйте m3u8 на телефонах и при нестабильном Wi-Fi; попробуйте 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.