Secure Reliable Transport ( SRT ) es un protocolo de transporte de vídeo de código abierto que utiliza el protocolo de transporte UDP . La especificación del protocolo SRT está disponible como borrador de Internet en el IETF . [1]
SRT proporciona conexión y control, transmisión confiable similar a TCP ; sin embargo, lo hace en la capa de aplicación , utilizando el protocolo UDP como capa de transporte subyacente. Admite recuperación de paquetes mientras mantiene baja latencia (predeterminado: 120 ms). SRT también admite cifrado mediante AES .
El protocolo se derivó del proyecto UDT [2] , que fue diseñado para la transmisión rápida de archivos. Proporcionó el mecanismo de confiabilidad al utilizar métodos similares para la conexión, los números de secuencia, los reconocimientos y la retransmisión de paquetes perdidos. Utiliza una retransmisión selectiva e inmediata (basada en NAK).
SRT agregó varias funciones además de eso para admitir el modo de transmisión en vivo:
Los paquetes SRT se crean en la capa de aplicación y se entregan a la capa de transporte para su distribución. Cada unidad de medios SRT o datos de control creada por una aplicación comienza con el encabezado del paquete SRT. [1]
Los campos del encabezado son los siguientes:
Los campos del encabezado son los siguientes:
Secure Reliable Transport es un protocolo de transporte de vídeo de código abierto desarrollado originalmente por Haivision. Según SRT Alliance , una organización que promueve la tecnología, optimiza el rendimiento de la transmisión. Esto ayuda a minimizar los efectos de la fluctuación y los cambios de ancho de banda, mientras que los mecanismos de corrección de errores ayudan a minimizar la pérdida de paquetes. SRT admite el cifrado de extremo a extremo con AES. [3] Al realizar retransmisiones, SRT solo intenta retransmitir paquetes durante una cantidad de tiempo limitada en función de la latencia configurada por la aplicación. [4]
Según Marc Cymontkowski, el arquitecto de SRT, además de enviar flujos de transporte MPEG a través de Internet público, también se utiliza para la conectividad IoT, el intercambio de metadatos, como protocolo de comunicación y para la entrega de datos sin comprimir. [5]
La implementación de referencia del protocolo se publicó originalmente bajo la Licencia Pública General Reducida versión 2.1, [6] pero se volvió a licenciar bajo la Licencia Pública de Mozilla el 22 de marzo de 2018. [7]
SRT es compatible con los marcos multimedia de software libre GStreamer , FFmpeg , OBS Studio y en el reproductor multimedia de software libre VLC . [4] [8]
El proyecto del Protocolo de Transferencia de Datos (UDT) basado en UDP ha sido la base del proyecto SRT. [9] La API C de SRT se basa en gran medida en el diseño de la API UDT [10].
SRT fue diseñado para la transmisión de video en vivo de baja latencia. [9] [3]
Haivision lanzó el protocolo SRT y la implementación de referencia como código abierto en el NAB Show 2017. [9]
En marzo de 2020, se presentó un borrador individual de Internet, draft-sharabayko-mops-srt, [1] para su consideración en el grupo de trabajo Media OPerationS (MOPS) del Grupo de trabajo de ingeniería de Internet .
SRT Alliance es una organización cuyos miembros desarrollan, utilizan y promueven el protocolo Secure Reliable Transport y el software basado en él. Los miembros fundadores de la alianza son Haivision y Wowza Streaming Engine . [11]
Actualmente hay una implementación disponible, que es la biblioteca SRT de código abierto.
La API del lenguaje C se basa principalmente en la API UDT anterior, con cambios adicionales a medida que se agregan nuevas funciones. La API es muy similar a la de TCP.
SRT ofrece en realidad tres modos de trabajo, de los cuales los dos primeros se derivan de UDT:
La biblioteca SRT también ofrece estas características:
Puede encontrar documentación más detallada en la documentación del código fuente.