SRT参数说明
1.超时选项
connect_timeout
连接超时时间,单位毫秒,默认值为3秒。
当RTT > 1500毫秒(2次握手交换)时,SRT无法连接。此选项适用于caller和rendezvous模式。
listen_timeout
监听超时时间,单位毫秒
timeout
为读、写和连接操作设置引发错误超时,单位毫秒。请注意,SRT库具有可以单独控制的内部超时,这里设置的值只是这些超时的上限。
2.缓存相关选项
ffs
窗口大小,单位字节,默认值为25600。
FFS实际上是一个内部参数,应该将其设置为不小于recv_buffer_size和mss。默认值相对较大,因此除非您设置了非常大的接收者缓冲区,否则不需要更改此选项。
mss
最大段大小,单位字节,默认值1500,它是UDP数据包的最大长度。整个互联网默认为1500,一般只会减小,除非您有一些不寻常的专用网络设置。
recv_buffer_size
UDP接收缓存大小,单位字节。
send_buffer_size
UDP发送缓存大小,单位字节。
sndbuf
设置发送缓冲区大小,单位字节。
rcvbuf
设置接收缓冲区大小,单位字节。接收缓冲区不能大于ffs。
3.带宽或码率相关选项
inputbw
发送者的输入速率,单位字节/秒,默认值为0。
与oheadbw一起使用,当maxbw设置为相对(0)时,用于计算随主媒体流发送恢复数据包时的最大发送速率:inputbw * (100 + oheadbw) / 100。如果inputbw未设置而maxbw设置为相对(0),则在库中计算实际输入速率。
oheadbw
高于输入速率(inputbw)的恢复带宽开销,以百分比表示,默认值为25%
maxbw
最大发送带宽,单位字节/秒,默认值0。-1表示无限制(CSRTCC限制是30mbps);0表示取决于输入速率;
4.延迟相关选项
latency
基于时间戳的数据包发送延迟,单位毫秒。用于处理数据包重传的突发情况。此标志将rcvlatency和peerlatency设置为相同的值。请注意,在1.3.0版本之前,这是设置延迟的唯一标志,然而,这实际上相当于设置peerlatency(当side是发送方时)和rcvlatency(当side是接收方时),并且不支持双向流发送。
peerlatency
延迟值(如rcvlatency中所述),由发送端设置为接收端的最小值,单位毫秒。
rcvlatency
数据包被发送到接收方接收应该经过的时间,单位毫秒。这个时间应该是一个足够大的缓冲时间,以覆盖发送所花费的时间、意外延长的RTT时间和重传丢失的UDP数据包所需的时间。有效延迟值将是该选项的值与对端设置的peerlatency值的最大值。
snddropdelay
发送方在丢弃包之前的额外延迟,该延迟被添加到默认的延迟时间间隔值中。特殊值-1:不丢弃报文,单位毫秒。
5.模式相关选项
mode
连接模式,可取值caller、listener和rendezvous,默认值caller。
messageapi
当设置时,套接字使用Message API,否则使用Buffer API。
请注意,在live模式下,只能使用Message API。
在file模式下,可以选择使用以下两种模式之一:
Stream API(默认值,当此选项为false时)。您可以在一个发送指令中发送任意多的数据,甚至可以使用专用函数直接从文件读取。内部设施将负责任何速度和拥塞控制。接收时,可以根据需要接收任意多的数据,未读取的数据将等待下一次调用。在Stream模式中,数据部分之间没有边界。
Message API。在这种模式下,单个发送指令只传递一段有边界的数据(消息)。与Live模式相反,此消息可以跨越多个UDP数据包,唯一的大小限制是它应该作为一个整体适合发送缓冲区。接收方应使用尽可能大的缓冲区来接收消息,以便不会丢弃消息。当消息不完整时(不是所有的数据包都收到或有数据包丢失),它将不会被放弃。
transtype=live|file
套接字的传输类型,可取值live和file。值得注意的是,此选项会将多个其他参数设置为特定传输类型所需的默认值。
live: 传输类型设置为实时传输。在这种模式下,一个发送指令只发送一个适合的UDP数据包数据。实时传输模式下不进行速度控制,只有带宽控制。如果配置了带宽控制,也是为了不超过带宽(重传和控制数据包)。
file: 设置选项为非实时传输。请参阅messageapi
smoother
套接字传输的平滑器类型,它负责传输和拥塞控制,可取值live和file。连接双方的平滑类型必须完全相同,否则连接将被拒绝。
6.加密相关选项
pbkeylen
发送方加密密钥长度,单位字节,只能设置为0、16、24、32,默认值为0。如果不为0,则启用发件人加密。接收方不需要(设置为0),在HaiCrypt握手中从发送方获得的密钥大小。
passphrase
HaiCrypt加密/解密密码字符串,长度为10 ~ 79个字符。密码字符是发送方和接收方之间的共享秘密。用于使用PBKDF2生成加密密钥。仅当pbkeylen非零时,才有效果。只有当接收到的数据被加密时,它才会在接收方上使用。配置的密码字符不能恢复(只写)。
enforced_encryption
如果为1,则连接双方必须设置相同的密码(包括空密码,即没有加密)。如果密码不匹配或只有一方未加密,则拒绝连接。默认为1。
kmrefreshrate
加密密钥转换为新密钥后要传输的数据包数,默认值-1,取值范围范围是0到INT_MAX的整数。-1表示自动。
kmpreannounce
发送新加密密钥到切换发生的时间间隔,默认值-1,取值范围范围是0到INT_MAX的。此值也适用于切换发生和旧加密密钥退役之间的后续时间间隔。
7.数据包选项
payload_size
Live模式下,单次传输的最大数据包大小,默认值是-1(自动),通常表示MPEG-TS。如果未使用此值,则使用0(在文件模式下为默认值)。如果您打算使用SRT发送任何不同类型的有效负载,例如,将实时流封装在非常小的帧中,那么您可以使用更大的最大帧大小,但不大于1456字节。
pkt_size
'payload_size '的别名。
tlpktdrop
太晚丢包。在接收端启用后,将会跳过未及时传递的丢失数据包,并在该播放的时间到来时将后续的数据包传递给应用程序。它还将向发送方发送一个假的ACK。如果在发送端和接收端同时使能,则发送端丢弃没有机会及时发送的旧报文。如果接收方支持它,则在发送方中自动启用它。
8.其他选项
iptos
IP服务类型,默认值为0xB8。仅适用于发送者。
ipttl=ttl
IP生存的时间,默认值是64。仅适用于发送者。
nakreport
是否定期发送’UMSG_LOSSREPORT’消息,默认值1。如果设置为1,则接收端将定期发送’UMSG_LOSSREPORT’消息,直到丢失的数据包被重传或故意丢弃。
lossmaxttl
当达到lossmaxttl值时,Reorder Tolerance可以增长。当Reorder Tolerance > 0时,丢包报告将延迟到该数量的数据包到达。每次“迟来”的数据包到来时,Reorder Tolerance都会增加,但这不是由于重传(而是UDP数据包倾向于乱序),最新序列与该数据包序列之间的差异不会超过此选项的值。默认情况下,它是0,意味着关闭该机制,那么在遇到序列中的“间隙”时,将立即发送丢失报告。
minversion
要求对端提供的最小SRT版本。不满足最低版本要求的对端连接将被拒绝。版本格式是十六进制(0xXXYYZZ)。
streamid
不超过512个字符的字符串,需要在连接之前在套接字上设置,可用于监听和响应多路请求的场景,类似RTMP的APPPATH。
linger
套接字关闭时,等待未发送数据的秒数,默认值-1,取值范围是0到INT_MAX的整数。-1表示自动(在实时模式下0秒关闭,在文件模式下180秒打开)。此选项的。
tsbpd=1|0
当为true时,使用基于时间戳的数据包传输模式。默认行为取决于传输类型:在live模式下启用,在file模式下禁用。
相关文章:
SRT参数说明
1.超时选项 connect_timeout 连接超时时间,单位毫秒,默认值为3秒。 当RTT > 1500毫秒(2次握手交换)时,SRT无法连接。此选项适用于caller和rendezvous模式。 listen_timeout 监听超时时间,单位毫秒 timeout 为读、写和连接操作…...
vue响应式原理
vue响应式原理 vue响应式原理vue2响应式原理目标对象为数组时 vue3响应式原理Vue3和Vue2在响应式系统方面的对比数据劫持的方式支持数据劫持的数据类型Vue3响应式系统显著优点是: vue响应式原理 无论vue2和vue3响应式都是通过观察者模式(发布订阅模式&a…...
elk安装篇之 Kibana安装
Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。是es的可视化客户端之一。 一:下载 https://www.elastic.co/cn/kibana 我的es是elasticsearch-7.10.2版本&#x…...
MySQL 用户授权管理及白名单
1.创建用户 在 MySQL 中,你可以通过以下步骤创建用户并设置白名单: 使用管理员账号连接到 MySQL 服务器。 创建新用户: CREATE USER usernamehostname IDENTIFIED BY password;其中, username 是你要创建的用户名;ho…...
pc-签字画板vue-esign的使用
使用的是vue-esign组件 npm install vue-esign 首先下载组件在main.js中引入vue-esign,并且挂载 import { createApp } from vue; import App from ./App.vue; const app createApp(App);import vueEsign from vue-esign app.use(vueEsign ) 页面使用࿰…...
javaScript:节点操作
目录 前言 常用的节点操作 innerHTML 的两个弊端(补充) createElement(标签名)使用dom方法创建一个元素 父元素.appendChild(子元素) 添加到父元素 注意 指定插入 父元素.insertBefore(要添加的元素,父元素中的指定子元素) 注意&…...
git 忽略已经提交的文件或文件夹 (修改.gitignore文件无效)
场景描述:项目开发到一半,追加了模块,提交的时候未注意将不需要提交的文件或者目录提交到.gitignore,然后提交后发现再修改git配置文件已无法阻拦更新,查阅官方资料: 核心点:.gitignore 之前&a…...
学习左耳听风栏目90天——第十二天 12/90(学习左耳朵耗子的工匠精神,对技术的热爱)【时间管理:同扭曲时间的事儿抗争】
时间管理:同扭曲时间的事儿抗争 要学会说不...
前端如何将后台数组进行等分切割
前端如何切割数组 目标:前端需要做轮播,一屏展示12个,后端返回的数组需要进行切割,将数据以12为一组进行分割 环境:vue3tselement plus 代码如下: function divideArrayIntoEqualParts(array, chunkSiz…...
如何有效防止服务器被攻击?
随着互联网的快速发展,服务器安全问题日益引起人们的关注。近期,全球范围内频繁发生的服务器攻击事件引发了广泛关注。为了保护企业和个人的数据安全,有效防止服务器被攻击已成为迫在眉睫的任务。 首先,及时更新服务器的操作系统和…...
layui表格高度
layui表格的高度设置时使用 height:‘full’ 高度就是表格每个页面的总高度。也可以直接写数值,但是这是定高。 也可以使用 height:“full-数值”,比如 height:full-80 那么就会在表格占据剩余div的时候底部留100px。相当于margin-bottom:10…...
一文1800字从0到1使用Python Flask实战构建Web应用
Python Flask是一个轻量级的Web框架,它简单易用、灵活性高,适用于构建各种规模的Web应用。本文将介绍如何使用Python Flask框架来实战构建一个简单的Web应用,并展示其基本功能和特性。 第一部分:搭建开发环境 在开始之前我们需要…...
【LeetCode-中等题】210. 课程表 II
文章目录 题目方法一:bfs方法二:dfs 题目 这一题是在207题的基础上,要统计拓扑排序的顺序集合,所以只需要在207的基础上加入一个将拓扑排序的节点输出即可(有环无拓扑排序) 【LeetCode-中等题】207. 课程表…...
vue修饰符的用法
Vue修饰符是指在Vue模板中用于改变指令行为的特殊后缀。修饰符以.开头,用于指示指令应该如何绑定或响应事件。Vue修饰符在一些常见的指令中使用,例如v-on和v-model。常见的Vue修饰符包括: .prevent:阻止默认事件的发生。.stop&am…...
汽车3D HMI图形引擎选择
2002年,电影《少数派报告》让观众深入了解未来。 除了情节的核心道德困境之外,大多数人都对它的技术着迷。 我们看到了自动驾驶汽车、个性化广告和用户可以无缝交互的 3D 计算机界面。 令人惊讶的是,虽然故事发生在 2054 年,但许多科幻想象的作品已经成为现实。 对于汽车和…...
stable diffusion实践操作-webUI教程-不是基础-是特例妙用
系列文章目录 stable diffusion实践操作 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、SD webUI是什么?二、详细教程1. 相关插件安装1.1. 提示词插件安装和使用1.2 tagg标签妙用…...
【Java】网络编程
网络编程 Socket套接字概念分类Java数据报套接字通信模型一次发送和接受UDP数据报提供多个客户端的请求处理及响应 Java流套接字通信模型Socket编程注意事项 UDP数据报套接字编程DatagramSocket API构造方法普通方法 DatagramPacket API构造方法普通方法 InetSocketAddress API…...
van-cascader 异步加载
vant官网 异步加载选项 在使用级联选择时当一次性拿到数据量太大时不仅接口慢而且前端渲染页面也会变慢,用户体验很不好,建议使用异步加载选项, 拿到的接口让后端返回一个是否还有下一级的判断,不然van-cascader判断没有childre…...
Golang单元测试举例
1.第一个例子 cal.go package mainfunc addUpper(n int) int {res : 0for i : 1; i < n; i {res i}return res }func getSub(n1 int, n2 int) int {return n1 - n2 }cal_test.go package main//测试文件名必须是_test.go结尾 //测试函数必须Test开头 import ("fmt…...
汽车以太网协议栈
《大师说》栏目上线啦# 《大师说》栏目是怿星科技2023年推出的深度思考栏目,通过邀请内部专家,针对智能汽车行业发展、技术趋势等输出个性化的观点。每期一位大师,每位一个话题,本期由我们怿星的CTO虞胜伟,进行分享。…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明
AI 领域的快速发展正在催生一个新时代,智能代理(agents)不再是孤立的个体,而是能够像一个数字团队一样协作。然而,当前 AI 生态系统的碎片化阻碍了这一愿景的实现,导致了“AI 巴别塔问题”——不同代理之间…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
