[SRT]1.协议简介

news2024/9/24 3:29:32

1.简介


​        安全可靠传输协议(Secure Reliable Transport)简称SRT,是一种基于UDT协议的开源互联网传输协议,Haivision和Wowza合作成立SRT联盟,管理和支持SRT协议开源应用的组织,这个组织致力于促进视频流解决方案的互通性,以及推动视频产业先驱协作前进,实现低延时网络视频传输。

        SRT是时下非常受欢迎的开源低延迟视频传输协议,SRT解决了复杂的传输时序问题,SRT可以减少延迟,消除中心瓶颈,并降低网络成本。

        SRT(Secure Reliable Transport,安全可靠传输)是一种用于超低(亚秒)延迟的实时音视频流及通用批量数据传输的传输协议。SRT解决了复杂的传输时序问题,可以做到支持高吞吐量文件和超清视频的实时传输。​        ​      

        SRT是一种开源技术,其代码

srt: 同步的SRT库,如有涉及侵权请联系我,进行删除icon-default.png?t=N7T8https://gitee.com/smartavs/srt


2.特性


 2.1.质量和高靠性

​        无论您的网络多么不可靠,SRT都可以从严重的数据包丢失和抖动中恢复,确保视频流的完整性和质量。

2.2.低延迟

​        为了适应用户的各种部署环境,因此SRT的流错误纠正策略是可配置的。由于SRT建立在UDP协议之上,解决了TCP协议传输延迟高的问题。

2.3.内容不敏感

​        SRT在网络传输层运行,它可以传输任何类型的视频格式、编解码器、分辨率或帧速率。

2.4.使用交会模式轻松穿越防火墙

​        SRT使用的握手过程支持出站连接,也就是只需要直到双方的公网IP地址,无需在防火墙中打开端口映射。

​        另外,使用直接从源到目的地的连接,SRT可以减少延迟,消除中心瓶颈,并降低网络成本。

​        原理:双方发送源和目的端口完全一致,达到欺骗防火墙通过的目的,从而建立连接。存在如果在网络传输过程中端口被转换,无法连接的问题。

2.5.AES加密

​        SRT使用世界各地政府和组织信任的128/192/256位AES加密,确保有价值的内容得到端到端的保护,不会被分发。

2.6.前向纠错(FEC)和包过滤器API

​        包过滤器AP允许在发送网络数据包之前,在发送方对其进行自定义处理,并允许在从网络接收到网络数据包之后在接收方对其进行定制处理。

​        用户可以以任何方式操作生成的数据包过滤器数据,例如用于自定义加密、数据包检查或在数据发送之前访问数据。

​        创建的第一个插件是前向纠错(FEC),在某些使用情况下,它可以提供比自动重复请求(ARQ)稍低的延迟。此插件允许三种不同的模式:
​            仅ARQ            重传丢失的数据包
​            仅FEC            提供接收机侧FEC恢复所需的开销
​            FEC和ARQ    重新传输FEC无法恢复的丢失数据包

2.7.无缝连接

​        与管理网络SMPTE-2022-7类似,连接键合为SRT协议添加了无缝流保护和故障切换。该技术依赖于多个IP网络路径,以防止网络拥塞或中断导致实时视频流的故障中断,从而保持服务的连续性。

​        该功能通过使用SRT v1.5中引入的套接字组来实现的。套接字组包含多个套接字,当正在使用的套接字发送一个故障信号后,组内其他套接字将接管它的操作。

目前支持两种模式:

​        广播模式--在广播模式下,数据通过组中的所有成员链接冗余发送。如果其中一条链路出现故障或经历网络抖动和/或数据包丢失,则将通过组中的另一条链路接收丢失的数据。冗余分组在接收机侧被简单地丢弃。
​        主/备模式--在主/备份模式下,一次仅使用一条(主)链路进行数据传输,而其他(备份)连接处于备用状态,以确保主链路出现故障时传输将继续。主/备份模式的目标是在可能的链路中断发生之前识别它,从而提供一个时间窗口,在该时间窗口内无缝切换到其中一个备份链路。

2.8.访问控制(流ID)

​        当需要向单个IP地址和UDP端口推送/拉取多个SRT流,使用流ID来区分本次推流/拉取的行为。

3.与常见传输格式比较

目前互联网上的视频直播有两种:

​        一种是基于RTMP协议的直播,这种直播方式上行推流使用RTMP协议,下行播放使用RTMP,HTTP+FLV或者HLS,直播延时一般大于3秒,广泛应用秀场、游戏、赛事和事件直播,满足了对交互要求不高的场景;

​        另一种是WebRTC协议的直播,这种直播方式使用UDP的协议进行流媒体的分发,直播延时小于1秒,同时连接数一般小于10个,主要应用在视频通话、秀场连麦等应用场景。

​        除了上述两种场景外,还有一种视频直播的场景,就是同时要求低延时和大并发的场景,比如赛事直播、股票信息同步、大班教育等。SRT可以很好地满足上述场景的要求。

        SRT与目前市场上的大多数其他视频流传输格式(如RTMP、HLS和MPEG-DASH)。相比有几个特点:

  • SRT是一个开源解决方案,已经集成到多个平台和体系结构中,包括基于硬件的可移植解决方案和基于软件的云解决方案。
  • SRT可以在几毫秒到几秒的延时之间的连接上很好地工作。能处理长时间的网络延迟。
  • SRT与负载无关。任何类型的视频或音频媒体,或者实际上任何可以使用UDP发送的其他数据元素,都与SRT兼容。支持多种流类型。
  • SRT发送支持多个并发流,多个不同的媒体流例如多个摄像机角度或可选音频轨道,可以通过在一个点对点链接上共享相同UDP端口和地址的并行SRT流发送。
  • SRT使用的握手过程支持出站连接,而不需要在防火墙中打开危险的永久外部端口,从而维护公司安全策略。增强防火墙遍历。
  • SRT端点建立了稳定的端到端延迟概要,消除了下游设备需要有自己的缓冲区来应对不断变化的信号延迟。信号时间准确。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1079650.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

041:mapboxGL移动到到某Layer上,更换鼠标形状

第041个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中通过鼠标hover的方式来更换鼠标形状。 通过mouseenter和mouseleave的方法,经过某个图层上的时候,更换鼠标的形状,从default到pointer。 离开后从pointer到default。 直接复制下面的 vue+mapbox源代码,操…

安信证券携手共议量化行业的赋能发展

9月22日,安信证券上海浦西分公司携手非凸科技、通联数据在上海共同开展“量化私募闭门交流会”,与资方管理人就如何赋能量化私募可持续发展,给出了精彩纷呈的见解与讨论。 安信证券以“打造数字化券商”为目标,加强科技创新与业务…

数据库常见面试题--MySQL

梳理面试过程中数据库相关的常见问题,需要说明的是,这篇文章主要是基于MySQL数据库,其他类型的数据库还请自行参考使用。 数据库概述 为什么使用数据库 1、数据库增删改查更方便 2、提供了事务的能力 本质是更好的管理数据。 数据库体系结…

Android rtmp 低延迟直播方案:简介

Android rtmp 低延迟直播方案:简介 Android RTMP 低延迟直播方案:使用 RTMP 推送至 ZLMediaKit,通过 WebRTC 进行拉流。

会展购票系统有哪些特点?如何选择好的会展购票系统开发公司

会展购票系统是会展行业的重要组成部分,它具有提高会展业务流程运转效率、业务操作方便快捷、降低人工成本等优势。如开利网络自主研发的会展购票系统就有以下几个特点: 1. 拥有多端开发能力。除了电脑端外,还可以开发微信小程序端、公众号端…

不说废话,推荐一款超实用免费配音软件~

短视频发展如火如荼,在制作编辑视频的同时,文字转语音的需求也越来越大,例如解说配音、旁白配音、vlog配音等,今天就给大家推荐一款超实用的免费配音软件,感兴趣的小伙伴请接着往下看! 一、悦音AI配音&…

语音芯片的“等级”之分

语音芯片,你或许不晓得这个“芯”也是有高低之分,你可能听说过手机“发烧级”高性能芯片,同样在语音芯片中存在着性能不同等级的语音芯片。一般我们将普通芯片主要分为3个等级:商业级(又称民用级)、工业级和…

在Scrum敏捷开发中,开发人员(Developers)的职责

在Scrum敏捷开发中,开发人员(Developers)是Scrum团队中最重要的角色之一,负责产品的开发和交付,其重要性不言而喻。 那开发人员的职责和需要参加的活动是什么呢? Developers核心职责: 承诺并完…

【外汇天眼】不工作只做交易?探索不平凡的生活

金融界曾有一句广为流传的名言——"富人做债券,中产做股票,穷人做期货外汇"。这并非因为穷人特别热爱期货和外汇交易,而是因为他们更渴望通过杠杆交易在短期内实现财富梦想。如果一个人不愿意或没有技能去工作,但精通交…

Lambda 表达式使用详解,一篇文章手把手教会你

目录 1. Lambda 表达式有什么用? 2. 匿名内部类举例 3. Lambda 表达式的标准格式与使用 4. Lambda 表达式使用注意点 5. 什么是函数式接口? 6. Lambda 表达式的省略写法 7. Lambda 表达式省略写法简单展示 1. Lambda 表达式有什么用? …

LeetCode【394】字符串解码

题目&#xff1a; 思路&#xff1a; 参考&#xff1a;https://blog.csdn.net/xushiyu1996818/article/details/107973300 代码&#xff1a; public String decodeString(String s){Deque<Character> stack new ArrayDeque<>();for(char c :s.toCharArray()){if…

第一章:Android开发技能入门指南

Android 从入门到出门第一章&#xff1a;Android开发技能入门指南第二章&#xff1a;使用声明式UI创建屏幕并探索组合原则第三章&#xff1a;使用Hilt处理Jetpack Compose UI状态第四章&#xff1a;现代Android开发中的导航第五章&#xff1a;使用DataStore存储数据和测试第六章…

软考之系统架构师-01什么是系统架构师?什么是系统架构?

第一章 绪论 1. 什么是系统架构师&#xff1f; 系统架构设计师(System Architecture Designer&#xff09;是项目开发活动中的关键角色之一。系统架构是系统的一种整体的高层次的结构表示&#xff0c;是系统的骨架和根基&#xff0c;其决定了系统的健壮性和生命周期的长短。 …

系统架构师--面向对象选择题

系统架构师--面向对象选择题 面向对象考题&#xff08;将设计模式删减了&#xff0c;主要考察uml&#xff09;

IDEA使用模板创建webapp时,web.xml文件版本过低的一种解决方法

创建完成后的web.xml 文件&#xff0c;版本太低 <!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Appl…

关于优先队列的一点细节

在使用优先队列PriorityQueue时&#xff0c;默认的是升序排列&#xff0c;自己可以指定比较器改为降序排列&#xff0c;例如Collections.reverseOrder()等。 但是在我做力扣的过程中&#xff0c;简单的用一个list的addAll方法添加了优先队列里边所有元素&#xff0c;结果发现添…

浅谈智能照明控制系统在地铁照明中的应用

摘要&#xff1a;随着我国经济建设的加速发展&#xff0c;城市轨道交通越来越获得社会的青睐。车站照明关系到轨道交通的服务质量、运营成本、运营成本等多个方面&#xff0c;在既要保证运营成本又要满足国家“节能”要求的背景下&#xff0c;智能照明控制系统应运而生。 轨道…

uniapp:幸运大转盘demo

<template><view class"index"><image src"../../static/img/158.png" mode"" class"banner"></image><view class"title">绿色积分加倍卡拿到手软</view><almost-lottery :lottery…

Element组件案例 Vue路由 前端打包部署步骤

目录 Element组件案例案例需求与分析环境搭建整体布局顶部标题左侧导航栏核心-右侧导航栏表格编写表单编写分页工具栏编写 异步数据加载异步加载数据性别展示修复图片展示修复 Vue路由Vue路由简介Vue路由入门 打包部署前端工程打包部署前端工程nginx介绍部署 Element组件案例 …

【TES720D】基于复旦微的FMQL20S400全国产化ARM核心模块

TES720D是一款基于上海复旦微电子FMQL20S400的全国产化核心模块。该核心模块将复旦微的FMQL20S400&#xff08;兼容FMQL10S400&#xff09;的最小系统集成在了一个60*70mm的核心板上&#xff0c;可以作为一个核心模块&#xff0c;进行功能性扩展&#xff0c;特别是用在控制领域…