CN116489472A - 一种视频流的传输方法、装置、电子设备及存储介质 - Google Patents

一种视频流的传输方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116489472A
CN116489472A CN202310458996.XA CN202310458996A CN116489472A CN 116489472 A CN116489472 A CN 116489472A CN 202310458996 A CN202310458996 A CN 202310458996A CN 116489472 A CN116489472 A CN 116489472A
Authority
CN
China
Prior art keywords
transmission
target
video stream
parameter
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310458996.XA
Other languages
English (en)
Inventor
单卫
李彤
朱银峰
马心宇
王剑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renmin University of China
Beijing Youzhuju Network Technology Co Ltd
Original Assignee
Renmin University of China
Beijing Youzhuju Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renmin University of China, Beijing Youzhuju Network Technology Co Ltd filed Critical Renmin University of China
Priority to CN202310458996.XA priority Critical patent/CN116489472A/zh
Publication of CN116489472A publication Critical patent/CN116489472A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开公开了一种视频流的传输方法、装置、电子设备及存储介质。包括:在服务器按照第一传输参数向目标客户端传输视频流的过程中,获取目标客户端当前的传输状态,其中,第一传输参数是基于目标客户端的请求描述信息得到的;获取传输状态对应的传输指示信息,其中,传输指示信息用于指示服务器是否更新第一传输参数;利用传输指示信息确定服务器向目标客户端传输视频流所使用的目标传输参数;按照目标传输参数向目标客户端传输视频流。本公开实施例提供的方法通过在视频流传输之前和传输过程中分别利用请求描述信息和传输状态动态调整合适的传输参数,解决了因网络环境变化引起的视频流传输卡顿等问题,从而保证了视频流的传输的稳定性以及传输质量。

Description

一种视频流的传输方法、装置、电子设备及存储介质
技术领域
本公开涉及网络通信领域,尤其涉及一种视频流的传输方法、装置、电子设备及存储介质。
背景技术
随着客户端数目的爆炸性增长和业务的大范围部署,短视频等音视频应用的数据传输面临着前所未有挑战。其主要原因是全球范围内的应用需求和网络条件呈现动态性。应用需求的动态性体现在客户端对网络需求的多样化。对于网络条件的动态性,一方面,在不同的国家和地区的不同用户网络条件呈现多样性。另一方面,即使是同一个网络,从时间维度上,其网络状态也是动态变化的。
现有的传输控制算法通常针对某一特定场景进行优化,以提高对不同应用需求和网络场景的适应性。然而,针对特定的方案,例如快速UDP网络连接(Quick UDP InternetConnections,缩写QUIC)和拥塞控制((Bottleneck Bandwidth and Round-trippropagation time,缩写BBR),其底层逻辑和设置丢包恢复和拥塞控制等参数的方式是相对固定的,无法适应多样化的用户需求和网络场景。另外,虽然机器学习提升了传输控制面对不同的用户需求和网络场景的适应性。但是现有方案(如Vivace,PCC,RemyCC等)大多基于同一连接内的网络状态来调整网络传输参数。这种连接仍然缺乏灵活性,因为它依赖于底层网络的稳定性和可预测性,例如:网络的稳定性出现问题,无法及时调整网络传输参数,导致出现网络卡顿的情况。所以不适用于持续时间仅为几秒或十几秒的视频传输。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种视频流的传输方法、装置、电子设备及存储介质。
根据本公开实施例的一个方面,提供了一种视频流的传输方法,应用于服务器,所述方法包括:
在所述服务器按照第一传输参数向目标客户端传输视频流的过程中,获取所述目标客户端当前的传输状态,其中,所述第一传输参数是基于所述目标客户端的请求描述信息得到的;
获取所述传输状态对应的传输指示信息,其中,所述传输指示信息用于指示所述服务器是否更新所述第一传输参数;
利用所述传输指示信息确定所述服务器向所述目标客户端传输视频流所使用的目标传输参数;
按照所述目标传输参数向所述目标客户端传输所述视频流。
根据本公开实施例的再一个方面,还提供了一种视频流的传输装置,包括:
第一获取模块,用于在服务器按照第一传输参数向目标客户端传输视频流的过程中,获取所述目标客户端当前的传输状态,其中,所述第一传输参数是基于所述目标客户端的请求描述信息得到的;
第二获取模块,用于获取所述传输状态对应的传输指示信息,其中,所述传输指示信息用于指示所述服务器是否更新所述第一传输参数;
确定模块,用于利用所述传输指示信息确定所述服务器向所述目标客户端传输视频流所使用的目标传输参数;
传输模块,用于按照所述目标传输参数向所述目标客户端传输所述视频流。
根据本公开实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
根据本公开实施例的另一方面,还提供了一种电子装置,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
本公开实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
本公开实施例提供的上述技术方案具有如下优点:本公开实施例提供的方法在服务器向客户端传输视频流的过程中,首先获取客户端的传输状态,依据传输状态确定是否更新当前的传输参数。其次,如果更新传输参数的情况下,则配置该传输状态下的传输参数。最终,依据配置后的传输参数传输视频流。以此通过在视频流传输之前和传输过程中分别利用请求描述信息和传输状态动态调整合适的传输参数,解决了因网络环境变化引起的视频流传输卡顿等问题,从而保证了视频流的传输的稳定性以及传输质量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种视频流的传输方法的流程图;
图2为本公开另一实施例提供的一种视频流的传输方法的流程图;
图3为本公开实施例提供的客户端请求描述信息的示意图;
图4为本公开实施例提供一种服务器与客户端之间的交互图;
图5为本公开实施例提供的一种视频流的传输装置的框图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个类似的实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本公开实施例提供了一种视频流的传输方法、装置、电子设备及存储介质。本公开实施例所提供的方法可以应用于任意需要的电子设备,例如,可以为服务器、终端等电子设备,在此不做具体限定,为描述方便,后续简称为电子设备。
根据本公开实施例的一方面,提供了一种视频流的传输方法的方法实施例。图1为本公开实施例提供的一种视频流的传输方法的流程图,如图1所示,该方法包括:
步骤S11,在服务器按照第一传输参数向目标客户端传输视频流的过程中,获取目标客户端当前的传输状态,其中,第一传输参数是基于目标客户端的请求描述信息得到的。
本公开实施例提供的方法应用于服务器,服务器与多个客户端自检通信连接,并且可以向多个客户端传输视频流。具体的,目标客户端当前存在浏览视频的需求时,目标客户端首先基于自身的网络参数会构建请求描述信息,网络参数可以是:请求优先级,网络类型,期望码率等等,请求描述信息中包括:请求优先级,网络类型,期望码率等。目标客户端可以是与服务器通信连接的任意一个客户端。其次将请求描述信息携带于请求报文,并将请求报文发送至服务器,请求报文可以是http请求报文。
基于此,在服务器按照第一传输参数向目标客户端传输视频流之前,方法还包括以下步骤A1-A2:
步骤A1,接收目标客户端发送的请求描述信息,其中,请求描述信息是基于目标客户端的网络参数生成的。
步骤A2,获取预设请求描述信息与传输参数之间的映射关系,并基于映射关系获取请求描述信息对应的第一传输参数。
在本公开实施例中,服务器接收到目标客户端发送的请求报文后,首先对请求报文进行解析,得到目标客户端当前的请求描述信息。其次服务器将请求描述信息输入至部署在应用层的配置匹配模型,应用层的配置匹配模型会基于预设请求描述信息与传输参数之间的映射关系,输出请求描述信息对应的第一传输参数。最终,服务器在拿到第一传输参数后,将第一传输参数与请求报文的报文ID关联存储至映射表,同时按照第一传输参数向目标客户端传输其所需的视频流。
需要说明的是,在传输视频流之前,服务器获取客户端的请求描述信息,以此通过请求描述信息能够了解客户端当前的传输需求,同时利用请求描述信息确定与传输需求相匹配的传输参数,从而有利于后续传输视频流更加稳定,降低出现视频流传输卡顿的概率。
在本公开实施例中,获取目标客户端当前的传输状态,包括以下步骤B1-B3:
步骤B1,接收目标客户端发送的响应报文,其中,响应报文是目标客户端开始接收视频流后生成的。
步骤B2,解析响应报文得到目标客户端当前的体验指标数据,其中,体验指标数据包括:百秒卡顿值以及网络类型。
步骤B3,利用体验指标数据确定目标客户端当前的传输状态。
在本公开实施例中,目标客户端在接收服务器所传输视频流的过程中,会检测自身当前体验指标数据(Quality of Experience,缩写:QoE),体验指标数据包括:百秒卡顿值以及网络类型等,其中,百秒卡顿值用于反映客户端当前的卡顿情况,网络类型可以是4G,5G,无线等等。然后将体验指标数据携带于响应报文,并将响应报文反馈至服务器。
服务器接收到响应报文后,解析响应报文得到目标客户端当前的体验指标数据,并利用体验指标数据确定目标客户端的传输状态。其中,在百秒卡顿值小于预设阈值,且网络类型未发生切换的情况下,传输状态为正常传输状态,此时说明卡顿情况良好且未发生网络状态变化。或,在百秒卡顿值大于或等于预设阈值,和/或,网络类型发生切换的情况下,传输状态为异常传输状态,此时说明卡顿情况较差,和/或网络类型发生了切换,例如:从无线网络切换到5G。
需要说明的是,在视频流传输过程中,服务器获取客户端的传输状态,有利于及时确定客户端在传输过程中的传输状态,从而了解客户端的网络状况或者需求是否发生变化,便于后续根据传输状态选择合适的传输参数,从而避免在视频传输过程中出现卡顿的问题。
步骤S12,获取传输状态对应的传输指示信息,其中,传输指示信息用于指示服务器是否更新第一传输参数。
在本公开实施例中,获取传输状态对应的传输指示信息,包括以下两种情况:
(1)在传输状态为正常传输状态的情况下,说明按照第一传输参数传输视频流的过程中未出现异常,例如:客户端的网络状况或者需求未发生变化,此时传输指示信息用于指示服务器无需更新第一传输参数。
(2)在传输状态为异常传输状态的情况下,说明按照第一传输参数传输视频流的过程中出现异常,例如:客户端的网络状况或者需求发生了变化,此时传输指示信息用于指示服务器需要更新第一传输参数。
步骤S13,利用传输指示信息确定服务器向目标客户端传输视频流所使用的目标传输参数。
在本公开实施例中,如果传输指示信息用于指示服务器需要更新第一传输参数,此时将第一传输参数输入至传输层的配置匹配模型,传输层的配置匹配模型通过预设传输状态与传输参数之间的映射关系,输出传输状态对应的第二传输参数。此时将第二传输参数确定为目标传输参数,同时还将第二传输参数与请求报文的报文ID关联存储至映射表。
如果传输指示信息用于指示服务器无需更新第一传输参数,仍将第一传输参数确定为目标传输参数。
步骤S14,按照目标传输参数向目标客户端传输视频流。
在本公开实施例中,服务器按照目标传输参数向目标客户端传输视频流,并在按照目标传输参数传输视频流的过程中,实时监测目标客户端的传输状态,如果传输状态仍然发生变化,则继续更新目标传输参数,直至视频流传输完成。需要说明的是,在视频流传输过程中,实时获取客户端的传输状态,并匹配与当前状态最适配的传输配置,从而避免出现视频传输卡顿的情况,同时提高体验指标数据。
本公开实施例提供的方法在服务器向客户端传输视频流的过程中,首先获取客户端的传输状态,依据传输状态确定是否更新当前的传输参数。其次,如果更新传输参数的情况下,则配置该传输状态下的传输参数。最终,依据配置后的传输参数传输视频流。以此通过在视频流传输之前和传输过程中分别利用请求描述信息和传输状态动态调整合适的传输参数,解决了因网络环境变化引起的视频流传输卡顿等问题,从而保证了视频流的传输的稳定性以及传输质量。
图2为本公开实施例提供的一种视频流的传输方法的流程图,如图2所示,该方法包括:
步骤S21,在服务器按照第一传输参数向目标客户端传输视频流的过程中,获取目标客户端当前的传输状态,其中,第一传输参数是基于目标客户端的请求描述信息得到的。
在本公开实施例中,如图3所示,目标客户端首先在stream启动时,通过请求优先级、网络类型、期望码率和历史网络性能指标构建请求描述信息,请求描述信息可以由以下的四元组表示:[Request Priority,Network Type,Expected Bitrate,QoE Metric]。其中,Request Priority表示请求优先级,例如:请求优先级可以是基于数据块的大小确定。Network Type表示网络类型,例如WiFi和2G-5G等。Expected Bitrate表示期望码率,例如2Mbps等。QoE Metric表示网络性能指标,例如上个请求的卡顿时长和上一个连接的首帧时延等。得到完整的请求描述信息后,目标客户端将请求描述信息封装在http请求报文中发送至服务器。
在本公开实施例中,服务器接收到请求报文后,对请求报文中的请求描述信息进行分析,以请求描述信息作为应用层配置匹配模型的输入,得到传输参数[FEC_LEVEL,ARQ_LEVEL,INIT_CWND,CC_CHOISE]的组合。其中,FEC_LEVEL为向前纠错度(取值范围0-255),该参数实现吞吐和丢包之间的权衡。ARQ_LEVEL为重传副本数(取值范围1-6),是ARQ的重传数目;INIT_CWND指初始窗口大小(取值范围4-100)。
需要说明的是,应用层匹配配置模型中的第一映射关系可以为:请求优先级越高,初始窗口越大,向前纠错度的冗余度越高,重传副本数越多,网络类型为Wi-Fi,向前纠错度的冗余度可以越高,重传副本数可以越多,网络类型为蜂窝网,则反之。最后,服务端将请求ID与传输配置组合记录在映射表中,并按照传输参数进行数据传输。
步骤S22,获取传输状态对应的传输指示信息,其中,传输指示信息用于指示服务器是否更新第一传输参数。详细说明参见上述实施例对应的相关描述,此处不再赘述。
步骤S23,利用传输指示信息确定服务器向目标客户端传输视频流所使用的目标传输参数。
在本公开实施例中,利用传输指示信息确定服务器向目标客户端传输视频流所使用的目标传输参数,包括:在传输指示信息用于指示服务器无需更新第一传输参数的情况下,将第一传输参数确定为服务器向目标客户端传输视频流所使用的目标传输参数。
在本公开实施例中,在传输指示信息用于指示服务器无需更新第一传输参数的情况下,说明客户端当前的传输状态与之前向服务器发送请求描述信息时的情况相接近,且按照服务器当前第一传输参数传输视频流的过程中未出现异常,此时仍然将第一传输参数确定为服务器向目标客户端传输视频流所使用的目标传输参数。
在本公开实施例中,利用传输指示信息确定服务器向目标客户端传输视频流所使用的目标传输参数,包括以下步骤C1-C2:
步骤C1,在传输指示信息用于指示服务器需要更新第一传输参数的情况下,获取用于配置传输参数的配置策略。
步骤C2,基于配置策略配置传输状态对应的目标传输参数。
在本公开实施例中,服务器的传输层预先设置有配置策略,当传输指示信息用于指示服务器需要更新第一传输参数时,触发传输参数配置机制生效,并调用配置策略配置传输状态对应的目标传输参数。
具体的,基于配置策略配置传输状态对应的目标传输参数,包括以下步骤C201-C203:
步骤C201,计算目标客户端当前的剩余播放时间。
在本公开实施例中,剩余播放时间的计算公式如下:
其中,Δt为剩余播放时间,cached_bytes为目标客户端缓存字节的数量,bps表示目标客户端播放视频的比特率。
步骤C202,对比剩余播放时间与第一预设时间阈值,得到第一对比结果。
步骤C203,基于第一对比结果对应的参数更新策略对第一传输参数进行更新,得到目标传输参数。
在本公开实施例中,基于第一对比结果对应的参数更新策略对第一传输参数进行更新,得到目标传输参数,包括:在第一对比结果为剩余播放时间大于或等于第一预设时间阈值的情况下,将第一传输参数中的重传副本数量以及向前纠错度更新为0。
在本公开实施例中,如果Δt≥T1(第一预设时间阈值),则说明当前剩余播放时间较多,为了保证视频流的传输稳定性,以及降低网络传输压力,将第一传输参数中的重传副本数量ARQ_LEVEL以及向前纠错度FEC_LEVEL设置为0,即在该情况下不使用自动重传以及冗余传输。
在本公开实施例中,基于第一对比结果对应的参数更新策略对第一传输参数进行更新,得到目标传输参数,包括以下步骤D1-D3:
步骤D1,在第一对比结果为剩余播放时间小于第一预设时间阈值的情况下,获取服务器与目标客户端之间往返时延以及历史最大重传次数。
在本公开实施例中,如果第一对比结果为剩余播放时间小于第一预设时间阈值,则说明剩余播放时间较少,服务器与目标客户端之间往返时延为(Round-Trip Time,缩写:RTT),服务器可以从N个历史往返时延中筛选出历史最大重传次数K,例如:服务器依次对比20个历史往返时延中的重传次数,得到20个历史往返时延中最大重传次数。
步骤D2,计算往返时延与历史最大重传次数之间的比值,并对比比值与第二预设时间阈值,以及对比历史最大重传次数与预设次数阈值,得到第二对比结果。
在本公开实施例中,计算往返时延与历史最大重传次数之间对比值为 用于表示目标客户端当前的网络状态,将/>与第二预设时间阈值T2进行对比,以及将K与预设次数阈值W进行对比,得到第二对比结果。
步骤D3,基于第二对比结果对应的参数更新策略对第一传输参数进行更新,得到目标传输参数。
在本公开实施例中,基于第二对比结果对应的参数更新策略对第一传输参数进行更新,得到目标传输参数,包括以下多种情况:
(情况1)在第二对比结果为比值大于或等于第二预设时间阈值,且历史最大重传次数大于或等于预设次数阈值的情况下,将第一传输参数中的向前纠错度更新为第一上限,以及将重传副本数量更新为第二上限,得到目标传输参数。
在本公开实施例中,如果且K≥W,说明当前网络情况很差,需要将第一传输参数中的向前纠错度以及重传副本数量均更新为相应的上限值,即将第一传输参数中的向前纠错度更新为第一上限N1,以及将重传副本数量更新为第二上限N2
(情况2)在第二对比结果为比值大于或等于第二预设时间阈值,且历史最大重传次数小于预设次数阈值的情况下,计算比值与第一上限之间的第一乘积,并将第一传输参数中的向前纠错度更新为第一乘积,得到目标传输参数;
在本公开实施例中,如果且K<W,此时说明网络情况较差,需要配置向前纠错度,将第一传输参数中的向前纠错度更新为/>其中,N1为向前纠错度对应的上限值(即第一上限)。
(情况3)在第二对比结果为比值小于第二预设时间阈值,且历史最大重传次数大于或等于预设次数阈值的情况下,计算比值与第二上限之间的第二乘积,并将第一传输参数中的重传副本数量更新为第二乘积,得到目标传输参数。
在本公开实施例中,如果且K≥W,此时说明网络情况较好,只需要配置重传副本数量,将第一传输参数中的重传副本数量更新为/>其中,N2为重传副本数量对应的上限值(即第二上限)。
(情况4)在第二对比结果为比值小于第二预设时间阈值,且历史最大重传次数小于预设次数阈值的情况下,关闭第一传输参数中的向前纠错度,并将重传副本数量更新为预设下限,得到目标传输参数。
在本公开实施例中,如果且K≥W,此时说明网络情况很好。在该情况下,无需配置向前纠错度,只需将第一传输参数中的重传副本数量更新为预设下限即可。
在本公开实施例中,在得到的目标传输参数后,将目标传输参数存储至映射表,便于后续服务器按照映射表中最新更新的目标传输参数向目标客户端传输视频流。
步骤S24,按照目标传输参数向目标客户端传输视频流。详细说明参见上述实施例对应的相关描述,此处不再赘述。
本公开实施例提供的方法在服务器向客户端传输视频流的过程中,首先获取客户端的传输状态,依据传输状态确定是否更新当前的传输参数。其次,如果更新传输参数的情况下,则配置该传输状态下的传输参数。最终,依据配置后的传输参数传输视频流。以此通过在视频流传输之前和传输过程中分别利用请求描述信息和传输状态动态调整合适的传输参数,解决了因网络环境变化引起的视频流传输卡顿等问题,从而保证了视频流的传输的稳定性以及传输质量。
图4为本公开实施例提供一种服务器与客户端之间的交互图,如图4所示,该视频流的传输过程包括:
(1)客户端构建请求描述信息,并将请求描述信息封装在http请求报文,发送请求描述信息至服务器,其中,请求描述信息包括请求优先级,网络类型,期望码率以及历史体验指标数据。
(2)服务器接收并解析http请求报文,得到封装在http请求报文中的请求描述信息,然后将请求描述信息输入部署在应用层的配置匹配模型,由配置匹配模型基于预设请求描述信息与传输参数之间的第一映射关系,输出请求描述信息对应的第一传输参数。
(3)服务器按照第一传输参数向客户端传输视频流。
(4)在服务器按照第一传输参数向目标客户端传输视频流的过程中,客户端收集自身的体验指标数据,体验指标数据包括:百秒内卡顿值以及网络类型。然后客户端将体验指标数据封装在响应报文发送至服务器。
(5)服务器基于体验指标数据确定客户端当前的传输状态,其中,在百秒卡顿值小于预设阈值,且网络类型未发生切换的情况下,传输状态为正常传输状态,或,在百秒卡顿值大于或等于预设阈值,网络类型发生切换的情况下,传输状态为异常传输状态。
(6)服务器首先获取传输状态对应的传输指示信息,其中,传输指示信息用于指示服务器是否更新第一传输参数。其次,利用传输指示信息确定服务器向客户端传输视频流所使用的目标传输参数。再按照目标传输参数向目标客户端传输视频流。
(6.1)如果传输指示信息用于指示服务器无需更新第一传输参数(即传输状态为正常传输状态),则服务器将第一传输参数确定为目标传输参数。
(6.2)如果传输指示信息用于指示服务器需要更新第一传输参数(即传输状态为异常传输状态),服务器将传输状态输入部署在应用层的配置匹配模型,由配置匹配模型基于配置策略配置传输状态对应的第二传输参数。最终将第二传输参数确定为目标传输参数。
(7)服务器在按照目标传输参数传输视频流的过程中,实时监测目标客户端的传输状态,如果传输状态仍然发生变化,则继续更新目标传输参数,直至视频流传输完成。
图5为本公开实施例提供的一种视频流的传输装置的框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图5所示,该装置包括:
第一获取模块51,用于在服务器按照第一传输参数向目标客户端传输视频流的过程中,获取目标客户端当前的传输状态,其中,第一传输参数是基于目标客户端的请求描述信息得到的;
第二获取模块52,用于获取传输状态对应的传输指示信息,其中,传输指示信息用于指示服务器是否更新第一传输参数;
确定模块53,用于利用传输指示信息确定服务器向目标客户端传输视频流所使用的目标传输参数;
传输模块54,用于按照目标传输参数向目标客户端传输视频流。
在本公开实施例中,视频流的传输装置还包括:接收模块,用于接收目标客户端发送的请求描述信息,其中,请求描述信息是基于目标客户端的网络参数生成的;获取预设请求描述信息与传输参数之间的映射关系,并基于映射关系获取请求描述信息对应的第一传输参数。
在本公开实施例中,第一获取模块51,用于接收目标客户端发送的响应报文,其中,响应报文是目标客户端开始接收视频流后生成的;解析响应报文得到目标客户端当前的体验指标数据,其中,体验指标数据包括:百秒卡顿值以及网络类型;利用体验指标数据确定目标客户端当前的传输状态,其中,在体验指标数据小于预设阈值,和/或,网络类型未发生切换的情况下,传输状态为正常传输状态,或,在体验指标数据大于或等于预设阈值,网络类型发生切换的情况下,传输状态为异常传输状态。
在本公开实施例中,第二获取模块52,用于在传输状态为正常传输状态的情况下,传输指示信息用于指示服务器无需更新第一传输参数;在传输状态为异常传输状态的情况下,传输指示信息用于指示服务器需要更新第一传输参数。
在本公开实施例中,确定模块53,用于在传输指示信息用于指示服务器无需更新第一传输参数的情况下,将第一传输参数确定为服务器向目标客户端传输视频流所使用的目标传输参数。
在本公开实施例中,确定模块53,用于在传输指示信息用于指示服务器需要更新第一传输参数的情况下,获取用于配置传输参数的配置策略;基于所述配置策略配置所述传输状态对应的目标传输参数。
在本公开实施例中,确定模块53,用于计算目标客户端当前的剩余播放时间;对比剩余播放时间与第一预设时间阈值,得到第一对比结果;基于第一对比结果对应的参数更新策略对第一传输参数进行更新,得到目标传输参数。
在本公开实施例中,确定模块53,用于在第一对比结果为剩余播放时间大于或等于第一预设时间阈值的情况下,将第一传输参数中的重传副本数量以及向前纠错度更新为0。
在本公开实施例中,确定模块53,用于在第一对比结果为剩余播放时间小于第一预设时间阈值的情况下,获取服务器与目标客户端之间往返时延以及历史最大重传次数;计算往返时延与历史最大重传次数之间的比值,并对比比值与第二预设时间阈值,以及对比历史最大重传次数与预设次数阈值,得到第二对比结果;基于第二对比结果对应的参数更新策略对第一传输参数进行更新,得到目标传输参数。
在本公开实施例中,确定模块53,用于在第二对比结果为比值大于或等于第二预设时间阈值,且历史最大重传次数大于或等于预设次数阈值的情况下,将第一传输参数中的向前纠错度更新为第一上限,以及将重传副本数量更新为第二上限,得到目标传输参数;
确定模块53,用于在第二对比结果为比值大于或等于第二预设时间阈值,且历史最大重传次数小于预设次数阈值的情况下,计算比值与第一上限之间的第一乘积,并将第一传输参数中的向前纠错度更新为第一乘积,得到目标传输参数;
确定模块53,用于在第二对比结果为比值小于第二预设时间阈值,且历史最大重传次数大于或等于预设次数阈值的情况下,计算比值与第二上限之间的第二乘积,并将第一传输参数中的重传副本数量更新为第二乘积,得到目标传输参数;
确定模块53,用于在第二对比结果为比值小于第二预设时间阈值,且历史最大重传次数小于预设次数阈值的情况下,关闭第一传输参数中的向前纠错度,并将重传副本数量更新为预设下限,得到目标传输参数。
本公开实施例还提供一种电子设备,如图6所示,电子设备可以包括:处理器1501、通信接口1502、存储器1503和通信总线1504,其中,处理器1501,通信接口1502,存储器1503通过通信总线1504完成相互间的通信。
存储器1503,用于存放计算机程序;
处理器1501,用于执行存储器1503上所存放的计算机程序时,实现上述实施例的步骤。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本公开提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频流的传输方法。
在本公开提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频流的传输方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk)等。
以上所述仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。凡在本公开的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本公开的保护范围内。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (13)

1.一种视频流的传输方法,其特征在于,应用于服务器,所述方法包括:
在所述服务器按照第一传输参数向目标客户端传输视频流的过程中,获取所述目标客户端当前的传输状态,其中,所述第一传输参数是基于所述目标客户端的请求描述信息得到的;
获取所述传输状态对应的传输指示信息,其中,所述传输指示信息用于指示所述服务器是否更新所述第一传输参数;
利用所述传输指示信息确定所述服务器向所述目标客户端传输视频流所使用的目标传输参数;
按照所述目标传输参数向所述目标客户端传输所述视频流。
2.根据权利要求1所述的方法,其特征在于,在所述服务器按照第一传输参数向目标客户端传输视频流之前,所述方法还包括:
接收所述目标客户端发送的请求描述信息,其中,所述请求描述信息是基于所述目标客户端的网络参数生成的;
获取预设请求描述信息与传输参数之间的映射关系,并基于所述映射关系获取所述请求描述信息对应的第一传输参数。
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标客户端当前的传输状态,包括:
接收所述目标客户端发送的响应报文,其中,所述响应报文是所述目标客户端开始接收所述视频流后生成的;
解析所述响应报文得到所述目标客户端当前的体验指标数据,其中,所述体验指标数据包括:百秒卡顿值以及网络类型;
利用所述体验指标数据确定所述目标客户端当前的传输状态,其中,在所述百秒卡顿值小于预设阈值,且所述网络类型未发生切换的情况下,所述传输状态为正常传输状态,或,在所述百秒卡顿值大于或等于预设阈值,所述网络类型发生切换的情况下,所述传输状态为异常传输状态。
4.根据权利要求3所述的方法,其特征在于,所述获取所述传输状态对应的传输指示信息,包括:
在所述传输状态为正常传输状态的情况下,所述传输指示信息用于指示所述服务器无需更新所述第一传输参数;
在所述传输状态为异常传输状态的情况下,所述传输指示信息用于指示所述服务器需要更新所述第一传输参数。
5.根据权利要求1所述的方法,其特征在于,所述利用所述传输指示信息确定所述服务器向所述目标客户端传输视频流所使用的目标传输参数,包括:
在所述传输指示信息用于指示所述服务器无需更新所述第一传输参数的情况下,将所述第一传输参数确定为所述服务器向所述目标客户端传输视频流所使用的目标传输参数。
6.根据权利要求1所述的方法,其特征在于,所述利用所述传输指示信息确定所述服务器向所述目标客户端传输视频流所使用的目标传输参数,包括:
在所述传输指示信息用于指示所述服务器需要更新所述第一传输参数的情况下,获取用于配置传输参数的配置策略;
基于所述配置策略配置所述传输状态对应的目标传输参数。
7.根据权利要求6所述的方法,其特征在于,所述基于所述配置策略配置所述传输状态对应的目标传输参数,包括:
计算所述目标客户端当前的剩余播放时间;
对比所述剩余播放时间与第一预设时间阈值,得到第一对比结果;
基于所述第一对比结果对应的参数更新策略对所述第一传输参数进行更新,得到所述目标传输参数。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第一对比结果对应的参数更新策略对所述第一传输参数进行更新,得到所述目标传输参数,包括:
在所述第一对比结果为所述剩余播放时间大于或等于所述第一预设时间阈值的情况下,将所述第一传输参数中的重传副本数量以及向前纠错度更新为0。
9.根据权利要求6所述的方法,其特征在于,所述基于所述第一对比结果对应的参数更新策略对所述第一传输参数进行更新,得到所述目标传输参数,包括:
在所述第一对比结果为所述剩余播放时间小于所述第一预设时间阈值的情况下,获取所述服务器与所述目标客户端之间往返时延以及历史最大重传次数;
计算所述往返时延与所述历史最大重传次数之间的比值,并对比所述比值与第二预设时间阈值,以及对比所述历史最大重传次数与预设次数阈值,得到第二对比结果;
基于所述第二对比结果对应的参数更新策略对所述第一传输参数进行更新,得到所述目标传输参数。
10.根据权利要求9所述的方法,其特征在于,所述基于所述第二对比结果对应的参数更新策略对所述第一传输参数进行更新,得到所述目标传输参数,包括:
在所述第二对比结果为所述比值大于或等于所述第二预设时间阈值,且所述历史最大重传次数大于或等于所述预设次数阈值的情况下,将所述第一传输参数中的向前纠错度更新为第一上限,以及将重传副本数量更新为第二上限,得到所述目标传输参数;
在所述第二对比结果为所述比值大于或等于所述第二预设时间阈值,且所述历史最大重传次数小于所述预设次数阈值的情况下,计算所述比值与第一上限之间的第一乘积,并将所述第一传输参数中的向前纠错度更新为所述第一乘积,得到所述目标传输参数;
在所述第二对比结果为所述比值小于所述第二预设时间阈值,且所述历史最大重传次数大于或等于所述预设次数阈值的情况下,计算所述比值与所述第二上限之间的第二乘积,并将所述第一传输参数中的重传副本数量更新为所述第二乘积,得到所述目标传输参数;
在所述第二对比结果为所述比值小于所述第二预设时间阈值,且所述历史最大重传次数小于所述预设次数阈值的情况下,关闭所述第一传输参数中的向前纠错度,并将所述重传副本数量更新为预设下限,得到所述目标传输参数。
11.一种视频流的传输装置,其特征在于,包括:
第一获取模块,用于在服务器按照第一传输参数向目标客户端传输视频流的过程中,获取所述目标客户端当前的传输状态,其中,所述第一传输参数是基于所述目标客户端的请求描述信息得到的;
第二获取模块,用于获取所述传输状态对应的传输指示信息,其中,所述传输指示信息用于指示所述服务器是否更新所述第一传输参数;
确定模块,用于利用所述传输指示信息确定所述服务器向所述目标客户端传输视频流所使用的目标传输参数;
传输模块,用于按照所述目标传输参数向所述目标客户端传输所述视频流。
12.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至10中任一项所述的方法步骤。
13.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:
存储器,用于存放计算机程序;
处理器,用于通过运行存储器上所存放的程序来执行权利要求1至10中任一项所述的方法步骤。
CN202310458996.XA 2023-04-25 2023-04-25 一种视频流的传输方法、装置、电子设备及存储介质 Pending CN116489472A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310458996.XA CN116489472A (zh) 2023-04-25 2023-04-25 一种视频流的传输方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310458996.XA CN116489472A (zh) 2023-04-25 2023-04-25 一种视频流的传输方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116489472A true CN116489472A (zh) 2023-07-25

Family

ID=87215273

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310458996.XA Pending CN116489472A (zh) 2023-04-25 2023-04-25 一种视频流的传输方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116489472A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117560528A (zh) * 2024-01-11 2024-02-13 腾讯科技(深圳)有限公司 音视频数据发送方法、装置、计算机设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117560528A (zh) * 2024-01-11 2024-02-13 腾讯科技(深圳)有限公司 音视频数据发送方法、装置、计算机设备及可读存储介质
CN117560528B (zh) * 2024-01-11 2024-05-24 腾讯科技(深圳)有限公司 音视频数据发送方法、装置、计算机设备及可读存储介质

Similar Documents

Publication Publication Date Title
US7693077B2 (en) Method for estimating available bandwidth of network
JP4491257B2 (ja) 終端間測定に基づくネットワークへのデータストリームの許容の制御
US7707303B2 (en) Method and devices for controlling retransmissions in data streaming
EP3780542B1 (en) Data transmission method and device
US20170346601A1 (en) Data transmission method and computing apparatus having data transmission function
JP2018508151A (ja) 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム
US20070226375A1 (en) Plug-in architecture for a network stack in an operating system
CN106105141A (zh) 实现扩展传输控制功能的传输加速器
CN110677221B (zh) 重传控制方法、通信接口和电子设备
CN113014505B (zh) 一种高动态拓扑卫星网络中时延区分的传输控制方法
US7764616B2 (en) Transmitter device for controlling data transmission
CN106612284A (zh) 一种流数据的传输方法和装置
US7965639B2 (en) Dynamic adaptation of MAC-layer retransmission value
CN106878192B (zh) 一种自适应mptcp的数据调度方法
US20070226347A1 (en) Method and apparatus for dynamically changing the TCP behavior of a network connection
CN116489472A (zh) 一种视频流的传输方法、装置、电子设备及存储介质
US9350484B2 (en) Transport accelerator implementing selective utilization of redundant encoded content data functionality
CN111669665B (zh) 媒体流的实时推送方法及服务器
CN115119068B (zh) 网络拥塞处理方法及系统
JP2011155406A (ja) 送信装置、送信方法及びプログラム
CN116318545A (zh) 视频数据传输方法、装置、设备及存储介质
US20230111943A1 (en) Communication apparatus, control method, storage medium, and communication method
US9307441B1 (en) Systems and methods of transferring information to a wireless device
CN114024896B (zh) 基于mptcp的自适应动态路径管理方法及装置
CN112866767B (zh) 一种投屏控制方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination