当前位置: 首页 > 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;进行分享。…...

数学建模--二次规划型的求解的Python实现

目录 1.算法流程简介 2.算法核心代码 3.算法效果展示 1.算法流程简介 #二次规划模型 #二次规划我们需要用到函数:Cvxopt.solvers.qp(P,q,G,h,A,b) #首先解决二次规划问题和解决线性规划问题的流程差不多 """ 求解思路如下: 1.针对给定的代求式,转化成标准式…...

Ansible-palybook学习

目录 一.playbook介绍二.playbook格式1.书写格式2.notify介绍 一.playbook介绍 playbook 是 ansible 用于配置&#xff0c;部署&#xff0c;和管理被控节点的剧本。通过 playbook 的详细描述&#xff0c;执行其中的一系列 tasks &#xff0c;可以让远端主机达到预期的状态。pl…...

服务注册与服务发现

服务注册与服务发现 Eureka的架构 Eureka客户端&#xff1a;使用了EnableEurekaClient注解的应用服务&#xff0c;如订单服务等&#xff0c;甚至Eureka本身也是一个客户端 Eureka服务端&#xff1a;使用了EnableEurekaServer注解的应用服务&#xff0c;该服务提供了注册表以及…...

RabbitMQ从入门到精通之安装、通讯方式详解

文章目录 RabbitMQ一、RabbitMQ介绍1.1 现存问题 一、RabbitMQ介绍二、RabbitMQ安装三、RabbitMQ架构四、RabbitMQ通信方式4.1 RabbitMQ提供的通讯方式4.2 Helloworld 方式4.2Work queues4.3 Publish/Subscribe4.4 Routing4.5 Topics4.6 RPC (了解) 五、Springboot 操作RabbitM…...

植物大战僵尸植物表(二)

前言 此文章为“植物大战僵尸”专栏中的第007刊&#xff08;2023年9月第六刊&#xff09;。 提示&#xff1a; 1.用于无名版&#xff1b; 2.用于1代&#xff1b; 3.pvz指植物大战僵尸&#xff08;Plants VS Zonbies)。 植物大战僵尸植物表 土豆雷窝瓜火炬树桩火爆辣椒杨…...

UML基础

统一建模语言&#xff08;UML是 Unified Modeling Language的缩写, 是用来对软件系统进行可视化建模的一种语言。UML为面向对象开发系统的产品 进行说明、可视化、和编制文档的一种标准语言。 共有9种图 UML中的图其实不止九种 (相同的图还可能会有不同的名称), 这里的九种图是…...

C# void 关键字学习

C#中void关键字是System.Void的别名&#xff1b; 可以将 void 用作方法&#xff08;或本地函数&#xff09;的返回类型来指定该方法不返回值&#xff1b; 如果C&#xff03;方法中没有参数&#xff0c;则不能将void用作参数&#xff1b;这是与C语言不同的&#xff0c;C语言有…...

OA与CRM与ORACLE

办公自动化&#xff08;Office Automation&#xff0c;简称OA&#xff09;&#xff0c;是将计算机、通信等现代化技术运用到传统办公方式&#xff0c;进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术&#xff0c;代替办公人员传统的部分手动或重复性业务活动…...

【C++杂货铺】探索list的底层实现

文章目录 一、list的介绍及使用1.1 list的介绍1.2 list的使用1.2.1 list的构造1.2.2 list iterator的使用1.2.3 list capacity&#xff08;容量相关&#xff09;1.2.4 list element access&#xff08;元素访问&#xff09;1.2.5 list modifiers&#xff08;链表修改&#xff0…...

NX/UG二次开发—Parasolid—PK_BODY_pick_topols

最近在写一个判断圆孔深度和通盲状态的功能&#xff0c;发现PK_BODY_pick_topols射线函数可以设置到射线垂直距离&#xff0c;相当于一个圆柱空间&#xff0c;但在测试发现&#xff0c;R7的孔&#xff0c;设置&#xff1a; max_edge_dist 0.007; max_vertices 0.007; 结果测…...