当前位置: 首页 > news >正文

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 ) 页面使用&#xff0…...

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年推出的深度思考栏目&#xff0c;通过邀请内部专家&#xff0c;针对智能汽车行业发展、技术趋势等输出个性化的观点。每期一位大师&#xff0c;每位一个话题&#xff0c;本期由我们怿星的CTO虞胜伟&#xff0c;进行分享。…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...