TS / M2TS
Создан для вещания, где приёмник может подключиться на середине, а у чего-либо нет конца.
MPEG Transport Stream — это формат, в котором передаётся телевидение. Он спроектирован так, чтобы приёмник мог начать декодирование в любой момент и восстановиться после потери данных, что делает его отличным для эфира и неудобным в роли файла: индекса нет, поэтому перемотка — это догадка, а длительность часто указана неверно или отсутствует вовсе.
30 июля 2026 г.
Открывается без посторонней помощи в
Ни одна из систем не открывает файл .ts или .m2ts, хотя обе прекрасно декодируют H.264 или HEVC внутри него, как только что-то другое распакует контейнер. Препятствие снова именно в обёртке.
Факты
| Полное название | MPEG-2 Transport Stream |
|---|---|
| Тип | Контейнер, спроектированный для передачи, а не для хранения |
| Расширения | .ts, .m2ts, .mts, .m2t |
| Опубликован | 1995 год, как часть MPEG-2 |
| Размер пакета | Фиксированный, 188 байт — настолько мал, что повреждённый пакет теряет почти ничего |
| Видео внутри | MPEG-2 в старых трансляциях, H.264 и HEVC в новых |
| Звук внутри | AC-3, E-AC-3, AAC, MP2 |
| Индекс | Отсутствует. Ничто в файле не говорит, где находится тот или иной момент |
| Откуда берётся | Потоки IPTV, записи DVB и ATSC, камеры AVCHD, диски Blu-ray |
Формат без начала
Любой другой контейнер здесь предполагает, что у тебя есть файл целиком и ты можешь сначала прочитать его заголовок. Transport Stream предполагает обратное: что ты подключился к трансляции на середине, она началась ещё до тебя и продолжится после того, как ты уйдёшь. Поэтому он повторяет всё, что нужно декодеру, — раскладку потока, временны́е привязки, параметры — каждую долю секунды, бесконечно.
Пакеты по 188 байт — та же самая идея. Помеха уничтожает пакет; декодер теряет несколько миллисекунд и продолжает работу. Формат, построенный вокруг одного большого индекса, потерял бы весь остаток файла целиком.
Это по-настоящему хорошая инженерия для своей задачи, и это неправильная форма для файла, лежащего на диске. Всё, что делает трансляцию устойчивой, делает запись неудобной.
Почему запись ведёт себя странно
Без индекса плееру, которому нужна 47-я минута, приходится гадать: умножить битрейт на время, прыгнуть примерно туда, поискать следующий декодируемый кадр. На трансляции с постоянным битрейтом это попадает близко к цели. На записи с переменным битрейтом промах может составлять секунды, а на записи, склеенной из прерывавшегося потока, — минуты.
У длительности та же природа. Плееру приходится либо прочитать весь файл, чтобы узнать, насколько он длинный, либо прикинуть по битрейту. Именно поэтому запись иногда показывает неверную длину или не показывает никакой, а полоса прокрутки может оказаться настоящей выдумкой.
Починка — это ремультиплексирование: прочитать поток один раз и записать то же самое видео и звук в MP4 или MKV с настоящим индексом. Ничего не перекодируется заново, качество не трогается, и всё работает со скоростью диска. После этого перемотка становится мгновенной и точной, потому что файл наконец знает, где находятся его собственные кадры.
Что делать с таким файлом
- Воспроизводить напрямую, если хочется просто посмотреть
Плеер с собственным демультиплексором открывает .ts без какой-либо подготовки. Перемотка будет приблизительной — это особенность формата, а не плеера, — но для просмотра от начала до конца этого достаточно.
- Ремультиплексировать в MP4 или MKV, если файл нужно сохранить
Быстро, без потерь, и это навсегда чинит перемотку и длительность. Для всего, что отправляется в библиотеку, а не смотрится один раз, стоит поступить именно так.
- Не трогать потоки IPTV
Когда TS приходит как прямой эфир, а не как файл, ничего из этого не применимо: индексировать нечего, потому что ничего не закончилось. Буферизация там — это вопрос сети.
Вопросы об этом формате
Похожие форматы
Твоя библиотека — наконец в одном месте.
Скачать бесплатно. Без аккаунта, без регистрации, без данных, которые нужно кому-то передавать.