Extensión de nombre de archivo | .ts, .tsv, .tsa, .m2t [1] |
---|---|
Tipo de medio de Internet | vídeo/MP2T [2] |
Identificador de tipo uniforme (UTI) | flujo de transporte público mpeg-2 [3] |
Desarrollado por | MPEG |
Lanzamiento inicial | 10 de julio de 1995 ( 10 de julio de 1995 ) | [4]
Último lanzamiento | ISO/IEC 13818-1:2022 Septiembre de 2022 ( 2022-09 ) |
Tipo de formato | Formato de contenedor |
Contenedor para | Audio, video, datos |
Extendido a | M2TS , día del juicio final |
Estándar | ISO/IEC 13818-1, Recomendación UIT-T H.222.0 [4] |
¿ Formato abierto ? | Sí |
¿ Formato libre ? | Sí [5] |
El flujo de transporte MPEG ( MPEG -TS , MTS ) o simplemente flujo de transporte ( TS ) es un formato contenedor digital estándar para la transmisión y almacenamiento de datos de audio , video y Protocolo de información del sistema y programa (PSIP). [6] Se utiliza en sistemas de transmisión como DVB , ATSC e IPTV .
El flujo de transporte especifica un formato contenedor que encapsula flujos elementales empaquetados , con características de corrección de errores y patrones de sincronización para mantener la integridad de la transmisión cuando el canal de comunicación que transporta el flujo se degrada .
Los flujos de transporte difieren del flujo de programa MPEG, que tiene el mismo nombre , en varios aspectos importantes: los flujos de programa están diseñados para medios razonablemente confiables, como discos (como DVD ), mientras que los flujos de transporte están diseñados para transmisiones menos confiables , es decir, transmisiones terrestres o satelitales . Además, un flujo de transporte puede transportar múltiples programas.
El flujo de transporte se especifica en MPEG-2 Parte 1, Sistemas , formalmente conocido como estándar ISO/IEC 13818-1 o ITU-T Rec. H.222.0 . [4]
Un flujo de transporte encapsula una serie de otros subflujos, a menudo flujos elementales empaquetados (PES) que a su vez envuelven el flujo de datos principal utilizando el códec MPEG o cualquier número de códecs que no sean MPEG (como audio AC3 o DTS y video MJPEG o JPEG 2000 ), texto e imágenes para subtítulos, tablas que identifican los flujos e incluso información específica de la emisora, como una guía electrónica de programas . A menudo se mezclan muchos flujos, como varios canales de televisión diferentes o múltiples ángulos de una película.
Cada secuencia se corta en secciones de (como máximo) 188 bytes y se entrelazan entre sí. Debido al pequeño tamaño de los paquetes, las secuencias se pueden entrelazar con menor latencia y mayor resistencia a errores en comparación con las secuencias de programas y otros contenedores comunes como AVI , MOV / MP4 y MKV , que generalmente envuelven cada fotograma en un solo paquete. Esto es particularmente importante para las videoconferencias, donde los fotogramas grandes pueden introducir un retraso de audio inaceptable.
Los flujos de transporte tienden a transmitirse como una tasa de bits constante (CBR) y se llenan con bytes de relleno cuando no existen suficientes datos. [a]
Un paquete de red es la unidad básica de datos en un flujo de transporte, y un flujo de transporte es simplemente una secuencia de paquetes. Cada paquete comienza con un byte de sincronización y un encabezado , que puede ir seguido de encabezados adicionales opcionales; el resto del paquete consta de carga útil . Todos los campos de encabezado se leen como big-endian . Los paquetes tienen una longitud de 188 bytes, pero el medio de comunicación puede agregar información adicional. [b] El tamaño de paquete de 188 bytes se eligió originalmente por compatibilidad con los sistemas de modo de transferencia asíncrono (ATM) . [8] [9]
Nombre | Número de bits | Máscara de bits ( big-endian ) | Descripción |
---|---|---|---|
Encabezado de flujo de transporte de 4 bytes | |||
Byte de sincronización | 8 | 0xff000000 | Patrón de bits de 0x47 (carácter ASCII 'G') |
Indicador de error de transporte (TEI) | 1 | 0x800000 | Se establece cuando un demodulador no puede corregir errores de los datos FEC, lo que indica que el paquete está dañado. [10] |
Indicador de arranque de la unidad de carga útil (PUSI) | 1 | 0x400000 | Se establece cuando este paquete contiene el primer byte de una nueva unidad de carga útil. Para los datos del paquete PSI , el primer byte de la carga útil indicará dónde comienza esta nueva unidad de carga útil. Para los datos del paquete PES , el nuevo paquete PES debe comenzar al inicio de la carga útil. [11] Este campo permite que un receptor que comenzó a leer a mitad de transmisión sepa cuándo puede comenzar a extraer datos. |
Prioridad de transporte | 1 | 0x200000 | Se establece cuando el paquete actual tiene una prioridad más alta que otros paquetes con el mismo PID. |
Identificador PID | 13 | 0x1fff00 | Identificador de paquete, que describe los datos de la carga útil. |
Control de codificación del transporte (TSC) | 2 | 0xc0 | '00' = No codificado. Solo para DVB-CSA y ATSC DES : [12] |
Control del campo de adaptación | 2 | 0x30 | 01 – sin campo de adaptación, solo carga útil, 10 – solo campo de adaptación, sin carga útil, |
Contador de continuidad | 4 | 0xf | Número de secuencia de paquetes de carga útil (0x00 a 0x0F) dentro de cada flujo (excepto PID 8191). Se incrementa por PID, solo cuando se establece un indicador de carga útil. |
Campos opcionales | |||
Campo de adaptación | variable | Presente si el control del campo de adaptación es 10 u 11. Consulte a continuación el formato. | |
Datos de carga útil | variable | Presente si el control del campo de adaptación es 01 o 11. La carga útil puede ser paquetes PES, información específica del programa (a continuación) u otros datos. |
Nombre | Número de bits | Máscara de bits | Descripción |
---|---|---|---|
Longitud del campo de adaptación | 8 | Número de bytes en el campo de adaptación inmediatamente después de este byte | |
Indicador de discontinuidad | 1 | 0x80 | Establezca si el paquete TS actual está en un estado de discontinuidad con respecto al contador de continuidad o la referencia del reloj del programa |
Indicador de acceso aleatorio | 1 | 0x40 | Establezca cuándo se puede decodificar la transmisión sin errores a partir de este punto |
Indicador de prioridad de flujo elemental | 1 | 0x20 | Establezca cuándo se debe considerar esta transmisión como de "alta prioridad" |
Bandera PCR | 1 | 0x10 | Establecer cuando el campo PCR está presente |
Bandera OPCR | 1 | 0x08 | Establecer cuando el campo OPCR está presente |
Bandera de punto de empalme | 1 | 0x04 | Establecer cuándo está presente el campo de cuenta regresiva de empalme |
Bandera de datos privados de transporte | 1 | 0x02 | Establecer cuándo están presentes los datos privados de transporte |
Bandera de extensión del campo de adaptación | 1 | 0x01 | Establecer cuando los datos de extensión de adaptación están presentes |
Campos opcionales | |||
PCR | 48 | Referencia del reloj del programa, almacenada como base de 33 bits, 6 bits reservados, 9 bits de extensión. El valor se calcula como base * 300 + extensión. | |
OPC | 48 | Referencia de reloj del programa original. Ayuda cuando se copia un TS en otro | |
Cuenta regresiva para el empalme | 8 | Indica cuántos paquetes TS a partir de este punto de empalme se producen ( complemento a dos con signo; puede ser negativo) | |
Longitud de datos privados de transporte | 8 | La longitud del siguiente campo | |
Transporte de datos privados | variable | Datos privados | |
Extensión de adaptación | variable | Vea abajo | |
Relleno de bytes | variable | Siempre0xFF |
Nombre | Número de bits | Máscara de bits | Descripción |
---|---|---|---|
Longitud de extensión de adaptación | 8 | 0xff00 | La longitud del encabezado |
Bandera de ventana de tiempo legal (LTW) | 1 | 0x0080 | |
Bandera de tarifa por partes | 1 | 0x0040 | |
Bandera de empalme sin costura | 1 | 0x0020 | |
Reservado | 5 | 0x001f | |
Campos opcionales | |||
Conjunto de indicadores LTW (2 bytes) | |||
Bandera válida LTW | 1 | 0x8000 | |
Desplazamiento LTW | 15 | 0x7fff | Información adicional para que los retransmisores determinen el estado de los buffers cuando pueden faltar paquetes. |
Conjunto de indicadores por partes (3 bytes) | |||
Reservado | 2 | 0xc00000 | |
Tarifa por tramos | 22 | 0x3fffff | La velocidad del flujo, medida en paquetes de 188 bytes, para definir el tiempo final del LTW. |
Conjunto de indicadores de empalme sin costuras (5 bytes) | |||
Tipo de empalme | 4 | 0xf000000000 | Indica los parámetros del empalme H.262. |
Unidad de acceso siguiente DTS | 36 | 0x0efffefffe | El DTS de PES del punto de empalme. Dividido en varios campos, 1 bit de marcador (0x1), 15 bits, 1 bit de marcador, 15 bits y 1 bit de marcador, para un total de 33 bits de datos. |
Nombre | Número de bits | Máscara de bits | Descripción |
---|---|---|---|
Puntero de carga útil (opcional) | 8 | 0xff | Presente sólo si el indicador de inicio de la unidad de carga útil (PUSI) está configurado y el tipo de datos del paquete es PSI (no PES). Proporciona el índice después de este byte en el que comienza la nueva unidad de carga útil. Cualquier byte de carga útil antes del índice es parte de la unidad de carga útil anterior. |
Carga útil real | variable | El contenido de la carga útil. |
Cada tabla o flujo elemental de un flujo de transporte se identifica mediante un identificador de paquete (PID) de 13 bits. Un demultiplexor extrae flujos elementales del flujo de transporte, en parte, buscando paquetes identificados por el mismo PID. En la mayoría de las aplicaciones, se utilizará la multiplexación por división de tiempo para decidir con qué frecuencia aparece un PID en particular en el flujo de transporte.
Decimal | Hexadecimal | Descripción |
---|---|---|
0 | 0x0000 | La tabla de asociación de programas (PAT) contiene una lista de directorios de todas las tablas de mapas de programas |
1 | 0x0001 | La tabla de acceso condicional (CAT) contiene un listado de directorios de todos los flujos de mensajes de gestión de derechos de la Rec. H.222 de la UIT-T utilizados por las tablas de mapas de programas. |
2 | 0x0002 | La tabla de descripción del flujo de transporte (TSDT) contiene descriptores relacionados con el flujo de transporte general |
3 | 0x0003 | La tabla de información de control de IPMP contiene una lista de directorios de todos los flujos de control ISO/IEC 14496-13 utilizados por las tablas de mapas de programas |
4–15 | 0x0004-0x000F | Reservado para uso futuro |
16–31 | 0x0010-0x001F | Utilizado por metadatos DVB [14]
|
32-8186 | 0x0020-0x1FFA | Puede asignarse según sea necesario para programar tablas de mapas, flujos elementales y otras tablas de datos. |
8187 | 0x1FFB | Utilizado por DigiCipher 2 / metadatos ATSC MGT |
8188–8190 | 0x1FFC-0x1FFE | Puede asignarse según sea necesario para programar tablas de mapas, flujos elementales y otras tablas de datos. |
8191 | 0x1FFF | Paquete nulo (usado para relleno de ancho de banda fijo) |
El flujo de transporte tiene un concepto de programas . Cada programa se describe mediante una tabla de mapa de programas (PMT). Los flujos elementales asociados con ese programa tienen PID enumerados en la PMT. Otro PID está asociado con la propia PMT. Por ejemplo, un flujo de transporte utilizado en televisión digital puede contener tres programas, para representar tres canales de televisión. Supongamos que cada canal consta de un flujo de vídeo, uno o dos flujos de audio y cualquier metadato necesario. Un receptor que desee decodificar uno de los tres canales simplemente tiene que decodificar las cargas útiles de cada PID asociado con su programa. Puede descartar el contenido de todos los demás PID. Un flujo de transporte con más de un programa se denomina flujo de transporte multiprograma (MPTS). Un flujo de transporte de un solo programa se denomina flujo de transporte de un solo programa (SPTS).
Existen cuatro tablas de información específica del programa (PSI): asociación de programas (PAT), mapa de programas (PMT), acceso condicional (CAT) e información de red (NIT). La especificación MPEG-2 no especifica el formato de la CAT y la NIT.
Para permitir que un decodificador presente contenido sincronizado, como pistas de audio que coincidan con el vídeo asociado, al menos una vez cada 100 ms, se transmite una referencia de reloj de programa (PCR) en el campo de adaptación de un paquete de flujo de transporte MPEG-2. El PID con el PCR para un programa MPEG-2 se identifica mediante el valor pcr_pid en el PMT asociado. El valor del PCR, cuando se utiliza correctamente, se emplea para generar un reloj de sincronización del sistema en el decodificador. El decodificador de reloj de tiempo del sistema (STC), cuando se implementa correctamente, proporciona una base de tiempo muy precisa que se utiliza para sincronizar flujos elementales de audio y vídeo. La sincronización en MPEG-2 hace referencia a este reloj. Por ejemplo, la marca de tiempo de presentación (PTS) está destinada a ser relativa al PCR. Los primeros 33 bits se basan en un reloj de 90 kHz. Los últimos 9 bits se basan en un reloj de 27 MHz. La fluctuación máxima permitida para el PCR es de +/- 500 ns .
Algunos esquemas de transmisión, como los de ATSC y DVB , imponen estrictos requisitos de velocidad de bits constante en el flujo de transporte. Para garantizar que el flujo mantenga una velocidad de bits constante, un multiplexor puede necesitar insertar algunos paquetes adicionales. El PID 0x1FFF está reservado para este propósito. Los paquetes nulos tienen una carga útil que se llena con 0xFF y se espera que el receptor ignore su contenido. [15]
El Transport Stream fue diseñado originalmente para transmisión. Más tarde se adaptó para su uso con cámaras de video digitales, grabadoras y reproductores agregando un campo de código de tiempo (TC) de 4 bytes a los paquetes estándar de 188 bytes, lo que resultó en un paquete de 192 bytes. [16] [17] Esto es lo que se llama informalmente flujo M2TS , que se encuentra comúnmente en cámaras HDV . La Blu-ray Disc Association lo llama " flujo de transporte BDAV MPEG-2 ". [16] JVC lo llamó TOD [c] cuando se usa en videocámaras basadas en HDD como GZ-HD7 . [18] [19] El código de tiempo permite un acceso rápido a cualquier parte del flujo, ya sea desde un reproductor multimedia o desde un sistema de edición de video no lineal. [20] También se usa para sincronizar flujos de video de varias cámaras en una configuración de múltiples cámaras .
Los títulos de video de Blu-ray Disc creados con soporte de menú están en formato Blu-ray Disc Movie (BDMV) y contienen audio, video y otras transmisiones en un contenedor BDAV, que se basa en el formato de transmisión de transporte MPEG-2. [21] [22] El video de Blu-ray Disc utiliza estas transmisiones de transporte MPEG-2 modificadas, en comparación con las transmisiones de programa de DVD que no tienen la sobrecarga de transporte adicional.
También existe el formato BDAV (Blu-ray Disc Audio/Visual), la alternativa orientada al consumidor al formato BDMV utilizado para los estrenos de películas. El formato BDAV se utiliza en discos Blu-ray grabables para grabación de audio/vídeo. [22] [d] Los discos Blu-ray emplean el método de grabación de flujo de transporte MPEG-2. Esto permite que los flujos de transporte de una emisión digital convertida en BDAV se graben tal como están con una alteración mínima de los paquetes. [17] También permite una edición sencilla de estilo de corte de flujo de una emisión digital convertida en BDAV que se graba tal como está y donde los datos se pueden editar simplemente descartando los paquetes no deseados de la transmisión. Aunque es bastante natural, se incorpora una función para la recuperación de alta velocidad y fácil de usar. [17] [24]
Las licencias se refieren a herramientas y no a transmisiones o archivos en sí.
{{cite book}}
: |website=
ignorado ( ayuda ){{cite web}}
: CS1 maint: URL no apta ( enlace )