MPEG-TS: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.8
Строка 20:
=== Пакет ===
<!--{| align="right" border="1" width="49 %"
 
|+ Формат пакета транспортного потока
!Название
Строка 52 ⟶ 53 :
 
Пакет, базовая единица транспортного потока.
 
Заголовок пакета:
 
[[Файл:MPEG-TS header.png]]
 
* заголовок начинается с предопределённого байта синхронизации (8 бит) 0x47 (0100 0111).
* Следующие три битовых флага используются, чтобы указать, как должна быть обработана полезная нагрузка.
** 1. Первый флажок указывает на транспортную ошибку. (Transport Error Indicator)
** 2. Второй флажок указывает начало полезной нагрузки (payload_unit_start_indicatorPayload Unit Start Indicator). Когда полезная нагрузка Transport Stream пакета содержит данные по PSI, payload_unit_start_indicator имеет значение 1. Если Transport Stream пакет не содержит данных по PSI, то значение payload_unit_start_indicator будет 0. Ссылка на разделы 2.4.4.1 и 2.4.4.2 . Это также применяется к приватным потокам с stream_type 5 (ссылка на Таблица 2-29).
** 3. Третий флажок указывает транспортный приоритетный бит. (Transport Priority)
* флажки сопровождаются идентификатором пакета (13 бит) — PID. Используется, чтобы однозначно определить поток, которому принадлежит пакет (например, пакеты PES, соответствующие ES), сгенерированный мультиплексором. PID позволяет получателю дифференцировать поток, которому принадлежит каждый полученный пакет. Некоторые значения PID предопределены и используются, чтобы указать различные потоки информации контроля. От пакета с неизвестным PID, который не требуется получателю, просто отказываются. Специфическое значение PID 0x1FFF зарезервировано, чтобы указать, что пакет — нулевой пакет (и должен быть проигнорирован получателем).
* два следующих служебных бита используются процедурами условного доступа к зашифрованной полезной нагрузке некоторых пакетов TS (Transport Scrambling Control):
** 1. 00 — Не зашифрованный пакет.
** 2. 01 — ЗАРЕЗЕРВИРОВАННЫЙ для будущего использования.
Строка 69 ⟶ 74 :
** 3. 11 — поля адаптации (adaptation_field) и далее следует полезная нагрузка (payload_data)
** 4. 00 — ЗАРЕЗЕРВИРОВАННЫЙ ISO/IEC для будущего использования
* Наконец есть Счётчик Непрерывности (Continuity Counter; 4 бита)
 
Остальная часть пакета состоит из полезной информации. Пакеты составляют 188 байт в длине, но среда коммуникации может добавить некоторые байты для устранения ошибок пакета. DVB-ASI использует 204 байта и 208 байтов ATSC как транспортный пакет потока. (DVB t=8 и ATSC t=10 то есть дополнительные байты = 2*t). Передача ATSC добавляет 20 байтов Reed-Solomon передовое устранение ошибок, чтобы создать пакет, который является 208 байтов длиной. 188-байтовый размер пакета был первоначально выбран для совместимости с системами ATM.
Строка 107 ⟶ 112 :
|stuffing bytes||variable||
|}-->
 
Поле адаптации (Adaptation Field)
 
Заголовок AF:
 
[[Файл:MPEG-TS AF header.png]]
 
* DI (Discontinuity indicator) - устанавливается в 1 если на этом пакете нарушилась непрерывность потока по СС или PCR.
* RAI (Random Access Indicatior) - устанавливается в пакете, с которого возможно начать декодирование без ошибок
* Elementary stream priority indicator - устанавливается, для элементарного потока, который должен обрабатываться как "высокоприоритетный"
* PCR present - устанавливается, если AF содержит поле PCR (Program clock reference, 48 бит)
* OPCR present - устанавливается, если AF содержит поле OPCR (Original Program clock reference, 48 бит), используется при копировании TS
* Splicing point flag - устанавливается, если AF содержит поле Splice countdown (8 бит)
* Transport private data flag - устанавливается, если AF содержит private data (поле длины 8 бит + данные)
* Adaptation field extension flag - устанавливается, если в пакете присутствует расширение AF (заголовок + данные)
 
=== PID ===