Расширение имени файла | .ts, .tsv, .tsa, .m2t |
---|---|
Тип интернет-СМИ | видео / MP2T [1] |
Разработано | MPEG |
Первый выпуск | 1995 [2] |
Тип формата | Медиа-контейнер |
Контейнер для | Аудио, видео, данные |
Расширен до | M2TS , TOD |
Стандарт | ИСО / МЭК 13818-1, Рекомендация МСЭ-Т H.222.0 [2] |
Транспортный поток MPEG ( MPEG-TS , MTS ) или просто транспортный поток ( TS ) - это стандартный цифровой контейнерный формат для передачи и хранения данных аудио , видео , а также данных протокола программной и системной информации (PSIP). [3] Он используется в системах вещания, таких как DVB , ATSC и IPTV .
Транспортный поток определяет формат контейнера, инкапсулирующий пакетированные элементарные потоки , с функциями исправления ошибок и шаблона синхронизации для поддержания целостности передачи, когда канал связи, переносящий поток, ухудшается .
Транспортные потоки отличаются от одноименного программного потока MPEG несколькими важными способами: программные потоки предназначены для достаточно надежных носителей, таких как диски (например, DVD ), а транспортные потоки предназначены для менее надежной передачи, а именно для наземного или спутникового вещания . Кроме того, транспортный поток может нести несколько программ.
Транспортный поток определен в MPEG-2 Part 1, Systems , официально известном как стандарт ISO / IEC 13818-1 или ITU-T Rec. H.222.0 . [2]
Обзор [ править ]
Транспортный поток инкапсулирует ряд других подпотоков, часто пакетированных элементарных потоков (PES), которые, в свою очередь, обертывают основной поток данных с использованием кодека MPEG или любого количества кодеков, отличных от MPEG (например, AC3 или DTS audio и MJPEG или JPEG 2000). видео), текст и изображения для субтитров, таблицы, идентифицирующие потоки, и даже информацию, относящуюся к вещательной компании, такую как электронная программа передач . Многие потоки часто смешиваются вместе, например, несколько разных телевизионных каналов или несколько ракурсов фильма.
Каждый поток разбивается на (самое большее) 188-байтовые секции и чередуется вместе; из-за крошечного размера пакета потоки могут чередоваться с меньшей задержкой и большей устойчивостью к ошибкам по сравнению с программными потоками и другими распространенными контейнерами, такими как AVI , MOV / MP4 и MKV , которые обычно объединяют каждый кадр в один пакет. Это особенно важно для видеоконференцсвязи, где большие кадры могут вызвать недопустимую задержку звука.
Транспортные потоки, как правило, транслируются с постоянным битрейтом (CBR) и заполняются байтами заполнения, когда данных недостаточно. [а]
Элементы [ править ]
Пакет [ править ]
Сетевой пакет является основной единицей данных в транспортном потоке, и транспортный поток является лишь последовательность пакетов. Каждый пакет начинается с байта синхронизации и заголовка , за которым могут следовать необязательные дополнительные заголовки; остальная часть пакета состоит из полезной нагрузки . Все поля заголовка читаются с прямым порядком байтов . Пакеты имеют длину 188 байт, но среда связи может добавлять дополнительную информацию. [b] Размер пакета 188 байт был первоначально выбран для совместимости с системами с асинхронным режимом передачи (ATM) . [5] [6]
Имя | Количество бит | Битовая маска (с прямым порядком байтов ) | Описание |
---|---|---|---|
4-байтовый заголовок транспортного потока | |||
Байт синхронизации | 8 | 0xff000000 | Битовый шаблон 0x47 (ASCII char 'G') |
Индикатор транспортной ошибки (TEI) | 1 | 0x800000 | Устанавливается, когда демодулятор не может исправить ошибки из данных FEC; указывает, что пакет поврежден. [7] |
Индикатор запуска блока полезной нагрузки (PUSI) | 1 | 0x400000 | Устанавливается, когда пакет PES , PSI или DVB-MIP начинается сразу после заголовка. |
Транспортный приоритет | 1 | 0x200000 | Устанавливается, когда текущий пакет имеет более высокий приоритет, чем другие пакеты с тем же PID. |
PID | 13 | 0x1fff00 | Идентификатор пакета, описывающий данные полезной нагрузки. |
Управление скремблированием транспорта (TSC) | 2 | 0xc0 | '00' = не зашифровано. Только для DVB-CSA и ATSC DES : [8] |
Контроль поля адаптации | 2 | 0x30 | 01 - нет поля адаптации, только полезная нагрузка, 10 - только поле адаптации, без полезной нагрузки, |
Счетчик непрерывности | 4 | 0xf | Порядковый номер пакетов полезной нагрузки (от 0x00 до 0x0F) в каждом потоке (кроме PID 8191) увеличивается для каждого PID, только если установлен флаг полезной нагрузки. |
Необязательные поля | |||
Поле адаптации | Переменная | Присутствует, если поле адаптации равно 10 или 11. Формат см. Ниже. | |
Данные полезной нагрузки | Переменная | Присутствует, если управление полем адаптации равно 01 или 11. Полезной нагрузкой могут быть пакеты PES, информация о программе (ниже) или другие данные. |
Имя | Количество бит | Битовая маска | Описание |
---|---|---|---|
Длина поля адаптации | 8 | Количество байтов в поле адаптации сразу после этого байта | |
Индикатор прерывания | 1 | 0x80 | Устанавливается, если текущий пакет TS находится в состоянии прерывания по отношению либо к счетчику непрерывности, либо к эталонному тактовому сигналу программы. |
Индикатор произвольного доступа | 1 | 0x40 | Установите, когда поток может быть декодирован без ошибок с этого момента |
Индикатор приоритета элементарного потока | 1 | 0x20 | Установите, когда этот поток следует считать "высокоприоритетным". |
Флаг PCR | 1 | 0x10 | Устанавливается, когда присутствует поле ПЦР |
Флаг OPCR | 1 | 0x08 | Устанавливается, когда присутствует поле OPCR |
Флаг точки сращивания | 1 | 0x04 | Устанавливается при наличии поля обратного отсчета сварки |
Флаг передачи приватных данных | 1 | 0x02 | Устанавливается при наличии приватных данных транспорта |
Флаг расширения поля адаптации | 1 | 0x01 | Устанавливается при наличии данных расширения адаптации |
Необязательные поля | |||
ПЦР | 48 | Опорная частота программы, хранящаяся в виде 33-битной базы, 6 битов зарезервировано, 9-битное расширение. Стоимость рассчитывается как основание * 300 + расширение. | |
OPCR | 48 | Исходные часы программы. Помогает при копировании одного TS в другой | |
Обратный отсчет времени сварки | 8 | Указывает, сколько пакетов TS из этого пакета возникает в точке соединения ( дополнение до двух со знаком ; может быть отрицательным) | |
Транспортная длина частных данных | 8 | Длина следующего поля | |
Перенос личных данных | Переменная | Личные данные | |
Расширение адаптации | Переменная | См. ниже | |
Набивка байтов | Переменная | Всегда 0xFF |
Имя | Количество бит | Битовая маска | Описание |
---|---|---|---|
Длина удлинителя адаптации | 8 | 0xff00 | Длина заголовка |
Флаг временного окна (LTW) | 1 | 0x0080 | |
Флаг кусочной ставки | 1 | 0x0040 | |
Флаг бесшовной сварки | 1 | 0x0020 | |
Зарезервированный | 5 | 0x001f | |
Необязательные поля | |||
Установлен флаг LTW (2 байта) | |||
LTW действительный флаг | 1 | 0x8000 | |
LTW смещение | 15 | 0x7fff | Дополнительная информация для ретрансляторов для определения состояния буферов, когда пакеты могут отсутствовать. |
Установлен кусочный флаг (3 байта) | |||
Зарезервированный | 2 | 0xc00000 | |
Кусочная ставка | 22 | 0x3fffff | Скорость потока, измеряемая в 188-байтовых пакетах, для определения времени окончания LTW. |
Установлен флаг бесшовного сращивания (5 байтов) | |||
Тип соединения | 4 | 0xf000000000 | Указывает параметры сращивания H.262. |
Следующий блок доступа DTS | 36 | 0x0efffefffe | PES DTS точки стыка. Разделить на несколько полей, 1 бит маркера (0x1), 15 бит, 1 бит маркера, 15 бит и 1 бит маркера, всего 33 бита данных. |
Идентификатор пакета (PID) [ править ]
Каждая таблица или элементарный поток в транспортном потоке идентифицируется 13-битным идентификатором пакета (PID). Демультиплексор извлекает элементарные потоки из транспортного потока в части путем поиска пакетов , идентифицированных одним и тем же PID. В большинстве приложений мультиплексирование с временным разделением будет использоваться для определения того, как часто конкретный PID появляется в транспортном потоке.
Десятичный | Шестнадцатеричный | Описание |
---|---|---|
0 | 0x0000 | Таблица ассоциации программ (PAT) содержит список каталогов всех таблиц карты программ. |
1 | 0x0001 | Таблица условного доступа (CAT) содержит список каталогов всех Рек. Потоки сообщений управления правами H.222, используемые таблицами сопоставления программ |
2 | 0x0002 | Таблица описания транспортного потока (TSDT) содержит дескрипторы, относящиеся к общему транспортному потоку. |
3 | 0x0003 | Таблица управляющей информации IPMP содержит список каталогов всех управляющих потоков ISO / IEC 14496-13, используемых таблицами карты программ. |
4–15 | 0x0004-0x000F | Зарезервировано для использования в будущем |
16–31 | 0x0010-0x001F | Используется метаданными DVB [10]
|
32-8186 | 0x0020-0x1FFA | Может быть назначен при необходимости для программирования таблиц карты, элементарных потоков и других таблиц данных. |
8187 | 0x1FFB | Используется метаданными DigiCipher 2 / ATSC MGT |
8188–8190 | 0x1FFC-0x1FFE | Может быть назначен при необходимости для программирования таблиц карты, элементарных потоков и других таблиц данных. |
8191 | 0x1FFF | Нулевой пакет (используется для заполнения фиксированной полосы пропускания) |
Программы [ править ]
Транспортный поток имеет понятие программ . Каждая программа описывается таблицей программной карты (PMT). Элементарные потоки, связанные с этой программой, имеют идентификаторы PID, перечисленные в PMT. Другой PID связан с самим PMT. Например, транспортный поток, используемый в цифровом телевидении, может содержать три программы для представления трех телевизионных каналов. Предположим, каждый канал состоит из одного видеопотока, одного или двух аудиопотоков и любых необходимых метаданных. приемникжелающий декодировать один из трех каналов просто должен декодировать полезные данные каждого PID, связанного с его программой. Он может отбросить содержимое всех остальных PID. Транспортный поток с более чем одной программой называется многопрограммным транспортным потоком (MPTS). Однопрограммный транспортный поток называется однопрограммным транспортным потоком (SPTS).
Информация о программе [ править ]
Имеется 4 таблицы информации о программе (PSI): ассоциация программ (PAT), карта программ (PMT), условный доступ (CAT) и сетевая информация (NIT). Спецификация MPEG-2 не определяет формат CAT и NIT.
ПЦР [ править ]
To enable a decoder to present synchronized content, such as audio tracks matching the associated video, at least once each 100 ms, a program clock reference (PCR) is transmitted in the adaptation field of an MPEG-2 transport stream packet. The PID with the PCR for an MPEG-2 program is identified by the pcr_pid value in the associated PMT. The value of the PCR, when properly used, is employed to generate a system_timing_clock in the decoder. The system time clock (STC) decoder, when properly implemented, provides a highly accurate time base that is used to synchronize audio and video elementary streams. Timing in MPEG-2 references this clock. For example, the presentation time stamp (PTS) is intended to be relative to the PCR. The first 33 bits are based on a 90 kHz clock. The last 9 bits are based on a 27 MHz clock. The maximum jitter permitted for the PCR is +/- 500 ns.
Null packets[edit]
Some transmission schemes, such as those in ATSC and DVB, impose strict constant bitrate requirements on the transport stream. In order to ensure that the stream maintains a constant bitrate, a multiplexer may need to insert some additional packets. The PID 0x1FFF is reserved for this purpose. The payload of null packets is all zeroes, and the receiver is expected to ignore its contents.[11]
Use in digital video cameras[edit]
Transport Stream was originally designed for broadcast. Later it was adapted for use with digital video cameras, recorders and players by adding a 4-byte timecode (TC) field to the standard 188-byte packets, resulting in a 192-byte packet.[12][13] This is what is informally called M2TS stream. The Blu-ray Disc Association calls it "BDAV MPEG-2 transport stream".[12] JVC called it TOD[c] when used in HDD-based camcorders like GZ-HD7.[14][15] The timecode allows quick access to any part of the stream either from a media player, or from a non-linear video editing system.[16] It is also used to synchronize video streams from several cameras in a multiple-camera setup.
Use in Blu-ray[edit]
Blu-ray Disc video titles authored with menu support are in the Blu-ray Disc Movie (BDMV) format and contain audio, video, and other streams in a BDAV container, which is based on the MPEG-2 transport stream format.[17][18] Blu-ray Disc video uses these modified MPEG-2 transport streams, compared to DVD's program streams that don't have the extra transport overhead.
There is also the BDAV (Blu-ray Disc Audio/Visual) format, the consumer-oriented alternative to the BDMV format used for movie releases. The BDAV format is used on Blu-ray Disc recordable for audio/video recording.[18][d] Blu-ray Disc employs the MPEG-2 transport stream recording method. This enables transport streams of a BDAV converted digital broadcast to be recorded as they are with minimal alteration of the packets.[13] It also enables simple stream cut style editing of a BDAV converted digital broadcast that is recorded as is and where the data can be edited just by discarding unwanted packets from the stream. Although it is quite natural, a function for high-speed and easy-to-use retrieval is built in.[13][20]
See also[edit]
- MPEG media transport (MMT)
- Real-time Transport Protocol (RTP)
- Unidirectional Lightweight Encapsulation (ULE)
Notes[edit]
- ^ The Blu-ray format does not require CBR.
- ^ Forward error correction is added by ISDB & DVB (16 bytes) and ATSC (20 bytes),[4] while the M2TS format prefixes packets with a 4-byte copyright and timestamp tag.
- ^ Possibly an abbreviation for "Transport stream on disc".
- ^ Filename extension .m2ts is used on Blu-ray Disc video files which contain an incompatible BDAV MPEG-2 transport stream due to the four additional octets added to every packet.[12][19]
References[edit]
- ^ MIME Type Registration of RTP Payload Formats. July 2003. doi:10.17487/RFC3555. RFC 3555.
- ^ a b c ITU-T (October 2014). "Recommendation H.222.0 (10/14)".
- ^ "MPEG-2 Transport Stream". AfterDawn.com. Retrieved 8 June 2010.
- ^ "ATSC transmission". Broadcastengineering.com. 20 June 2005. Retrieved 17 May 2012.
- ^ "MPEG Systems FAQ". Mpeg.chiariglione.org. Retrieved 17 May 2012.
- ^ "ATSC MPEG Transport Stream Monitor". Tek.com. Retrieved 17 May 2012.
- ^ "TSReader". Coolstf.com. 7 April 2008. Archived from the original on 27 March 2010. Retrieved 17 May 2012.
- ^ "Standards – DVB" (PDF). Dvb.org. Archived from the original (PDF) on 13 March 2011. Retrieved 11 September 2012.
- ^ Fairhurst, Gorry. "MPEG-2 Transmission". Archived from the original on 13 August 2017. Retrieved 30 November 2018.
- ^ "5.1.3 Coding of PID and table_id fields". Digital Video Broadcasting (DVB); Specification for Service Information (SI) in DVB systems (PDF). Etsi.org. EN. 300 468 (v1.13.1 ed.). 2012. p. 20. Retrieved 13 October 2016.
- ^ A Guide to MPEG Fundamentals and Protocol Analysis (PDF), Tektronix, p. 37, retrieved 23 April 2020
- ^ a b c BD ROM – Audio Visual Application Format Specifications (PDF), Blu-ray Disc Association, March 2005, p. 15-16, retrieved 26 July 2009
- ^ a b c BD-RE – Audiovisual Application Format Specification for BD-RE 2.1 (PDF), Blu-ray Disc Association, March 2008, archived from the original (PDF) on 30 July 2009
- ^ "Steve Mullen, M2TS primer". Dvinfo.net.
- ^ "Working with JVC Everio MOD & TOD files". Archived from the original on 23 October 2008.
- ^ "How MPEG-TS works". Forum.videohelp.com. Retrieved 17 May 2012.[self-published source?]
- ^ Afterdawn.com Glossary – BD-MV (Blu-ray Movie) and BDAV container Archived 29 July 2009 at WebCite, Retrieved on 26 July 2009
- ^ a b Afterdawn.com Glossary – BDAV container, Retrieved on 26 July 2009
- ^ Videohelp.com What is Blu-ray Disc and HD DVD? Archived 29 July 2009 at WebCite, Retrieved on 26 July 2009
- ^ Blu-ray Disc Association (August 2004) Blu-ray Disc Format, White paper (PDF) Page 22, Retrieved on 28 July 2009
External links[edit]
- ITU-T H.222.0 | ISO/IEC 13818-1 Systems Spec Documents
- Latest free copy of the spec, October 2014
- MPEG-4 Systems FAQ
- TSDuck – Free open-source tool to manipulate MPEG transport streams.