精华内容
下载资源
问答
  • [img=https://img-bbs.csdn.net/upload/202009/15/1600180938_532339.jpg][/img] 如何利用windows设定 做到图片软件里面的 选项LAG 的效果就OK,谢谢 (all sending packets)[face]qq:83.gif[/face]
  • 而因为RTMP是基于TCP协议的,所以在播放的过程中会受到网络条件的影响,造成延迟增加的情况。 拉流侧的buffer queue 通过了解直播流的推流和拉流相关的知识,可以知道,根据推流端(推流策略)与服务器(缓存策略...

    【zz】干货 - 直播平台如何使用RTMP实现视频直播低延迟

    原文在这里

    两种延迟

    在直播的过程中,有首开延时和内容延时。
    首开延时,基本可以控制在100ms左右;
    基于RTMP播放的内容延迟根据CDN的情况,基本上会在2~5秒左右。而因为RTMP是基于TCP协议的,所以在播放的过程中会受到网络条件的影响,造成延迟增加的情况。

    拉流侧的buffer queue

    • 通过了解直播流的推流和拉流相关的知识,可以知道,根据推流端(推流策略)与服务器(缓存策略)不同的控制的设定,我们很可能拿到几秒之前的内容(甚至十几秒),可以通过对比拉流端与推流端的内容即可得知。而这些内容,在拉流端会把CDN服务器缓存的数据拉取过来**,这时buffer queue变大。那么,buffer queue越大,拉流端与推流端的延时越大。**

    webrtc能做到毫秒级别的延时

    • 直播普遍用的rtmp技术延时有3-5秒对一个主播直播,观众观看来说还能忍受,因为主播跟观众不需要实时互动,但其实观众也有这个需求的,所以直播时候就要求做到很低延时的互动;
    • 像视频会议、在线教育、远程医疗,或者娱乐圈人士跟粉丝互动的等,他们希望能得到更好的互动体验,就跟互动双方在现场一样的效果,也需要更低的延时,很显然目前的技术不能满足需求。正因为这些行业痛点跟需求,正好webrtc能做到毫秒级别的延时,很适合这些行业。

    那么如何实现低延迟。

    选择一条最优的路径

    要选择一条最优的路径,有很多方法。目前使用比较多的是网络测速,用户个人连接数据分析,和用户群体连接数据分析等几种方法来选择最优的网络路径。

    网络测速

    推流端在推流之前,向各个路径发送简单的数据包,然后根据数据包响应的时间来推测哪条路径最快。这个方法比较简单,有效然而有限:选出来的路径只是在该测试时间点最快的,而网络状况是随着时间变化的;另外,**简单数据包测出来速度比较快,并不代表流媒体传输数据速度也比较快。**因此,这个方法得到的结果只能作为一个指标来参考。

    大数据分析

    为了回避单个采样时间点测速导致的偏差,可以采取对历史大数据进行分析,预测哪个网络路径最优。对历史大数据进行的分析分为两个维度:用户个人连接数据分析和用户群体连接数据分析

    1) 用户个人连接数据分析

    每个主播用户的使用历史数据是有规律可循的。通过分析这些历史数据,可以发现主播用户从哪里接入,在什么时候接入,接入到哪个服务器,走什么路径的效果最优。这些历史数据积累得越丰富,历史数据分析得出来的结论就越靠谱。这个方法能够发现个人主播用户周期性的网络连接情况,能找出大部分时间连接效率最优的网络路径。

    2) 用户群体连接数据分析

    为了弥补用户个人连接数据分析的不足,这里引入另外一个维度的数据分析:某地区用户群体连接数据的分析。针对某用户所在区域的用户群进行历史数据分析,可以发现这个区域网络连接随着时间变化的规律,找出在不同的时间点,在不同的接入点连接到哪个服务器最好。

    单点网络测速,用户个人连接数据分析,再加上用户群体连接数据分析综合得到结论,就能比较有效地预测哪条路径最优。选路这部分需要不断地优化,才能积累丰富的用户数据,同时适应网络的变化。

    在这条路径上做到最优

    选好最优的路径以后,剩下的就是要在该路径上做到最优。这条路径包括了下面几个环节:采集,编码,推流,转码,分发,拉流,解码和渲染。在一个实时的音视频系统架构里,每个环节都会有一定程度的优化空间。行业内的小伙伴在这条路上已经有过很多探索,这里不想重复讨论别人已经探索过的议题,而只重点讨论下面几个关键点。

    选择协议

    传输协议的选择十分重要。传输协议一定程度上就决定了延迟的范围。选择传输协议的时候要考虑是推流端还是拉流端。推流端的协议有RTMP, WebRTC和基于UDP的私有协议。

    在直播协议的选择中,如果选择是RTMP或HTTP-FLV则意味着有2~5秒的内容延迟,但是就打开延迟来看,HTTP-FLV 要优于RTMP。HLS则有5~7秒的内容延迟。选择RTP进行直播则可以做到1秒内的直播延迟。

    但就目前所了解,各大CDN厂商没有支持基于RTP直播的,所以目前国内主流还是RTMP或HTTP-FLV。

    前向纠错和丢包重传

    前向纠错简称FEC,英文全称Forward Error Correction,是通过提前采取措施来对抗网络损伤。丢包重传主要针对丢包的情况下,有针对性地对丢失的数据包进行高效率的重传。准确来说,它们的直接目的不是为了降低延迟,而是为了对抗网络损伤。在不可预测的网络环境中,能很好地处理网络抖动带来的负面影响,间接也会降低了延迟,同时保证了稳定性和流畅性。

    一般来说,前向纠错和丢包重传互补使用,前者属于前验的方法,比较节省时间,但是占用多余的带宽;后者属于后验的方法,比较节省带宽,但是会消耗比较多的时间。在网络比较差情况下,丢包率比较高,那么可以通过前向纠错方法来保证信息完整送达。

    较好的做法是后端周期监控所有连接的缓冲队列的长度,这样队列长度与时间形成一个离散的函数关系,后端通过自研算法来分析这个离散函数,判断是否需要丢包。

    比如说发送冗余信息,确保在一定丢包率之下,接受方也能准确而完整的还原发送方所要发送的信息。在网络相对比较好的情况下,丢包率比较低,那么可以通过丢包重传的方法来保证信息完整送达。比如说针对丢掉的数据包,通过高效的机制进行重传,确保接受方能够完整的收到发送方所要发送的消息。

    >>>>缓冲自适应

    延迟和流畅两者本身就是一对矛盾的因素

    由于有网络抖动的存在,数据包的到达不是匀速的。最直接的降低延迟的方法就是把缓冲队列的长度设置为零,接收到什么数据包就直接渲染什么数据包,然而这样做的后果就是播放不流畅,会出现卡顿。因此,延迟和流畅两者本身就是一对矛盾的因素。

    在拉流端和混流服务器都需要建立缓冲队列

    我们要做的是寻找低延迟和流畅之间的平衡点,寻找平衡点的有效方法就是建立缓冲队列。在拉流端和混流服务器都需要建立缓冲队列。

    • 对于一个实时系统来说,缓冲队列的长度必须不是固定的,而是自适应的:当网络很好的时候,缓冲队列的长度就会变得比较短,接近零,甚至为零;

    • 当网络不好的情况下,缓冲队列的长度会变得比较长,但是不能超过能接受的上限,毕竟缓冲队列的长度本质上就是延迟的时间。

    • 另外,还可以把缓冲自适应技术和快播或慢播技术结合起来使用。

    • 当网络由差转好的情况下,可以适当的播得快一点,尽快缩短缓冲队列的长度。当网络由好转差的情况下,可以适当的播得慢一点,让缓冲队列适当变长,保持流畅性。

    • 快播和慢播是结合观众的心理学模型,在适合快播和慢播的条件下采用,让观众没有觉察出播放速度的变化,同时整体感觉也显得既流畅又低延迟。

    码率自适应

    由于网络环境的复杂多变,码率要能自动适应网络状况的变化,也就是所谓的码率自适应。在网络比较差的时候,要降低码率,让直播保持低延迟和流畅性;在网络比较好的时候,要提高码率,让直播保持高清画质。为了做到码率自适应,对协议选择也很考究。

    RTMP对码率自适应能做的事情比较有限,因为它基于TCP, **而TCP 下层已经做了网络质量控制,当网络出现拥塞的时候,上层应用不会及时得到通知。**基于UDP的私有协议更加适合做码率自适应,因为它基于UDP,而UDP只负责发包和收包,把网络质量控制交给应用层来做,这样应用层会有足够的空间来实现码率自适应。

    保持所有路径优质

    那么,为了在直播技术中实现低延迟,要选择一条最优路径,还要在该路径上做到最优。故事讲完了吗?没有,我们忘记了一个前提:整体的道路网络必须要足够好。道路网络不好,怎么选都是烂泥土路,选了烂泥土路,如何能够跑的快呢?因此,要实现低延迟,网络基建必须要足够好。网络基建的质量可以通过以下三个方面来提高:

    1) 全网充分覆盖:一般来说,音视频云服务的机房会分布在核心的几个枢纽城市,边远地区的用户的访问质量是得不到保障的。另外,在中国国内,各个网络运营商的覆盖面是参错不齐的,有些网络运营商对一些边远地区也是覆盖不足的。为了做到全网充分覆盖,可以采用多节点代理和重定向,来确保全网充分覆盖无盲点。

    2) 全方位保障QoE:网络接入点的覆盖面对QoE(Quality ofExperience)十分的重要。从苏宁科技的经验来看,通过部署遍布全球范围的接入点能够确保这一点。另外,由于在中国国内存在有“两张大网,多张小网”这样一个局面,BGP在这种情况下十分有必要。BGP能够很好地解决不同网络之间的互通问题。

    3) 优质的网络节点资源:音视频云服务是跑在网络基建上面的,下层网络基建的质量必须要优质,而且音视频云服务和下层网络基建也要深度结合。为了实现直播技术的低延迟,最好能对接一线的网络运营商,这样部署的网络节点资源无论是数量还是质量上都是有充分的保障。

    综合来说,要实现直播技术低延迟,必须要选好一条最优的路径,然后在该路径上做到最优,最后要确保所有路径的质量都是好的。道理就是那么简单,实现起来就是那么难,魔鬼都出在细节上。

    展开全文
  • 软件平均每秒五百次读写数据库操作,开始运行后0~2秒延迟出现,延迟似乎是周期性的,就像是每两秒数据库才响应。 一般情况肯定会觉得是...另外还有一点,当电脑连接Internet后延迟增加到3秒左右,请问应如何排查。
  • 什么会增加主从延迟?1 网络不好 2 从库硬件差 3 索引没做好,从库执行慢 4 从库锁等待,多见于myisam 5 主库写频繁,从库单线程执行慢 6 使用row复制,或mix使用行复制如何优化,减少延迟时间?1 如何写频繁,...

    1什么会增加主从延迟?

    1 网络不好
    2 从库硬件差
    3 索引没做好,从库执行慢
    4 从库锁等待,多见于myisam
    5 主库写频繁,从库单线程执行慢
    6 使用row复制,或mix使用行复制

    2如何优化,减少延迟时间?

    1 如何写频繁,水平拆分,减少单片写数量
    2 避免复杂DML操作

    3几个因为主从延迟发送异常的场景

    1 一个事务内有读和写操作
    2 修改后紧接着接口访问

    4业务上如何解决主从延迟?

    解决这个问题有以下几个思路:

    1. 流程优化避免写后立即读取
        a 业务流程上:写完成后接口返回,客户端再次调用接口获取数据,在这个过程中同步已经完成;
        b 代码上:写完成后缓存结果到局部变量,内存或缓存中,下次读取直接走缓存;
    
    
    2. 避免主从延迟,保证读写强一致性
         a  如果是一主一从,可以使用数据库提供的半同步复制,写完成时会等待从库同步完成后返回;但是强一致性会降低写吞吐量
         b  mysql5.6以后可以使用semi-sync功能,实现强一致性;
         c  线上读写都是使用主库,从库只做线下运营,分析使用;为了缓解数据库读写压力,在数据库上架构缓冲层;
    
    3. 强制读走主库
    
    4. 配置经验延迟时间,延迟时间范围内的查询走主库;
          a 中间件实现。很多中间件提供这种配置
          b 应用层实现。架构一个缓存层,对数据修改后将key保存在cache总,设置生存时间为经验延迟时间。查询时首先查询cache,如果找到key则强制走主库;
    

    另外,通过show slave status 字段‘Second_Behind_Master’可以检测主从延迟时间,在延迟较大时,将读切到读库,如果是使用中间件,可以配置强制读主库的延迟:slaveThreshold;这种方式不能保证读到脏数据,对一致性要求不高时可以使用;

    展开全文
  • 从摄像采集、采用视频编码器的压缩、图像的处理、流媒体格式转换传输,以及最后在接收端进行解码并最终呈现到显示屏上,任何改变视频内容和流传输的过程都会增加延迟。 选择适当的视频编码器来做各项应用领域中,...

    在选择视频编码器时,需要考虑直播将在什么样的网络条件下传输?从摄像采集、采用视频编码器的压缩、图像的处理、流媒体格式转换传输,以及最后在接收端进行解码并最终呈现到显示屏上,任何改变视频内容和流传输的过程都会增加延迟。

    选择适当的视频编码器来做各项应用领域中,建议考虑因素主要以下几点:
    低延迟
    网络适应性
    安全性
    高画质编码

    如果要通过internet从远程现场采集视频,则必须选择能够有效处理和控制不可预知的带宽波动、丢包和传输时间的视频编码器。
    千万不要让不可靠的网络损害您的直播信号质量。寻找支持SRT协议的视频编码器,该协议提供高级错误纠正,以防止视频马赛克和卡顿严重影响观看体验。SRT协议还可以用于直接传输到基于云的内容管理系统和视频分发网络。
    SRT协议它在UDT 的基础上进行了一些扩展和定制, 具备网络传输丢包检测/延迟控制/视频加密功能。

    如何选择稳定性高的网络直播编码器?
    企业选择视频编码器时需要注意的另一件事是它支持压缩编×××类型。HEVC(H.265)是H.264/AVC编×××标准的继承者。与H.264相比,HEVC可以在相同的图像质量下减少50%的带宽,或者在相同的码率下显著提高图像质量。虽然H.264仍被广泛用于视频直播,但大多数新的软件视频播放器和移动设备现在都开始支持HEVC。编码器能够支持哪些类型的视频输入源也很重要。如果是从专业的摄像机或切换台输出,你将需要SDI。如果直接从电脑采集图像,则可能需要支持HDMI输入。

    展开全文
  • ”为了避免Filecoin主网启动时矿工的短期行为(获取完早期区块奖励后便离开网络),鼓励矿工长期投资存储并留在网络,Filecoin引入了网络基准的概念,将区块奖励延迟释放。其基本思路是,随着网络上总存储算力的增加...

    ​9月8日,Filecoin官方发布经济系数更新。更新后的系数整体上降低了对矿工区块奖励抵押要求及运维风险,并有利于激励网络的长期发展。以下是我们对本次更新的介绍:

    01、“基线初始值提高和增长率下调,更持久激励经济发展。

    ”为了避免Filecoin主网启动时矿工的短期行为(获取完早期区块奖励后便离开网络),鼓励矿工长期投资存储并留在网络,Filecoin引入了网络基准的概念,将区块奖励延迟释放。其基本思路是,随着网络上总存储算力的增加,而提高区块奖励大小。实现方式是,将区块奖励分为“简单供应”(占区块奖励的30%)部分和“网络基线供应”(占区块奖励的70%)部分。“简单供应”奖励自主网上线起一直存在,而“网络基线供应”则根据网络规模发展情况进行调节,起到延迟释放奖励的作用。网络基线初始设置为 1EiB,并且每年以200%的速率增长。按照太空竞赛的10PiB/天网络增长速度,达到1EiB的网络基线大约需要100天。而本次系数更新提高了基线初始值,意味网络规模达到基准线需要更长的时间;而增长率下调,意味着网络基线之间间隔降低。综合来看,本次系数更新整体上降低了矿工前期的区块奖励,Filecoin网络的区块奖励更加趋于时间分散,利于更持久激励Filecoin网络发展。

    02、“区块奖励解锁20天延迟移除,即挖即开始解锁。”
    为了更充分的避免矿工随意放弃存储导致严重的数据丢失和服务质量降低,Filecoin要求矿工在前置抵押之外,增加区块奖励质押,以充分对未完成承诺期限存储的矿工进行惩罚。区块奖励是短期延迟+固定期限的线性释放,初始参数设置为“20+180天”。本次更新移除了20天的延迟期,意味着矿工在挖到区块奖励后,即可按照“180天线性释放”获得对应的FIL。

    03、“扇区故障检测费,扇区终止费下调,降低矿工运维风险。”
    Filecoin网络要求存储矿工主动检测、报告和修复扇区故障。而对于未主动报告而被网络检测到故障的,将被系统收取一次性扇区故障检测费作为惩罚。检测费初始设置为特定扇区所能为矿工获得的5天的区块奖励。通过自动故障检测(被动)或矿工作出决定(主动),在扇区到期之前终止扇区的,需要向矿工收取扇区终止费。在主动终止中,矿工决定违约并停止挖矿,支付终止费而离开。在故障终止中,一个扇区处于故障状态的时间过长(14天),链将终止存储订单并退还用户剩余订单费和惩罚矿工支付扇区终止费。每个扇区终止费的上限,初始设置为该扇区将获得的90天区块奖励。

    04、“最低存储订单质押下调,付费订单更有吸引力。”在前置抵押、区块奖励抵押之外,Filecoin网络要求存储矿工提供订单抵押,作为最低存储保障。
    如果订单提前终止,对应的订单抵押将被网络惩罚。而矿工可以自愿提高订单抵押数额,以向用户展示其可以提供更高水平更可靠存储服务的信心。本次更新下调了最低订单存储抵押数额,意味着矿工抵押要求的降低、付费订单更有吸引力。05、“基线初始值提高和增长率下调,更持久激励经济发展。”当扇区处于故障状态时,Filecoin网络要求矿工每天按扇区支付故障费。如果扇区连续两个星期以上仍存在故障,则该扇区将被终止(矿工需支付终止费)。扇区故障费的初始值为2.14天的区块奖励。本次更新中,官方认为初始设置的故障费偏低,认为该费用不足以让矿工及时检测、维修扇区故障,提供高水平、可靠的存储服务。但考虑到网络早期,暂不上调该费用。

    展开全文
  • 传统的围栏以加高或者添加危险触碰物来增加安全性,但是会影响美观,不能进行主动击退,也给围栏内人物带来不便。而电子围栏是一种主动入侵防越围栏,对入侵企图做出反击,击退入侵者,延迟入侵时间,并且不威胁人的...
  • VLAN通过建立网络防火墙使不必要的数据流量减至最少,隔离各个VLAN间的传输和可能出现的问题,使网络吞吐量大大增加,减少了网络延迟。在虚拟网络环境中,可以通过划分不同的虚拟网络来控制处于同一物理网段中的用户...
  • 如何实现加速?

    2019-06-03 14:03:05
    正常的情况下,海外服务器到国内延迟高,游戏体验差,玩家留存率肯定很低,但现在不一样了,为了解决这个问题,云漫网络研发了星移云转这款产品,新开发的这款软件不只是降低了游戏延迟,还增加了游戏稳定性。...
  • 网络处理的性能与延迟时间的增加是不成比例的。这是由于大多数网络协议的内在操作是双向信息交换。本章的其余部分则侧重于理解为什么会产生这些信息交换以及如何减少甚至消除它们交换的频率。
  • 我们的分析表明,目前实施的网络中立性法规可能会阻碍和延迟需要差异化服务质量安排的创新实验。 为了克服这种对创新的不良影响,我们提出了一种方法,该方法允许维护网络中立性的重要目标,同时允许网络服务的差异...
  • 如何在ESXi中启用巨型帧支持?

    千次阅读 2017-07-03 10:31:00
    巨型帧可以在恰当的时候帮助减少网络延迟,但需要对整个网络设施进行正确的配置。 在虚拟环境中巨型帧是一款很有价值的工具。传统以太网帧、数据包最多能够包含1500个字节,但每个数据包包括额外的数据头、校验码...
  • 这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部...
  • 网络处理的性能与延迟时间的增加是不成比例的。这是由于大多数网络协议的内在操作是双向信息交换。本章的其余部分则侧重于理解为什么会产生这些信息交换以及如何减少甚至消除它们交换的频率。   图3:网络协议 ...
  • 因此当数据量增加时,网络延迟或性能滞后难以避免。当然,您也可以将存储基础结构管理外包给第三方,但这可能会使您的数据受到安全威胁。理性的解决方法是在网络中安装专用的存储监控工具。接下来就让我们一起来讨论...
  • 增加网络寿命是最具挑战性的问题。 最新的能量感知路由方法之一是在小规模传感器网络中使用和声搜索算法。 这项研究的目的是将和声搜索算法作为一种成功的用于无线传感器网络路由的元启发式算法,以延长此类网络的...
  • 前言: 在同样的网络环境下,两个同样能满足你的需求的网站,一个“Duang”的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2...Amazon每增加100ms网站延迟将导致收...
  • 随着网络技术的发展,越来越多的应用基于互联网发布,再好的应用,如果打开速度慢,10个用户会有9个用户选择离开,相关统计数据显示,每增加0.1秒的加载延迟,将会导致客户活跃度下降1%。在目前获客成本较高,用户...
  • 随着网络技术的发展,越来越多的应用基于互联网发布,再好的应用,如果打开速度慢,10个用户会有9个用户选择离开,相关统计数据显示,每增加0.1秒的加载延迟,将会导致客户活跃度下降1%。在目前获客成本较高,用户...
  • 随着工业以太网应用的不断增长,我们可以越来越明显地注意到,传统的解决方案在网络流量增加时很难处理关键信息,从而导致不可预测的数据包延迟、过长的延误时间甚至连接失败。  通过对多个可商用的工业以太网设备
  • 【弱网测试的背景】 对于某些问题的定位可以使用抓包...在日常的需求中,经常会遇到用户反馈并且无法简单复现的问题,有很大一部分的问题是由于用户自身网络环境的波动,或者本身网络环境就比较恶劣,导致会出现一...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 190
精华内容 76
关键字:

如何增加网络延迟