原文链接:https://blog.csdn.net/weixin_42228920/article/details/90946259 高手先驱太多。

SRT互联网传输设备技术分享
前 言
序 言
Chapter 1. 什么是SRT?
1.1. SRT 联盟
1.2. SRT传输技术
1.3. SRT的典型应用模式
1.3.1. 点对点单向传输和视频互动
1.3.2. 点对多点传输
1.3.3. 视频流协议转换与分发
Chapter 2. SRT协议解析
2.1. SRT工作原理
2.2. SRT握手模式
2.2.1. Caller模式
2.2.2. Listener模式
2.2.3. Rendezvous模式
2.3. SRT如何建立连接
2.3.1. 由SRT源设备发起建立SRT连接
2.3.2. 由SRT目标设备发起建立SRT连接
2.3.3. 使用Rendezvous模式建立SRT连接
2.4. SRT与防火墙
Chapter 3. 实际应用场景
3.1. 在公网环境下开启视频传输:Caller & Listener模式
3.2. 在公网环境下开启视频传输:Rendezvous模式
3.3. 探讨:Rendezvous模式与防火墙
Chapter 4. 配置SRT传输参数
4.1. 参数名称解析
4.1.1. Round Trip Time (RTT)
4.1.2. RTT Multiplier
4.1.3. Packet Loss Rate
4.1.4. Bandwidth Overhead
4.1.5. Latency
4.1.6. SRT加密
4.1.7. 传输过程中的Latency、Buffer和BW Overhead
4.2. 基本设置方法
4.2.1. 检测网络链路的Round Trip Time(RTT)值
4.2.2. 检测网络链路的Packet Loss Rate(丢包率)
4.2.3. 根据测得的网络丢包率,从下表中查找相应的RTT Multiplier和BW Overhead值
4.2.4. 通过以下公式确定SRT Latency
4.2.5. 测试可用链路带宽
4.2.6. 确定传输码率
4.2.7. 检查SRT传输参数设置是否正确
4.2.8. 关于iPerf
4.3. SRT统计信息和优化传输设置
4.3.1. HDE-650S中的链路统计信息(Link Statistics)
4.3.2. HDD-461中的链路统计信息(Link Statistics)
结束语
前 言
写这篇文章的初衷,是想把自己在使用SRT设备过程中的经验和想法分享给公司同事和一些用户。因为SRT对一些人来讲,还比较陌生,如果能够通过一篇文章,把简单的基础知识分享给大家,既能增加对SRT的理解,也可以了解SRT的简单原理,这样在工作中,无论是在搭建传输系统时,还是在使用设备的过程中,都能够游刃有余的解决问题;同时,如果要将这些知识清晰的梳理出来,对我自己也是一次系统学习SRT知识的机会,于公于私,这都是一件值得去做的事。

当然,SRT Alliance提供了相应的指导文档《SRT Deployment Guide, v1.1, Issue 01》,我也是从这份文档开始学习起来的,但是截至到写这篇文章为止,我还没有看到相应的中文版本,这对于一部分国内的用户来说使用起来就会不太方便。

于是,当这两件事同时出现的时候,我写这篇文档的思路也就逐渐清晰了:依托于SRT Alliance这篇指导文档的内容以及逻辑结构,同时加入我自己的思考和想法,再通过高骏SRT设备作为操作界面呈现出来,最终形成一篇中文版本的技术分享文档。

在这篇文章中,我大量借鉴了《SRT Deployment Guide, v1.1, Issue 01》的内容,很多语句都是我将原文翻译过来的,所以难免会有翻译不准、措辞不当的地方;同时,在文中会涉及传输协议、传输纠错机制、防火墙等一些专业知识,其中大多是我通过自学的途径来掌握的,没办法做到准确无误。所以如果有各方面的专业人士发现了我在翻译、描述中的错误,非常希望您能帮我指出问题,我将感激不尽,您可以通过我的个人邮箱联系到我:lzrfighting@hotmail.com。

原本为了让这篇文章更好的散播出去,我是将它分成四部分在高骏公司的微信公众号上连载发布的,但是弊端就是在推送时间之后,不方便大家再去查找相关的内容,所以这次主要是将原来的连载文章合并起来,并进行必要的修正,形成完整版的文档,分享给大家。

如果您对SRT Alliance的原文文档感兴趣,可以从以下链接中下载阅读,本文参考、涉及的文档包括:
《SRT Deployment Guide, v1.1, Issue 01》下载链接:www3.haivision.com/srt-alliance-guide
《Haivision SRT Open Source White Paper》下载链接:www3.haivision.com/srt-open-source-wp

最后,感谢以往教会我各种知识和技能的师傅、领导、同事、同学和朋友,你们给予我的每一点知识对我来说都非常重要!也感谢SRT Alliance给我们提供如此强大的技术以及相关的指导文档,使我们有机会在工作和生活中学习、应用到SRT技术,也希望你们不断壮大,给所有的使用者带来更多的便利。

序 言
传统的IP编解码器大多直接使用UDP等不可靠传输协议直接进行传输,无法解决公网环境下的抖动与丢包问题,因此,这类编解码器方案无法直接应用于普通互联网传输的场景。

而高骏(北京)科技有限公司推出的使用SRT可靠传输技术的编解码器和媒体网关产品,可成功实现在普通互联网环境下、多地之间,安全可靠的高清视频传输、分发功能。

那么,如此方便好用的功能究竟是如何实现的呢?

为了让大家对SRT传输设备有更深入的了解,将这些看似深奥、复杂的技术和产品变得平易近人,我特意写了这篇文档,与大家分享和讨论SRT技术以及高骏互联网传输设备。文章将分为四部分:什么是SRT,SRT协议解析,实际使用场景和配置SRT传输参数,文章思路由浅入深,由理论到应用,尽可能地将SRT协议清晰地介绍给每一个阅读这篇文章的朋友,希望大家能够从中有所收获。

Chapter 1. 什么是SRT?
1.1. SRT 联盟
想了解SRT技术,我们可以从SRT联盟说起,这是一个由Haivision和Wowza合作成立的,致力于管理和支持SRT协议开源应用的组织,这个组织致力于促进视频流解决方案的互通性,以及推动视频产业先驱协作前进,实现低延时网络视频传输。

1.2. SRT传输技术
SRT(Secure Reliable Transport)是一种能够在复杂网络环境下实时、准确地传输数据流的网络传输技术,它在传输层使用UDP协议,虽然UDP协议是一种不可靠传输协议,但是凭借SRT强大的数据恢复能力,再加上UDP协议自身速度快、开销低的特点,最终实现了SRT安全、稳定、快速的传输效果。

图1-2 SRT Open Source官方logo
(图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》)

SRT是一种面向连接的点对点协议,每一路SRT流仅需一个UDP连接,其中除了一路要传输的数据流外,还包含了双向的控制信息。

协议的特点有如其名字:通过加密保证传输内容的安全;在严重丢包的情况下可靠地恢复数据流;动态适应时刻变化地网络情况传输数据。

得力于其可靠的传输质量和极低的传输延时,SRT技术被广泛应用于视频流传输领域。

在音视频流从SRT源设备(如下图中编码器)传输到SRT目标设备(如下图中解码器)的过程中,SRT会实时地检测和适应两台设备间不断变化的网络状态,抵抗由于网络拥塞而导致的带宽抖动,凭借其强大的错误恢复机制,将网络丢包的可能性降到最低。同时SRT还可以进行AES加密,从而确保数据在传输过程中的信息安全。

图1-3 SRT技术的典型传输方式
*注: 文章中将分别以蓝、黄两种颜色强调SRT源设备和SRT目标设备,方便大家理解描述语句。

1.3. SRT的典型应用模式
由于SRT技术安全、可靠、快速的特点,它可以适应各种各样的使用需求。而且,有SRT协议的存在,即使你不掌握复杂的IP路由和交换知识,也可以快速地建立起视频传输通道,完成视频传输任务。

这里,我简单列出几个最典型的应用模式:

1.3.1. 点对点单向传输和视频互动
SRT最简单的应用方式,就是在两点之间进行视频传输工作,比如进行单向视频传输,将视频从A地传输到B地;或者两地互传,实现两地间的双向视频互动。

图1-4 点对点单向视频传输

图1-5 点对点双向视频互动
*注:
1. HDE-650S:SRT互联网传输编码器,支持4:2:2编码;
2. HDD-461:SRT互联网传输解码器;
3. 两台设备搭配使用最低支持40ms超低编解码延时。

这里对HDE-650S和HDD-461先做一个简要的介绍,它们是专业的视频编解码设备,分别可以输入和输出多种基带信号格式,支持ASI、UDP和SRT等多种码流格式的输出、输入,支持4:2:2编码,编解码延时最低可达40ms,是理想的编解码解决方案。

图1-6 HDE-650S和HDD-461的输入与输出

1.3.2. 点对多点传输
通过使用高骏SMH媒体网关,可以将一个编码器发出地视频流,分发给多个解码器,以SMH媒体网关为中心节点,先接收编码器发出地视频流,再将其复制、分发给多个解码器,从而实现点到多点的视频传输。

图1-7 点对多点视频传输
*注:
SMH:SRT媒体网关。在这里,SMH媒体网关既是SRT目标设备,接收来自编码器HDE-650S的视频流;同时也是SRT源设备,将视频流发送给多个解码器HDD-461。

1.3.3. 视频流协议转换与分发
凭借媒体网关设备,可以实现SRT、TS over UDP、RTMP PULL/PUSH等多种视频流协议的输入与输出,并对各路视频流进行复制、转换、分发等工作,这大大增加SRT系统的兼容性,使本地TS over UDP和RTMP流能够顺利融入SRT系统,提高视频转发的灵活性。

图1-8 通过SMH媒体网关完成视频流协议的转换与分发

Chapter 2. SRT协议解析
为了让各位对SRT有更深入的了解,下面让我们一起来看看SRT是如何工作的。

2.1. SRT工作原理
要说SRT的工作原理,我们先从其纠错机制说起。

下图描述了在数据包传输过程中,不使用数据纠错,使用FEC(Forward Error Correction)纠错,和使用ARQ(Automatic Repeat request)纠错三种链路传输纠错方式的模式和结果。

如果没有数据纠错,结果自不必说,一旦发生丢包,得到的就是不完整的数据流,如下图。

图2-1 数据包传输时没有纠错机制
(图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》)

如果使用FEC纠错,则会在传输的数据流中加入一定比例的前向纠错数据,当发生丢包时,接收端就可以根据前向纠错数据,恢复丢掉的数据包,如下图。

但是使用FEC就必须面对这样的问题:无论是否产生丢包,前向纠错数据都需要占用一定的传输带宽;而且当丢包率超过前向纠错数据能够恢复的阈值时,FEC将无法恢复丢失的数据包。

图2-2 数据包传输时使用FEC纠错
(图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》)

如果使用ARQ纠错,就需要在发送端和接收端之间建立双向连接。在接收端收到数据包后,会按照数据包的顺序进行排序(传输过程中数据包可能会发生乱序),如果发现其中有丢失的数据包,就会向发送端发出重传请求,由发送端将丢失的数据包重新发送到接收端,从而实现数据包的恢复,如下图。


图2-3 数据包传输时使用ARQ纠错
(图片来自SRT Alliance白皮书《Haivision SRT Open Source White Paper》)

而我们说的SRT技术,正是使用的ARQ纠错机制,这主要是因为在网络传输时,带宽抖动和丢包通常都是随机发生的,只有在网络出现问题的时候才需要纠错机制的介入,只需要在发生丢包之后让发送端重传丢失的数据包就可以了,这样既保证了传输的质量,同时又能减少无谓地消耗传输带宽;除此之外,SRT会为数据包提供更精准的时间戳,让接收端能够准确校准媒体流的包顺序,保证传输正常。

之前已经说过,SRT协议依靠双向传输的UDP流来保证公网环境下的视频传输质量。除了从SRT源设备到SRT目标设备持续发送视频数据外,在两台设备之间还会持续地交换SRT控制信息,以此来在两台设备之间实现以UDP为底层协议的连接,进行信息交互,确保视频数据能够准确地传输到接收端。

图2-4 SRT连接中的双向UDP流
*注:
1. SRT源设备发送的UDP流包含数据业务流和SRT控制信息;
2. SRT目标设备接收源设备发来的UDP流,同时回复相应的SRT控制信息。

为了让SRT保持连接状态,必须确保控制信息数据包的发送间隔不超过10ms。每当SRT目标设备收到一个数据包后,都会回复一个“ACK”确认控制信息数据包,告诉SRT源设备已经收到这个数据包了,如果在10ms内收到多个数据包,则只回复一个“ACK”,确认这期间收到的所有数据包;然而,数据包的到达时间间隔难免会超过10ms,这时就需要增加“keep alive”控制信息数据包,确保SRT连接不会断开。

在SRT连接中,从目标设备返回源设备的控制信息通道也会占用一定的带宽。在业务数据完全正常传输的情况下(即没有错误信息需要返回到发送端),控制信息占用带宽大约为40Kbps;传输时丢失的数据包越多,目标设备发出的控制信息就越多,信息量会与丢包率线性相关,每丢失1个数据包,大约会消耗400bps的可用带宽。

2.2. SRT握手模式
现在我们已经知道SRT的工作原理了,那么一个SRT连接又是如何建立的呢?要清楚这个问题,我们就不得不了解SRT握手模式:Caller & Listener和Rendezvous。

在讨论建立SRT连接时,我们不需要区分SRT源设备和SRT目标设备,发送端和接收端都可以发起建立SRT连接,我们只要知道哪端的设备满足设置相应模式的网络需求即可。

2.2.1. Caller模式
✦ 功能:
设置Caller模式的设备将作为SRT会话的发起者,它必须知道对应设置Listener模式的设备的公网IP地址及其监听的UDP端口。

✦ 使用场景:
①让一台设备发起建立一个点对点传输的SRT连接;
②设备所在的网络有防火墙,但没有防火墙操作权限;
③设备的IP地址是DHCP动态获取的;
④设备没有固定的公网IP地址。

2.2.2. Listener模式
✦ 功能:
设置Listener模式的设备会监听发起SRT会话的请求,它需要知道应该使用的UDP端口(如网络管理员分配给SRT传输使用的UDP端口),并一直在这个端口上监听发起SRT会话的请求。

✦ 使用场景:
①让一台设备监听发起SRT会话的请求;
②设备所在的网络有防火墙,并且可以控制防火墙,打开需要的UDP端口;
③设备直接暴露在公网环境下。

2.2.3. Rendezvous模式
✦ 功能:
两台设置Rendezvous模式的设备会共同协商,通过相同的UDP端口号建立一个SRT会话。

✦ 使用场景:
①两台设备所在的网络都有防火墙,但是没有防火墙的操作权限,如果防火墙设置了适当的工作模式(将在Chapter 3.实际应用场景中详细介绍),可通过此模式建立SRT会话。

一旦完成SRT连接的建立,SRT源设备和SRT目标设备便开始交换控制信息,如网络状况信息、丢失的数据包等等,无论设备设置的是Caller、Listener还是Rendezvous模式都无关紧要了,直接利用建立起来的SRT通道去传输数据就可以了。

2.3. SRT如何建立连接
那么这三种握手模式实际又是如何把SRT会话建立起来的呢,下面我们通过简单的图示来了解这个过程。

2.3.1. 由SRT源设备发起建立SRT连接
如下图,将编码器HDE-650S设置为Caller模式,解码器HDD-461设置为Listener模式,编码器(Caller)将向设置的UDP端口连续发送控制信息数据包,请求建立SRT连接(图中①),当解码器(Listener)收到这些数据包后,便开始回复它自己的控制信息数据包(图中②),一旦握手成功,编码器便开始在UDP流中增加视频流,开始视频传输(图中③)。

图2-5 SRT源设备发起建立SRT连接的过程

2.3.2. 由SRT目标设备发起建立SRT连接
如下图,将编码器HDE-650S设置为Listener模式,解码器HDD-461设置为Caller模式,解码器(Caller)将向设置的UDP端口连续发送控制信息数据包,请求建立SRT连接(图中①),当编码器(Listener)收到这些数据包后,便开始回复它自己的控制信息数据包(图中②),一旦握手成功,编码器便开始在UDP流中增加视频流,开始视频传输(图中③)。

图2-6 SRT目标设备发起建立SRT连接的过程

2.3.3. 使用Rendezvous模式建立SRT连接
如下图,SRT源设备和SRT目标设备同时设置为Rendezvous模式,两台设备一起向对方发送控制信息数据包,一旦握手成功,编码器便开始在UDP流中增加视频流,开始视频传输。

图2-7 使用Rendezvous模式建立SRT连接的过程

2.4. SRT与防火墙
在实际使用场景中,特别是在通过互联网进行数据传输时,终端设备通常都会经过防火墙再连接到互联网,SRT流就必须穿过防火墙进行传输。这种情况下,我们就需要网络管理员来帮忙对防火墙进行适当的配置,尤其像网络地址转换(NAT)和数据包过滤的设置,防火墙的配置情况将会决定设备使用哪一种握手模式。

下图中,一台编码器尝试通过互联网将视频流发送给解码器,两台设备都在防火墙后。我们不妨假设编码器使用Caller模式,解码器使用Listener模式,为了使它们握手成功,并建立SRT会话,就必须满足下列条件:
① 解码器端的防火墙需要允许某个供SRT使用的UDP端口可以从互联网接入;
② 编码器必须知道解码器端防火墙的公网IP和开放的UDP端口;
③ 两端的防火墙都要允许双向UDP传输;
④ 两端的防火墙都要配置端口转发,允许编码器和解码器之间的数据流传输;
⑤ 两端的防火墙都要关闭数据包过滤功能,允许编码器和解码器之间的交互数据包通过。

图2-9 经过防火墙进行视频传输

Chapter 3. 实际应用场景
在了解SRT协议的基本原理后,我们可以尝试使用高骏公司的互联网编解码器模拟来进行视频传输,感受一下协议中提到的参数是如何在实际应用中体现的。

3.1. 在公网环境下开启视频传输:Caller & Listener模式
让我们再来简单复习一下Caller和Listener模式建立SRT连接的工作机制。其实直接从字面含义就能够对他们的关系有所认识了,SRT握手模式设置为Caller模式的一端,需要负责“呼叫”预先选定的UDP端口(即向Listener端公网IP的这个UDP端口发送数据包),从而发起一个SRT握手以建立连接;而SRT握手模式设置为Listener的一端,则需要负责“监听”预先选定的UDP端口,时刻准备回应Caller端发来的建立SRT握手请求的数据包。

那么在实际应用时我们应该如何来将Caller + Listener模式的理论付诸实践呢?我们先来假设有这样一个应用场景:

某公司有固定的视频传输任务,需要将视频从广州办事处实时传输到北京总部,由于资源问题,只有北京总部可以提供公网IP以及可用的UDP端口,而办事处只能提供互联网连接。

图3-1 使用互联网将视频从广州实时传输到北京

根据现有的资源条件,我们可以这样设置SRT来建立视频传输连接:

由于北京总部可以提供公网IP(203.0.113.74)以及可用的UDP端口,这里假设防火墙打开的UDP端口号为12345,那么,我们就需要将北京的SRT设备(HDD-461)设置为Listener模式,并监听12345号UDP端口,准备建立SRT连接;相应的,广州的SRT 设备(HDE-650S)需要设置为Caller模式,只需要能够接入互联网即可,它将向北京总部的公网IP 203.0.113.74的UDP端口12345发送控制信息数据包,尝试通过此端口来建立SRT连接。

按照以上描述,我们就可以得到这样一个SRT源设备(HDE-650S)和SRT目标设备(HDD-461)的网络关系图:

图3-2 HDE-650S和HDD-461的网络关系图

那么我们应该如何在编解码器中设置这些SRT参数呢?

首先来看编码器HDE-650S,参考下图HDE-650S的SRT输出设置(编码器的其他参数设置不在此处表现):
①打开SRT输出,将“Output Enable”设置为“Enable”;
②编码器使用Caller模式,将“Connection Mode”设置为“Caller”;
③“Address”一项填入北京总部提供的公网IP地址“203.0.113.74”;
④“Destination Port”一项填入北京总部提供的UDP端口号“12345”;
⑤“Latency” (传输延时)、“Encryption”(加密)、“Bandwidth Overhead”(带宽开销)、“Time To Live”(TTL)、“Type of Service”(ToS)可使用默认值。

图3-3 HDE-650S的SRT输出设置

然后我们再来看解码器HDD-461,参考下图HDD-461的输入设置(解码器的其他参数设置不在此处表现):
①“Input Name”可以填写一个方便识别的任务名称,此处设置为“SRT_Listener”;
②“Input Source”选择“SRT”,设置为SRT模式;
③解码器使用Listener模式,“SRT Mode”设置为“Listener”;
④“Listener Port”一项填入选择的UDP端口号“12345”;
⑤“Latency” (传输延时)、“Encryption”(加密)、“Bandwidth Overhead”(带宽开销)、“Time To Live”(TTL)、“Type of Service”(ToS)可使用默认值。

图3-4 HDD-461的输入设置

正常情况下,完成上述配置后,编码器和解码器即可顺利完成SRT握手,并开始传输视频流,如下图,图中显示SRT状态为“Connected”,证明SRT连接正常,在解码器HDD-461中可以看到,正在对接收到的视频流进行解码。

图3-5 连接成功后的编解码器状态

3.2. 在公网环境下开启视频传输:Rendezvous模式
我们在上次的文章中说过,Rendezvous模式可以在两端防火墙都没有做端口转发规则时建立SRT连接,从而实现两点之间的视频传输。这时,需要在两端分别设置对方的出口公网IP以及相同的端口号,这样,两台设备将同时向对方的出口公网IP发送控制信息数据包,用来建立SRT连接。

我们继续使用前面的例子来模拟,但是更换一个使用场景:

某公司临时决定从广州办事处将视频信号实时传输到北京总部,来不及申请在防火墙中做端口转发规则,所以两端的设备都没办法通过对方公网IP的某个特定端口来直接找到对方。

这时,就可以使用Rendezvous模式来建立SRT连接,我们需要将北京的SRT设备(HDD-461)设置为Rendezvous模式,并写入广州办事处SRT设备的出口公网IP地址和一个没有被使用的UDP端口号,同时,再将广州的SRT 设备(HDE-650S)也设置为Rendezvous模式,并写入北京总部SRT设备的出口公网IP地址和相同的UDP端口号,这样就可以建立起SRT连接了,我们同样画出一个SRT源设备(HDE-650S)和SRT目标设备(HDD-461)的网络关系图:

图3-6 HDE-650S和HDD-461的网络关系图

按照图中的相互关系,我们继续使用编解码器来设置相应的参数。

首先来看编码器HDE-650S,参考下图HDE-650S的SRT输出设置(编码器的其他参数设置不在此处表现):
①打开SRT输出,将“Output Enable”设置为“Enable”;
②编码器使用Rendezvous模式,将“Connection Mode”设置为“Rendezvous”;
③“Address”一项填入北京总部解码器HDD-461的出口公网IP地址“203.0.113.74”;
④“Destination Port”一项填入一个没有被使用的UDP端口号“12345”;
⑤“Latency” (传输延时)、“Encryption”(加密)、“Bandwidth Overhead”(带宽开销)、“Time To Live”(TTL)、“Type of Service”(ToS)可使用默认值。

图3-7 HDE-650S的SRT输出设置

然后我们再来看解码器HDD-461,参考下图HDD-461的输入设置(解码器的其他参数设置不在此处表现):
①“Input Name”可以填写一个方便识别的任务名称,此处设置为“SRT_Rendezvous”;
②“Input Source”选择“SRT”,设置为SRT模式;
③解码器使用Rendezvous模式,“SRT Mode”设置为“Rendezvous”;
④“Address”一项填入广州办事处编码器HDE-650S的出口公网IP地址“198.51.100.182;
⑤“Listener Port”一项填入选择的UDP端口号“12345”;
⑥“Latency” (传输延时)、“Encryption”(加密)、“Bandwidth Overhead”(带宽开销)、“Time To Live”(TTL)、“Type of Service”(ToS)可使用默认值。

图3-8 HDD-461的输入设置

如果一切正常,完成这些配置后,这家公司北京的领导应该就能看到广州办的实时视频了。

3.3. 探讨:Rendezvous模式与防火墙
我们在前面的模拟场景中很轻松就完成了Rendezvous模式下的SRT连接,看似水到渠成,然而实际情况并不是这么简单,在这背后还隐藏着一些网络的相关知识,下面我们就来简单讨论一下SRT使用Rendezvous模式穿过防火墙建立连接的情况,毕竟知其然,也要知其所以然。

当然,网络安全与防火墙是一门很深奥的专业网络知识,我的能力有限,就不跟大家讨论深层次的内容了,这里只针对和SRT相关的知识做简单的分享。

图3-9 负责网络安全的防火墙
(图片来自网络)

首先,我们需要知道,在使用Rendezvous模式时,设备发出的控制信息数据包的源端口与目的端口都是一样的。在之前的例子中,编码器发出的控制信息数据包的源端口为12345,目标端口也是12345,同样的,解码器发出的控制信息数据包的源端口和目标端口也都是12345。换句话说,这“四个”端口号相同是Rendezvous模式穿越防火墙建立SRT连接的必要条件。

因此,在编解码器之间的防火墙就必须确保不转换数据包包头中的端口号。


图3-10 Rendezvous模式下两端使用相同的端口号穿过防火墙建立SRT连接

现在市场上能够见到的防火墙,基本都是能够进行状态检测的状态防火墙(stateful firewall,现在由于这个功能过于普遍,也就不再有人特意提出这个概念了),它能够进行状态数据包检查或状态查看,实现连接追踪(connection tracking)的功能,而Rendezvous模式正是倚靠这个功能来创建一个贯穿两个防火墙的网络通道,并在其中进行数据传输。

防火墙在工作时,会根据正在传输的流量,创建一个连接追踪表(connection tracking table),并保持动态更新。

例如在上图中,在防火墙A中的连接追踪表会记录下源设备HDE-650S的内网IP和端口号、NAT转换后的公网IP和端口号、以及访问的目标设备HDD-461防火墙的公网IP和端口,如下表:

这时,当对端发来数据包时,防火墙A的连接追踪表还会记录下另一条反向入站信息,如下表:

当反向的数据包到达防火墙A时,发送数据与接收数据相同的端口号会对防火墙A产生“欺骗”效果,让它认为收到的入站数据是对出站数据的回复消息,从而允许数据包通过防火墙,一直到这个传输会话断开,SRT连接也就这样建立起来了。

在大多数非专业场景中,我们用的网络设备都是使用PAT(NAT重载)进行公网IP到局域网IP的地址转换(如家用路由器等),这时,网络设备在转换地址时都会改变源端口号,所以Rendezvous模式大多无法使用,不如直接用路由器做静态端口映射规则来的方便,这样就可以在这端使用Listener的模式,监听映射的端口,另一端使用Caller模式建立连接;相比之下,Rendezvous模式反而是很少被用到。

Chapter 4. 配置SRT传输参数
当我们真正使用互联网去传输视频的时候,千变万化的网络环境是我们不得不面对的,要想在各种复杂的网络环境下都能顺利地传输视频,就必须要学会如何去优化SRT传输设置,还记得我们在上一章中使用默认配置的那些参数吗?他们就是让SRT工作在最佳状态的关键。

4.1. 参数名称解析
这一节,我将逐个向大家介绍会影响SRT传输性能的参数名称,他们包括:Round Trip Time(RTT,往返延时)、RTT Multiplier(RTT倍数)、Packet Loss Rate(丢包率)、Bandwidth Overhead(带宽开销)以及Latency(延时),SRT加密等。

4.1.1. Round Trip Time (RTT)
RTT(往返延时)表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。我们可以通过RTT知道两台设备(在我们的应用中,即为SRT源设备和SRT目标设备)在网络中的距离。在配置SRT传输时,我们就能以这个值为参考,设置带宽开销以及传输延时。

当两台设备连接在局域网的同一台交换机上时,RTT值几乎为0(小于1 ms),而随着基础设施建设越来越完善,即使跨越大洋,也可能得到很低的RTT值。

要想得到两台设备间的RTT值,我们可以使用ping命令。例如,如果我想知道我的电脑和Google在美国的免费DNS服务器8.8.8.8之间的RTT值,就可以使用电脑ping这个IP地址,从而得到他们之间的RTT值,如下图,我们从中可以知道,此时该网络链路RTT值平均约为50 ms。


图4-1 通过ping命令得到RTT的大小

除此之外,如果两台SRT设备已经建立连接,还可以在设备的“Statistics”统计信息中查看两台设备间的RTT值,如下图。


图4-2 在HDE-650S中SRT Statistics显示的RTT

4.1.2. RTT Multiplier
RTT Multiplier是一个用于计算SRT延时的数值,它可以反应出网络拥塞程度和RTT之间的关系,随着网络拥塞的增加,SRT控制信息数据包的交换量以及丢包的重传量也会随之增加,这些额外传输的数据包的传输时间都会受限于RTT,所以,为了抵消掉这些数据包的传输延时,就必须要增加SRT延时,而调整SRT延时的依据就是RTT Multiplier了,他们的关系如下:

SRT Latency = RTT Multiplier * RTT

我们也可以换一个RTT Multiplier的理解方式:它表示了在SRT传输中,对一个数据包的最大重传次数。当然,这个值不会直接出现在SRT的配置参数中,而是用于计算最理想的理论SRT延时。

4.1.3. Packet Loss Rate
Packet Loss Rate(丢包率)这个参数大家就再熟悉不过了,它通常表示丢掉的数据包占总发送数据包的百分比。在SRT传输中,我们可以把出现丢包的情况大致分为两种,在不同的情况下,分别会对我们设置Bandwidth Overhead有不同的影响:

✦ Constant loss(稳定的丢包)
即链路的丢包率不会出现太大波动,基本处于一个恒定的数值。在这种情况下,要想稳定传输,就要求SRT开销应不小于此时的理论最小值(如下公式):

Minimum Bandwidth Overhead = 1.65 * Packet Loss Rate

✦ Burst loss(爆发式丢包)
即链路会出现大量连续的丢包,并且丢包量达到或超过SRT latency buffer(缓存区)内缓存的数据包量。在这种情况下,要想稳定传输,要求SRT开销应不小于此时的理论最小值(如下公式):

Minimum Bandwidth Overhead = 100 ÷ RTT Multiplier

这种爆发式丢包一旦持续时间超过了设置的SRT延时,将会导致接收端收到的流中断,所以,SRT传输延时应该保证永远大于最差网络环境下的网络持续丢包时间。

4.1.4. Bandwidth Overhead
Bandwidth Overhead(带宽开销)是一个根据网络链路质量设置的百分比值,用这个百分比值乘以编码器编码的视音频总码率,就可以得到Bandwidth Overhead允许的最大开销,这个值与视音频码率的总和就是当前SRT传输带宽的最大值了,也就是这个SRT通道可以使用的最大带宽。

它的作用首先是传输伴随SRT流的控制信息数据包,另外还包括所有媒体数据包的重传,所使用的网络链路条件越差,就需要越多的控制信息数据包的交互以及媒体数据包的重传,也就需要设置越大的Bandwidth Overhead值。

如果从“开销”的角度理解,它就是在传输所需的媒体内容(可以理解为载荷payload)外,额外要占用的“无效”带宽,但它与我们常见的协议开销、TCP首部开销、UDP首部开销有所区别,这里的带宽开销并不是固定的20~60字节TCP首部开销或8字节UDP首部开销,而是根据网络情况实时变化的,网络链路条件越差,正常传输所需的开销就越多。

图4-3 HDE-650S中的SRT Bandwidth Overhead设置

在高骏SRT设备中,Bandwidth Overhead的设置范围是5%~100%,默认大小为25%。

为了让大家对Bandwidth Overhead这个概念理解得更清晰,下面我们举个例子来说明。

假如需要使用HDE-650S实时传输视频,设置视频编码码率为2000 kbps,音频码率为128 kbps(只使用一对立体声),所以视音频的总码率为2128 kbps,我们可以算上一些元数据和其他附加数据,向上取整为2200 kbps,如果我们设置Bandwidth Overhead为默认值25%,那么为传输这段视频所保留的总带宽则为:

2200 + (25% * 2200) = 2750 kbps (2.75 Mbps)

这个值表示的是SRT传输可以使用的最大带宽,如果在网络传输的过程中没有产生丢包,那么就只会使用很少量的开销来进行控制。通常只要能保证SRT总带宽不超过在两台SRT设备间的的可用带宽,数据流就能够保证顺利地传输。

4.1.5. Latency
Latency(延时)对大家也是一个很熟悉的概念了,具体来说,它在这里用来表示通过网络传输数据包的时间延迟。在高骏SRT设备中,Latency的设置范围是20 ms至8000 ms,而我们设置的这个延时大小,则代表了可用于管理SRT数据包的最大buffer(缓存区)的大小。

在SRT传输中,SRT源设备需要将它发出的数据包在buffer内排序,用于进行传输和重传,在SRT源设备的buffer内会保存那些还没有被SRT目标设备确认收到的数据包。

而SRT目标设备则需要将它收到的数据包(在收到时可能是乱序的)存储在buffer内,并以正确的顺序排列,确保之后的解码正常,在SRT目标设备的buffer内会保存那些已经收到并等待解码的数据包(包的顺序按16进制1到f)。


图4-4 SRT传输中的buffer

在传输过程中,我们应该确保SRT源设备缓存在buffer中的内容(换算成以毫秒为单位)始终低于设置的Latency值,同时保证SRT目标设备缓存在buffer中的内容不要减少到0,这样才能保证SRT目标设备正确的收到所有数据包。

SRT Latency是基于当前网络链路的性能来设置的(如我们前面说到的RTT与网络丢包率等),例如在一个较好的网络环境中,丢包率为0.1%-0.2%,那么根据经验可能将RTT Multiplier选为4就可以了,也就是:

SRT Latency = 4 * RTT

在使用时,我们在SRT源设备和SRT目标设备两端都可以设置Latency的大小,最终将取两个值中较大的一个为SRT传输延时。


图4-5 在HDD-461中SRT Statistics显示的Latency-Buffer-RTT图表

4.1.6. SRT加密
在使用SRT传输时,高骏SRT设备可以使用AES加密算法进行128位或256位的内容加密,并在SRT目标设备中解密,确保传输内容的安全。

要想打开加密功能,首先要在SRT源设备中选择“Encryption”项的加密类型(AES-128或AES-256),并在SRT源设备和SRT目标设备中的“Passphrase”栏内填写相同的加密口令。


图4-6 SRT中的AES加密

4.1.7. 传输过程中的Latency、Buffer和BW Overhead
了让前面介绍的几个参数更好理解,下面我们通过一张图表来将它们形象的表现出来,下图描述了在一次SRT传输过程中,传输数据量随着时间的变化图,期间由于一次网络问题,传输数据量降为零,短暂的链路断开后,又恢复了数据传输,具体如下:


图4-7 SRT传输过程中的传输数据量变化图
(图片来自SRT Alliance的指导文档《SRT Deployment Guide, v1.1, Issue 01》)
*注:
1. 绿色直线:表示该链路可用的最大带宽;
2. 红色虚线(偏上):表示根据流量带宽和BW Overhead计算得到的SRT最大带宽;
3. 红色虚线(偏下):表示正常情况下的流量带宽,即视频、音频、元数据等;
4. 蓝色曲线:表示传输数据量随时间变化的曲线;
5. 灰色区域:表示接收端buffer缓存的数据总量。

我们首先来解释一下接收端buffer,它是SRT目标设备缓存的数据包,我们在前面说过,它可以换算成以毫秒为单位的时间值,具体是如何做的呢,中间有这样一个简单的数学公式:

时间 = 缓存数据量大小 ÷ 流量带宽

而在上图中,灰色区域的面积就表示buffer内缓存的数据量,由于在链路故障点之前始终保证了稳定的传输码率,将buffer缓存一直维持在“满”的状态,所以灰色区域对应的时间轴长度与SRT延时基本相同。

在链路出现故障后,传输码率降为零,随后又重新建立起连接,再次开始传输,也就是说SRT目标设备在一段时间内没有收到任何数据包。

当SRT传输出现这样的情况时,SRT目标设备将用buffer中缓存的数据来保证输出给解码部分的数据流,设置的SRT延时越长,buffer中就能缓存的数据就越多。

随后,一旦链路恢复,SRT源设备就会重新开始传输数据,其中将包括重传在链路故障期间丢失的数据包,为了这部分重传数据,SRT就会使用到在正常流量带宽之外的“开销”部分。一般情况下,带宽开销的大小应该保证在可能出现的最坏的网络状态下,SRT源设备能够在爆发期(burst time,图中区域B)内传输链路故障期间传输失败的所有数据(图中区域A),也就是区域B的面积应与区域A的面积相等。

在保证输出图像连贯的条件下,SRT连接能够承受的链路故障(完全没有数据传输)的最长时间为:

SRT Latency (ms) * Bandwidth Overhead (%) ÷ 100

4.2. 基本设置方法
在我们设置SRT传输参数时,所使用的网络链路状态通常是千变万化,即便是相同的网络链路,不同时间也可能会有不同的网络状态,但是,不论何时,我们都要总结出一套通用的技巧,来有理有据地提供一系列初始设置参数,然后再根据实际的效果做出相应的调整,下面就让我来给大家介绍一些SRT的基本设置方法。

设置过程可以分为以下七步:

4.2.1. 检测网络链路的Round Trip Time(RTT)值
✦ 使用ping命令检测所使用的网络链路的RTT值;
✦ 如果已经建立起SRT连接,可以在SRT设备的Statistics统计页面中查询RTT值;
✦ 当RTT ≤ 20 ms时,应认为RTT值为20 ms,因为SRT不对时间单位低于20 ms的数据做出响应。

4.2.2. 检测网络链路的Packet Loss Rate(丢包率)
✦ 网络链路的丢包率将直接影响SRT延时和BW Overhead的计算,我们通常可以使用iperf来检测网络丢包率。

✦ 如果已经建立起SRT连接,可以在SRT设备的Statistics统计页面中获取网络链路的丢包率, Resent Bytes和Sent Bytes两个统计数据的比值即为网络丢包率,为了保证准确性,应该至少保证数据的统计时间超过60秒,网络链路丢包率计算公式如下:

Packet Loss Rate = Resent Bytes ÷ Sent Bytes * 100


图4-8 在HDE-650S中的SRT Statistics统计信息

4.2.3. 根据测得的网络丢包率,从下表中查找相应的RTT Multiplier和BW Overhead值

表4-1 不同丢包率时RTT Multiplier和BW Overhead的取值
(表格来自SRT Alliance的指导文档《SRT Deployment Guide, v1.1, Issue 01》)
*注:
1. 表格中的BW Overhead取值同时考虑了前文提到的Constant Loss和Burst Loss两种情况,取两种情况下计算得到的较大值(较大值全部为100 ÷ RTT Multiplier);
2. 表格中计算的最小SRT Latency为RTT ≤ 20 ms时(即RTT取值为20 ms),在实际使用时应代入实际测得的RTT值;
3. 表格中所列的数值,基本代表了一般情况下最高效的SRT设置,如果网络环境变得更差,或者希望系统容错率更高,也可以取更大的RTT倍数和BW Overhead值。

从表格中我们可以看到,随着网络丢包率的增高,RTT Multiplier顺理成章地逐渐变大,BW Overhead却在逐渐变小,为什么它会给出这样的建议呢?下面给大家分享一些我个人的想法。

我们前面已经介绍过,RTT Multiplier表示了SRT连接中一个数据包的最大重传次数,也就是说,在网络丢包率不超过1%时,表格建议设置最大3次重传就可以基本保证数据包能够传输到接收端了,而经过3次重传数据包都没能到达接收端的概率就是 (1/100)^3×100%=0.0001%(一百万分之一);以此类推,我们可以得到数据包最终丢失的概率公式为:

将上述函数画在二象限图表中,可得下图:

从上图中可知,如果按照表格中的RTT Multiplier值和BW Overhead值设置SRT传输参数,那么在传输过程中一个数据包最终没能到达接收端的概率将始终小于0.0002%(一百万分之二)。

我们不妨主观地判断,这个表格建议我们能够认为概率为0.0002%的事件是几乎不可能发生的事件(即数据包几乎不可能无法到达接收端),从而认定此时的SRT传输是安全的。

但是,为什么随着网络丢包率的增加,设置的BW Overhead值是在逐渐减小的呢?我们可以尝试按照表格中的规律,将网络丢包率、RTT Multiplier、BW Overhead的值继续推演下去,即以1%为单位逐渐增加网络丢包率,同时不断地增大RTT Multiplier值,来确保:

p^(RTT Multiplier)≤0.0002%,p为网络最高丢包率

并根据得到地网络丢包率和RTT Multiplier值,分别计算Constant Loss和Burst Loss两种情况下的BW Overhead的值,并将其绘制成图标如下(具体推演数据不在这里列出):

为了保证表格中的参数设置能够同时兼容Constant Loss和Burst Loss两种网络丢包情况下的SRT传输,BW Overhead应该取上图中较大的数值,而在网络丢包率不超过10%时,始终是Burst Loss状态下的BW Overhead的值更大,并且不断减小(上图中橙色线),所以我们才会看到表格中的BW Overhead值不断减小;而当网络丢包率超过10%后,就变成了Constant Loss状态下的BW Overhead的值更大,所以就应该选择数值较大的蓝色线,这之后BW Overhead将逐渐增大。

以上这些内容完全是我根据《SRT Deployment Guide, v1.1, Issue 01》中的参数表格所做的猜想,无论正确与否,希望能够给大家一点启发。

4.2.4. 通过以下公式确定SRT Latency
SRT Latency = RTT Multiplier * RTT

✦ 当RTT ≤ 20 ms时,RTT取值统一为20 ms。

4.2.5. 测试可用链路带宽
✦ 使用iperf测试;

✦ 如果已经建立起SRT连接,可以通过SRT设备Statistics统计页面中的Max Bandwidth和Path Max Bandwidth两个参数获取链路带宽信息。

图4-9 在HDE-650S中的SRT Statistics统计信息

4.2.6. 确定传输码率
✦ SRT传输码率将会包括视频、音频、元数据等有效数据,再加上SRT协议开销,我们可以得到如下关系式:
Channel Capacity>SRT Stream Bandwidth * (100 + Bandwidth Overhead) ÷ 100

✦ 如果不满足上述关系式,应减小视音频码率,直到满足;

✦ 通常情况下,建议保留出更多的空余带宽来抵抗不断变化的链路带宽,所以下面这个关系式会具有更强的安全性:

0.75 * Channel Capacity>SRT Stream Bandwidth * (100 + Bandwidth Overhead) ÷ 100

4.2.7. 检查SRT传输参数设置是否正确
✦ 检查SRT传输参数最好的方法,就是在开始进行SRT传输后,查看SRT源设备的Statistics统计页面图表, Send Buffer数值应该保持始终不超过SRT Latency的值,如果两条线十分接近,应当适当增加SRT延时。

4.2.8. 关于iPerf
iPerf是一个网络性能测试工具,通过它我们能够得到网络链路的带宽、延迟、抖动以及丢包等信息,从而判断一个网络链路的性能状态。

在常用的Windows平台中,我们可以在网上下载到iPerf应用程序,并放在系统目录 %systemroot% 中,通过命令行窗口来运行,需要注意,iPerf3(如iPerf 3.1.3)与iPerf(如iPerf 2.0.9)之间不兼容;除此之外,也可以选择带有用户界面的应用程序,这样就不需要牢记复杂的操作命令了,如下图:

图4-10 iPerf软件

这里,我只向大家介绍测试传输带宽所用的命令(使用iPerf 2.0.9),如果大家感兴趣,可以去研究iPerf更多的使用方式。

在开始测试前,应该先确保打开防火墙相应的端口,同时停止其他数据流的传输,保证测试结果的准确性。

在SRT传输的接收端,输入如下命令:

iperf -s -u -i 1 -p “port#”
-s:表示iperf为server模式;
-u:表示使用UDP协议;
-i 1:表示反馈信息的时间间隔为1秒;
-p “port#”:表示通过某一个端口号进行测试。

在SRT传输的发送端,输入如下命令:

iperf -c “IP ADDRESS OF DESTINATION” -u -b “BW” -i 1 -p “port#”
-c “IP ADDRESS OF DESTINATION”:表示iperf为client模式,访问server端的公网IP并进行测试;
-u:表示使用UDP协议;
-b “BW”:表示测试的带宽值;
-i 1:表示反馈信息的时间间隔为1秒;
-p “port#”:表示通过某一个端口号进行测试。

然后我们就可以在窗口中看到测试结果了。例如,我在一台电脑上同时运行iperf server和iperf client,将得到下图中的结果:


图4-11接收端的iPerf命令和测试结果

图4-12 发送端的iPerf命令和测试结果

从上图中可知,测试得到网络带宽能够满足5.5 Mbps(由命令中写的带宽值而来),网络抖动为0.000 ms,丢包率为0%。在真正的互联网环境下,我们就能够以此来判断网络链路的性能了。

4.3. SRT统计信息和优化传输设置
在进行SRT传输时,两端的设备会交互大量的网络条件信息和数据包传输信息,而正是这些重要的信息内容让SRT在传输视音频信息时能够使用最佳的传输策略,SRT设备会将其中一些重要的信息参数以曲线图的方式表现出来,让他们变得简单直观,而对于操作人员来说,能够理解这些参数所代表的意义对优化SRT传输设置至关重要。

4.3.1. HDE-650S中的链路统计信息(Link Statistics)
在HDE-650S的Statistics统计信息中,包含了SRT状态、传输和丢失的数据包数,码率、启动时长、网络状态信息等等参数,如下图:

图4-13 HDE-650S的Link Statistics统计信息

其中,可选择查看SRT协议或简单UDP协议的输出统计信息,简单UDP协议的输出统计信息只包含状态和码率,这里就不介绍了。另外可以选择曲线图的取样时间范围,可选择最近5分钟、最近60分钟或最近24小时内的统计数据信息。

Link Statistics中呈现的参数项包括:

注意事项:
✦ 首先应注意Status保持Connected状态,即保持SRT连接正常;
✦ 当发现Reconnections值不断变大时,表明两台设备间的网络通讯异常;
✦ 当Received NAKs值保持稳定上升时,证明在传输链路中存在某些网络问题,导致始终有一定量的数据包无法正常到达接收端;
✦ 如果发现Skipped Packets值缓慢增加,通常可以增加一些SRT Latency来解决;但是如果发现Skipped Packets的值会快速变大,那么就应该降低一些视频码率,如果有足够的可用带宽,也可以适当的增加Bandwidth Overhead。

在编码器HDE-650S的Link Statistics中,还可以看到两个曲线图,分别表现带宽和延时随时间变化的曲线,如下图:

图4-14 HDE-650S中的统计数据曲线

在上方的Bandwidth Used图中,我们可以看到传输码率曲线,以及设备预测的最大链路带宽(仅供参考)。

在Delays图中,则会体现在SRT传输过程中,buffer是如何来改善传输效果的,途中我们可以看到buffer和RTT随时间变化的曲线,而延时则作为基准线保持不动。

注意事项:
✦ 在编码器中,buffer的数值(绿色曲线)通常不会超过SRT延时的值(黑色直线),如果编码器的发送buffer曲线越过了Latency线,那么就需要增加SRT Latency的值。
✦ 如果编码器的发送buffer曲线经常会到达或越过Latency线,那么基本可以证明当前的网络带宽不足以支撑所要求的视频码率,此时就应该降低视频码率;如果编码器的发送buffer曲线只是偶尔会超过Latency线,这时就应该增加SRT延时。

4.3.2. HDD-461中的链路统计信息(Link Statistics)
在HDD-461的Statist城市统计信息中,可以看到SRT状态、重传、丢包数、带宽信息、网络状态信息等等参数,如下图:
图4-15 HDD-461的Link Statistics统计信息

其中,可以选择曲线图的取样时间范围,可选择最近5分钟、最近60分钟或最近24小时内的统计数据信息。

Link Statistics中呈现的参数项包括:

注意事项:
✦ 首先应注意Status保持Connected状态,即保持SRT连接正常;
✦ 当发现Reconnections值不断变大时,表明两台设备间的网络通讯异常;
✦ 传输时出现少量的Lost Packets属于正常现象;
✦ 如果发现Skipped Packets值缓慢增加,通常可以增加一些SRT Latency来解决;但是如果发现Skipped Packets的值会快速变大,那么就应该降低一些视频码率,如果有足够的可用带宽,也可以适当的增加Bandwidth Overhead百分比。

在解码器HDD-461的Link Statistics中,也有两个曲线图,同样表现带宽和延时随时间变化的曲线,如下图:

图4-16 HDD -461中的统计数据曲线

在上方的Bandwidth Used图中,我们可以看到传输码率曲线,丢包率曲线以及接收数据流传输所使用的带宽。

注意事项:
✦ 如果在解码器输出画面中出现太多的跳帧或丢帧,那么应该增加SRT延时,降低视频码率,和/或增加Bandwidth Overhead百分比

在Delays图中,同样会体现Buffer曲线与Latency线的关系。

注意事项:
✦ 理想状态下,解码器的buffer值应该十分接近Latency值,如果解码器的接收buffer经常降到0,通常是因为链路带宽不足以支撑所要求的传输码率,此时应该调低传输码率;如果解码器的buffer只是偶尔下降到0,则可以通过增加SRT延时来解决

结束语
当大家看完前面的内容,可能会有各种各样的想法,或是为语言的漏洞而感到不满,或是因我的不专业而觉得滑稽,但是无论如何,我都希望每个人在读过这些文字之后,多多少少能够有所收获,从而让我觉得自己反复推敲的措辞并不是徒劳,也让我能感受到写作、分享是快乐的,毕竟这是我第一次自发的、有思想的写东西出来。当然,如果你能帮我发现这篇文章中有的错误,或是有任何的意见和建议,还是希望你能通过我的邮箱告知我:lzrfighting@hotmail.com。

最后说回SRT这件事,我看到自SRT Alliance成立以来,已经有越来越多的公司和组织加入了这个联盟,如大家所熟识的微软、爱立信、IMT、罗德与施瓦茨等等,也有VLC这种开源媒体播放软件开始支持SRT,也许以后SRT真就成了手机和电脑上无处不在的东西了呢,到时候我写的这几段文字可能也就显得更加浅薄了,但是无论如何还是希望好的技术能够越来越强大,这样技术才能不断进步,人们的生活才能逐步改善。

2019年6月7日记:
就在我想要将这篇文档上传到CSDN的几天前,我看到SRT在官网上更新了一些新消息:一,是OBS将开始支持SRT ;二,SRT P2P,即SRT点到点传输;三,安全性提升;四,将支持FEC;五,将支持路由冗余。另外,Alliance官网上的Deployment Guide也对之前的版本做了更新,尤其在FQA部分增加了很多新的内容。我看到的SRT已经在开始逐步进化了,大家让它变得越来越强大、安全、稳定,也让它越来越具有普适性,我真心希望它能茁壮地成长起来。

如有错误请指正:

交流请加QQ群:62054820
QQ:379969650.

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. springboot扫盲写给自己看的

    springboot扫盲写给自己看的启动流程 启动流程构造springApplication类 构造函数里会去做 a ApplicationInlitializer 初始化器 对象 b.初始化ApplicationListener 即加载监听器的类 ,也可以自己定制 run方法 1.Environment配置 2.ApplicationContext容器的创建,及属性的设置 e…...

    2024/4/15 6:35:58
  2. CSS:09-CSS高级技巧

    CSS高级技巧 目标理解能说出元素显示隐藏最常见的写法 能说出精灵图产生的目的 能说出去除图片底侧空白缝隙的方法应用能写出最常见的鼠标样式 能使用精灵图技术 能用滑动门做导航栏案例1. 元素的显示与隐藏目的 让一个元素在页面中消失或者显示出来场景 类似网站广告,当我们点…...

    2024/4/15 6:36:03
  3. /dev/mapper/centos-root空间不足,新增磁盘并对root扩容。

    虚拟机/dev/mapper/centos-root满了,剩余空间20K……需要扩容。从网上帖子看大部分是将/dev/mapper/home的空间分给/root,结果df -lh直接傻眼了,可能是之前手动配置的。并没有/dev/mapper/home。 VMware直接修改磁盘空间,失败,不能做到。 故尝试加磁盘,然后将新加的空间分…...

    2024/4/18 3:43:15
  4. Centos7虚拟机yum安装mysql实现主从复制案例教程

    Centos7虚拟机yum安装mysql实现主从复制案例教程mysql安装navicat 链接mysql配置主从复制拓展 mysql安装首先,centos 默认安装有MariaDB, 属于mysql 分支, 安装mysql 时会覆盖掉MariaDB使用wget下载mysql 官方Repositorywget -i -c http://dev.mysql.com/get/mysql57-commun…...

    2024/4/16 14:04:29
  5. Python之Selenium如何正确运用?案例详解

    Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaScript动态渲染的页面来说,此种抓取方式非常有效。本节中,就让我们来感受一下它的强大之处吧。1. 准备工…...

    2024/4/16 14:04:19
  6. Java中Lambda表达式的学习

    Lambda表达式 1.函数式编程思想概述 在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。 2.Lam…...

    2024/4/16 23:02:46
  7. c++字符串操作

    从键盘输入任意的一个字符串 A,其长度 L 不小于 6,同时再输入一个整数 N(其中:1 < N <L + 1)作为插入点,以及任意的一个字符串 B,其长度为 L1(其长度为L1<L)现要求完成下列功能:如果字符串 A 的长度 L大于 100输出 100,否则输出 L; 在 N点处,插入字符串 B…...

    2024/4/17 13:53:20
  8. Android.mk 文件详解-1

    前言 最近在使用mk 进行编译系统。中间碰见了很多的问题,而最关键的就是在于针对mk文件的相关配置和属性参数不了解,才造成的错误,下面主要介绍下mk相关的配置指令的意义。 1.模板介绍 编译成so库 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS)# 库的名称值 LOCAL_MO…...

    2024/4/16 14:05:05
  9. dubbo springboot nacos 组合测试

    dubbo介绍 优秀的 RPC 服务治理框架,直接查看 官网. nacos 介绍 作为 注册中心 和 参数配置中心使用, 本次作为dubbo 服务注册发现中心,介绍查看官网. spring boot 注解方式配置 本次测试环境 springboot 2.2.6 dubbo 2.7.7 通过反复查看官网和官方demo, 其实基本可以不用 …...

    2024/4/16 14:05:00
  10. 2-2单元 -主机基本安全防护措施 —— SELinux 管理原则

    主机基本安全防护措施 —— SELinux 管理原则< 一 > SELinux 简介:SELinux使用委任式访问控制(Mandatory Access Control , MAC),它可以针对特定的程序与特定的文件资源来进行权限管理。工作模式:主体 (Subject) —— SELinux主要管理的就是程序 ;目标 (Object)…...

    2024/3/14 7:02:17
  11. 歌声合成full labels 解析(python版本)

    解析代码 # -*- coding:utf-8 -*- # /usr/bin/pythonimport re import numpy as np import pandas as pd from keras.models import * from keras.layers import * from keras.layers import * from keras import optimizers from keras.utils import np_utilsimport os.path…...

    2024/4/18 6:47:49
  12. 第七周、软件包管理与磁盘存储

    1、自建yum仓库,分别为网络源和本地源 1.1 基于光盘的yum源 [root@localhost ~]#cat /etc/yum.repos.d/cdrom.repo [cdrom] name=cdrom base baseurl=file:///misc/cd/ gpgcheck=1 gpgkey=file:///misc/cd/RPM-GPG-KEY-CentOS-$releasever[eple] name=aliyun epel baseurl=ht…...

    2024/3/13 23:37:57
  13. Java里面的next()和nextLine()的区别

    Java的next()和nextLine()@[YXG] next() 用Scanner方法记录键盘打印的String类型,当next()遇见空格时候,将会停止。 代码:System.out.println("请输入您的用户名: ");String name=input.next();System.out.println(name);结果:nextLine() 用Scanner方法记录键盘打…...

    2024/4/16 14:05:10
  14. js删除数组中指定值的元素/splice函数实例

    效果:输入一个数组和一个值,返回该值在数组的索引;如果不在,则返回-1 自己写一个返回当前值索引下标的函数: function returnindex(ids,id,length) {for(var x=0;x<length;x++){ //有效数组长度if (id==ids[x]){return x;}}return -1;}length可以直接使用ids.length,但…...

    2024/4/16 14:05:20
  15. 关于SQL查询时间问题

    1. 查询N条数据,取最高,最低,计算等。。。。select max(datavalue) as maxDataValue,min(datavalue) as minDataValue,count(1) as dataSize,sum(dataValue) as sumDataValue from RT_realDataDoubleValue查询所需要时间 0.482sselect datavalue from RT_realDataDoubleValu…...

    2024/4/16 14:05:10
  16. OpenCV:无法启动此程序,因为计算机中丢失opencv_core2410.dll

    OpenCV:无法启动此程序,因为计算机中丢失opencv_core2410.dll 解决办法: 将bin目录(我的是 G:\OpenCV\build\x64\vc10\bin)中的3个dll文件![(opencv_core2410.dll;opencv_core2410d.dll )(https://img-复制在(C:\Windows\System32)中。...

    2024/4/16 14:05:15
  17. 踩坑Hystrix:不显示详情,一直报Loading

    今天配置Hystrix,解决了Unable to connect to Command Metric Stream这个错误,进去之后还是显示不来详情,截图如下: 解决方法:给被监控的微服务随便发一个请求(加了@HystrixCommand的任意请求),就解决了!...

    2024/4/16 14:05:20
  18. 课堂笔记:JVM(一)

    JVMJVM内存结构 类加载机制和JDK的调优命令工具 GC格式日志 GC调优实践java虚拟机(java virtual mache,JVM),一种能够运行java字节码的虚拟机。作为一种编程语言的虚拟机,实际上不只是专用于java语言,只要生成的编译文件匹配对加载编译文件格式要求,任何语言都可以由JVM…...

    2024/4/16 14:05:00
  19. 【比特币】基金经理建议,如果标准普尔500指数走低,则购买比特币

    Albright Investment Group联合创始人Victor Dergunov表示,如果标准普尔500指数跌破,投资者应该考虑购买比特币。 即使跌至6.500美元,该加密货币的上行潜力也很大。 相对于标准普尔500指数走软,现货黄金还是一种有吸引力的投资选择。 维克多德古诺夫(Victor Dergunov)表示,…...

    2024/4/15 6:36:08
  20. Vagrant下CentOS的box安装Xdebug并开启phpstorm远程调试全过程亲测记录

    前言由于配置过程涉及IP、域名、项目目录,因此统一在这里先约定了,以便对照 服务器IP:192.168.1.8 客户机IP:192.168.1.16(也就是开发机) 项目名称:kol_server 项目所在客户机目录:E:\wwwroot\kol_server 项目所在服务器目录:/home/wwwroot/kol_server vagrant目录映射…...

    2024/4/18 21:05:25

最新文章

  1. 计算机网络练习-计算机网络体系结构与参考模型

    计算机网络分层结构 ----------------------------------------------------------------------------------------------------------------------------- 1.在ISO/OSI参考模型中&#xff0c;实现两个相邻结点间流量控制功能的是( )。 A.物理层 B. 数据链路层 C.网络层 D.传…...

    2024/4/19 4:45:54
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. C++ 【原型模式】

    简单介绍 原型模式是一种创建型设计模式 | 它使你能够复制已有对象&#xff0c;客户端不需要知道要复制的对象是哪个类的实例&#xff0c;只需通过原型工厂获取该对象的副本。 以后需要更改具体的类或添加新的原型类&#xff0c;客户端代码无需改变&#xff0c;只需修改原型工…...

    2024/4/19 0:29:52
  4. Verilog基础【二】

    3.1 Verilog 连续赋值 关键词&#xff1a;assign&#xff0c; 全加器 连续赋值语句是 Verilog 数据流建模的基本语句&#xff0c;用于对 wire 型变量进行赋值。&#xff1a; assign LHS_target RHS_expression &#xff1b;LHS&#xff08;left hand side&#xff09;…...

    2024/4/15 14:23:14
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/18 0:33:31
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/18 22:36:36
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/18 9:45:31
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/17 2:33:17
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/17 7:50:46
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/18 3:56:01
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/18 3:56:04
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/18 3:55:30
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/18 3:55:54
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/18 3:55:45
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/17 21:50:30
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/15 13:53:08
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/15 9:16:52
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/18 9:24:29
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/18 3:56:18
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/18 3:55:57
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/18 3:55:50
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/15 23:28:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/18 3:56:20
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/18 3:56:11
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57