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 la recuperación de paquetes y mantiene una latencia baja (predeterminada: 120 ms). SRT también admite el 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 mediante la utilización de métodos similares para conexión, números de secuencia, acuses de recibo y retransmisión de paquetes perdidos. Utiliza retransmisión selectiva e inmediata (basada en NAK).
SRT agregó varias características 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 entrega. Cada unidad de medios SRT o datos de control creados 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, ésta optimiza el rendimiento del streaming. 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 cifrado de extremo a extremo con AES. [3] Al realizar retransmisiones, SRT solo intenta retransmitir paquetes durante un período de tiempo limitado según la latencia configurada por la aplicación. [4]
Según Marc Cymontkowski, arquitecto de SRT, además de enviar flujos de transporte MPEG a través de la Internet pública, 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 obtener la licencia bajo la Licencia pública de Mozilla el 22 de marzo de 2018. [7]
SRT es compatible con los marcos multimedia de software gratuito GStreamer , FFmpeg , OBS Studio y en el reproductor multimedia de software gratuito VLC . [4] [8]
El proyecto de Protocolo de transferencia de datos (UDT) basado en UDP ha sido la base para el proyecto SRT. [9] La API SRT C se basa en gran medida en el diseño de la API UDT [10]
SRT fue diseñado para 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 de Internet individual, draft-sharabayko-mops-srt, [1] para su consideración al grupo de trabajo Media OPerationS (MOPS) del Internet Engineering Task Force .
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 más cambios 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 derivaron de UDT:
La biblioteca SRT también ofrece estas características:
Puede encontrar documentación adicional y más detallada en la documentación del código fuente.