掌桥专利:专业的专利平台
掌桥专利
首页

视频传输方法、电子设备及计算机存储介质

文献发布时间:2024-04-18 20:01:55


视频传输方法、电子设备及计算机存储介质

技术领域

本申请涉及网络传输技术领域,特别是涉及一种视频传输方法、电子设备以及计算机存储介质。

背景技术

QUIC(quick UDP Internet ConnectionS)传输协议是一种基于UDP的低时延的互联网传输层协议,具有很多的优点,比如减少连接延迟、避免队头阻塞、多路复用等,于2021年5月成为RFC标准。其中,QUIC支持给每个请求流都分配一个独立的滑动窗口和设置不同的StreamID标示。每个Stream之间相互独立进行流控,比如Stream2丢了一个Pakcet,不会影响Stream3和Stream4的传输。

发明内容

为解决上述技术问题,本申请提出一种视频传输方法、电子设备及计算机存储介质。

为解决上述技术问题,本申请提出一种视频传输方法,所述视频传输方法应用于一种客户端,所述视频传输方法包括:向视频数据端发送视频播放请求;按照增大应答频率接收所述视频数据端返回的视频关键帧,所述增大应答频率高于预设应答频率;成功接收到所述视频关键帧后,按照所述预设应答频率接收其余视频帧。

其中,所述视频播放请求为从指定的画面时间进行播放的请求;所述向视频数据端发送视频播放请求之后,所述视频传输方法还包括:将当前视频流通道接收的不完整的视频数据丢弃,并关闭所述当前视频流通道。

其中,所述向视频数据端发送视频播放请求,包括:按照0-RTT传输模式向所述视频数据端发送所述视频播放请求。

其中,所述视频数据端为流媒体转发平台或视频终端设备。

为解决上述技术问题,本申请提出一种视频传输方法,所述视频传输方法应用于一种视频数据端,所述视频传输方法包括:根据客户端的视频播放请求创建视频流通道;按照待发送的视频关键帧大小,设置关键拥塞控制窗口;按照所述关键拥塞控制窗口在所述视频流通道传输视频帧;响应于所述客户端的停止传输加速指令,根据实时传输环境计算实时拥塞控制窗口;按照所述实时拥塞控制窗口继续传输其余视频帧。

其中,所述根据客户端的视频播放请求创建视频流通道,包括:根据所述客户端的视频播放请求创建视频链接,并在所述视频链接内创建所述视频流通道;所述视频传输方法还包括:响应于所述视频播放请求的客户端为新增客户端,将所述视频链接设置为高优先级视频链接;其中,所述高优先级视频链接的传输优先级高于在线客户端的低优先级视频链接。

其中,所述视频传输方法还包括:响应于所述客户端的停止传输加速指令,将所述高优先级视频链接调整为低优先级视频链接。

其中,所述视频播放请求为从指定的画面时间进行播放的请求;所述根据客户端的视频播放请求创建视频流通道,包括:根据所述客户端的视频播放请求将当前视频流通道的待发送和待重传的视频数据丢弃,并关闭所述当前视频流通道;创建新的视频流通道。

为解决上述技术问题,本申请提出一种视频传输方法,所述视频传输方法应用于一种视频传输系统,其中,所述视频传输系统包括客户端和视频数据端;所述视频传输方法包括:所述客户端向所述视频数据端发送视频播放请求;所述视频数据端根据所述视频播放请求按照待发送的视频关键帧大小,设置关键拥塞控制窗口;所述视频数据端按照所述关键拥塞控制窗口在所述视频流通道传输视频帧,其中,所述视频帧包括视频关键帧;所述客户端按照增大应答频率接收所述视频数据端返回的视频关键帧,所述增大应答频率高于预设应答频率;所述客户端成功接收到所述视频关键帧后,按照所述预设应答频率接收其余视频帧,并向所述视频数据端发送停止传输加速指令;所述视频数据端按照所述停止传输加速指令,根据实时传输环境计算实时拥塞控制窗口,并按照所述实时拥塞控制窗口继续传输其余视频帧。

为解决上述技术问题,本申请提出一种电子设备,所述电子设备包括存储器以及与所述存储器耦接的处理器;其中,所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现上述所述的视频传输方法。

为解决上述技术问题,本申请提出一种计算机存储介质,所述计算机存储介质用于存储程序数据,所述程序数据在被计算机执行时,用以实现上述所述的视频传输方法。

与现有技术相比,本申请的有益效果是:视频传输方法应用于一种客户端,客户端向视频数据端发送视频播放请求;按照增大应答频率接收所述视频数据端返回的视频关键帧,所述增大应答频率高于预设应答频率;成功接收到所述视频关键帧后,按照所述预设应答频率接收其余视频帧。通过上述方式,用视频关键帧加速传输方法,提高出流速度。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

其中:

图1是本申请提供的视频传输方法一实施例的流程示意图;

图2是本申请提供的QUIC的多Stream复用特性示意图;

图3是本申请提供的QUIC的0-RTT握手特性的一实施例的示意图;

图4是本申请提供的QUIC的0-RTT握手特性的另一实施例的示意图;

图5是本申请提供的QUIC传输协议应用场景示意图;

图6是本申请提供的视频网络传输拓扑示意图;

图7是本申请提供的点对点视频传输业务分层架构示意图;

图8是本申请提供的视频传输方法的第二实施例的流程示意图;

图9是本申请提供的视频传输方法的整体流程示意图;

图10是本申请提供的多用户视频传输业务分层架构;

图11是本申请提供的多用户情况下业务优先级加速传输方法的流程示意图;

图12是本申请提供的视频传输方法的第三实施例的流程示意图;

图13是本申请提供的电子设备的一实施例的结构示意图;

图14是本申请提供的计算机存储介质一实施例的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例,例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,对本申请中涉及到的技术做相关解释如下:

QUIC技术:

QUIC(quick UDP Internet ConnectionS)传输协议是一种基于UDP的低时延的互联网传输层协议,具有很多的优点,比如减少连接延迟、避免队头阻塞、多路复用等,于2021年5月成为RFC标准。其中,如图2所示,图2是本申请提供的QUIC的多Stream复用特性示意图,QUIC支持给每个请求流都分配一个独立的滑动窗口和设置不同的StreamID标示。每个Stream之间相互独立进行流控,比如Stream2丢了一个Pakcet,不会影响Stream3和Stream4的传输。

0-RTT:

如图3和图4所示,图3是本申请提供的QUIC的0-RTT握手特性的一实施例的示意图;图4是本申请提供的QUIC的0-RTT握手特性的另一实施例的示意图,QUIC客户端首次传输会缓存服务器端发的令牌和证书等信息,当第二次有数据需要再次发送的时候,客户端可以直接使用旧的令牌和证书进行握手和传输加密数据,这种握手传输数据方式称为0-RTT传输,可以减少传输层的握手时延。

出流时间:

从手机客户端发出播放请求开始,经过网络传输后,再到手机客户端收到I帧解码播放出画面的时间,称之为出流的时间或者首屏时间或者首帧时间。

QUIC技术主要应用场景如图5所示,图5是本申请提供的QUIC传输协议应用场景示意图。QUIC服务端和QUIC客户端通过QUIC传输协议进行音视频数据和控制信令数据的网络传输。

常见视频终端设备的网络传输拓扑结构,如图6所示,图6是本申请提供的视频网络传输拓扑示意图。视频终端设备的视频数据通过网络(比如有线、Wi-Fi、4/5G等)传输至局域网内的手机端进行解码播放,或者视频终端设备的视频数据通过流媒体转发平台传输至广域网的多个手机端进行解码播放。

常见的点对点视频传输业务分层架构,如图7所示,图7是本申请提供的点对点视频传输业务分层架构示意图。手机播放端通过网络向设备终端请求实时视频播放,终端设备将视频帧数据发送至手机端进行解码播放。

点对点的快速出流一般分为两个过程,分别是刚开始播放的起始阶段和中途操作视频播放的中间阶段,本申请通过采用视频I帧收发传输策略调整来实现视频I帧加速传输,提升出流速度。

本申请的视频传输方法应用于电子设备,其中,本申请的电子设备可以为服务器,也可以为终端设备,还可以为由服务器和终端设备相互配合的系统。相应地,电子设备包括的各个部分,例如各个单元、子单元、模块、子模块可以全部设置于服务器中,也可以全部设置于终端设备中,还可以分别设置于服务器和终端设备中。

进一步地,上述服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块,例如用来提供分布式服务器的软件或软件模块,也可以实现成单个软件或软件模块,在此不做具体限定。

具体请参阅图1,图1是本申请提供的视频传输方法一实施例的流程示意图。本实施例中的视频传输方法应用于客户端,客户端即发起视频播放请求的发送端。

如图1所示,其具体步骤如下:

步骤S11:向视频数据端发送视频播放请求。

在本申请一实施例中,客户端和视频数据端基于QUIC协议进行握手,即发送端和接收端基于QUIC协议进行握手,客户端向视频数据端发起视频播放请求,视频播放请求通过QUIC协议的0-RTT数据包传输。通过0-RTT减少握手时间,提升出流速度。

其中,视频数据端可以为视频监控终端、服务器、或者其他视频存储设备。

在本申请一实施例中,视频数据端为流媒体转发平台或视频终端设备。

步骤S12:按照增大应答频率接收视频数据端返回的视频关键帧,增大应答频率高于预设应答频率。

具体地,客户端接收到视频播放请求后,加大ACK应答频率,例如:从收到每隔2个包应答一次改为1个包应答一次,及时ACK应答反馈接收情况,减少应答时延。

其中,客户端对所收到的报文进行检查,若未发现错误,便向发送站发出确认回答ACK,表明信息已被正确接收,并准备好接收下一份报文。

步骤S13:成功接收到视频关键帧后,按照预设应答频率接收其余视频帧。

客户端收到连续的部分视频帧后及时通知应用层收取,当客户端首个视频关键帧I帧接收完毕后,则恢复ACK应答频率为默认值,按照预设应答默认值ACK应答频率除视频关键帧外的其余视频帧。

通过上述方式,用视频I帧加速传输方法,在开始阶段能够从握手和首个I帧传输耗时上进行优化,提高出流效率。

在本申请一实施例中,视频播放请求为从指定的画面时间进行播放的请求。例如录像回放业务中拖动进度条跳转到指定时间点进行视频播放等。

此时,客户端向视频终端请求从指定的画面时间进行播放,客户端的业务层通知QUIC接收端(即视频数据端)加大ACK应答频率并将接收不完整的数据丢弃,关闭传输流通道,重新创建新的传输流通道,连接不断开。

为解决上述技术问题,本申请提出一种视频传输方法,本实施例中视频传输方法应用于视频数据端,具体请参见图8和图9,图8是本申请提供的视频传输方法的第二实施例的流程示意图,图9是本申请提供的视频传输方法的整体流程示意图。

如图8所示,其具体步骤如下:

步骤S21:根据客户端的视频播放请求创建视频流通道。

视频数据端接收客户端的视频播放请求,根据客户端的视频播放请求创建视频流通道。在本申请一实施例中,视频数据终端根据客户端的视频播放请求创建视频链接,并在视频链接内创建所述视频流通道。

具体地,视频数据端创建QUIC的视频链接conn1和视频流通道Stream1,视频流通道Stream1承载设备应用层数据,例如视频数据和信令数据等,每个链接允许同时创建多个流Stream通道。

在申请一实施例中,向视频数据端发送视频播放请求的客户端为多个客户端,如图10-图11所示,图10是本申请提供的多用户视频传输业务分层架构;图11是本申请提供的多用户情况下业务优先级加速传输方法的流程示意图。

视频数据端响应于所述视频播放请求的客户端为新增客户端,将所述视频链接设置为高优先级视频链接;其中,高优先级视频链接的传输优先级高于在线客户端的低优先级视频链接。

具体地,多用户场景的快速出流一般分为两个过程,分别是新用户刚加入的开始播放起始阶段和在线用户中途操作视频播放的中间阶段。

新增用户客户端向视频数据端发起视频播放请求,其中,在本申请实施例中,视频数据端可以为一种流媒体转发平台,播放请求通过QUIC的0-RTT数据包传输。

同时,客户端加大ACK应答频率,及时ACK应答反馈接收情况,减少应答时延,视频数据端创建QUIC的链接conn2和流通道Stream1,设备应用层告知传输层,新增用户链路的业务优先级高于在线用户链路,传输层优先调度conn2的链接进行传输,视频数据端优先对新增用户高优先级链路2进行发送调度和数据重传调度,保障该链路视频I帧及时得到调度,客户端收到连续的部分视频帧后及时通知应用层收取。

进一步地,视频数据端响应于客户端的停止传输加速指令,将高优先级视频链接调整为低优先级视频链接。

具体地,当客户端首个关键帧I帧接收完,则恢复ACK应答频率为默认值,并通知设备端停止视频帧传输加速和业务传输优先。

视频数据端停止视频帧传输加速和恢复链路调度优先顺序,在线用户客户端向视频数据端请求从最新的画面时间进行播放,例如比如实时直播赛事将画面刷新到最新等,允许业务层进行丢帧处理,业务层通知QUIC接收端加大ACK应答频率并将Stream1接收不完整的数据丢弃,关闭Stream1传输流通道,连接不断开,视频数据端从新的关键帧I帧开始传输视频帧数据,视频数据端应用层通知QUIC传输层开始进行关键帧I帧传输加速和流通道创建,视频数据端在QUIC链接conn1中创建新的流通道Stream2,新的视频I帧开始的视频数据通过Stream2进行发送,并将Stream1的待发送和待重传数据丢弃,关闭Stream1流通道。

由于处于刷新画面业务链路的业务优先级高于其他链路的业务,优先对高业务优先级链路1进行发送调度和数据重传调度;客户端收到连续的部分视频帧后及时通知应用层收取,当手机端最新I帧接收完,则恢复ACK应答频率为默认值,并通知设备端停止视频帧传输加速和业务传输优先。

通过上述方式,采用多用户业务优先视频加速传输方法,在业务开始阶段,同时保障业务链路调度优先和视频I帧传输加速。

在本申请一实施例中,视频播放请求为从指定的画面时间进行播放的请求,如录像回放业务中拖动进度条跳转到指定时间点进行视频播放等。

本实施例中,视频数据端根据客户端的视频播放请求将当前视频流通道的待发送和待重传的视频数据丢弃,并关闭当前视频流通道,创建新的视频流通道。

具体地,客户端向视频数据端请求从指定的画面时间进行播放时,视频数据端的业务层进行丢帧处理,业务层通知QUIC接收端加大ACK应答频率并将Stream1接收不完整的数据丢弃,关闭Stream1传输流通道,连接不断开。视频数据端从新的视频I帧开始传输视频帧数据,设备应用层通知QUIC传输层开始进行视频I帧传输加速和流通道创建。视频数据端在QUIC链接conn1中创建新的流通道Stream2,Stream2承载设备应用层数据。视频数据端新的视频I帧开始的视频数据通过Stream2进行发送,将Stream1的待发送和待重传数据丢弃,关闭Stream1。客户端收到连续的部分视频帧后及时通知应用层收取。去除掉无用和未完成的任务,释放传输链路的带宽,提高传输效率。

通过上述方式,通过切换流通道传输能够快速清理缓存数据,并将新的I帧加速传输,同时保障高业务优先级的链路调度优先,降低不同阶段传输层面的出流耗时。

步骤S22:按照待发送的视频关键帧大小,设置关键拥塞控制窗口。

视频数据端通过Stream1发送视频帧,应用层通知QUIC传输层开始进行视频帧传输加速,视频数据端对首次发送的视频I帧,调整发送端拥塞控制窗口的大小为至少为待发送I帧大小,降低丢包检测超时阈值。

步骤S23:按照关键拥塞控制窗口在视频流通道传输视频帧。

具体地,视频数据端按照关键拥塞控制窗口在视频流通道传输视频帧。

步骤S24:响应于客户端的停止传输加速指令,根据实时传输环境计算实时拥塞控制窗口。

客户端收到连续的部分视频帧后及时通知应用层收取,当客户端端首个I帧接收完,并通知视频数据端停止视频帧传输加速。设备端停止视频帧传输加速,即恢复发送端拥塞控制窗口为实时计算值,恢复丢包检测超时阈值为实时计算值。

步骤S25:按照实时拥塞控制窗口继续传输其余视频帧。

为解决上述技术问题,本申请提出一种视频传输方法,所述视频传输方法应用于一种视频传输系统,所述视频传输系统包括客户端和视频数据端,具体请参见图12,图12是本申请提供的视频传输方法的第三实施例的流程示意图。

如图12所示,具体步骤如下:

步骤S31:客户端向视频数据端发送视频播放请求。

步骤S32:视频数据端根据视频播放请求按照待发送的视频关键帧大小,设置关键拥塞控制窗口;

步骤S33:视频数据端按照关键拥塞控制窗口在视频流通道传输视频帧,其中,所述视频帧包括视频关键帧;

步骤S34:客户端按照增大应答频率接收视频数据端返回的视频关键帧,增大应答频率高于预设应答频率。

步骤S35:客户端成功接收到视频关键帧后,按照预设应答频率接收其余视频帧,并向视频数据端发送停止传输加速指令;

步骤S36:视频数据端按照所述停止传输加速指令,根据实时传输环境计算实时拥塞控制窗口,并按照实时拥塞控制窗口继续传输其余视频帧。

步骤S31-步骤S36与本申请实施例中的步骤S11-步骤S13,以及步骤S21-步骤S25相同,在此不过多赘述。

为实现上述视频传输方法,本申请还提出了一种电子设备,具体请参阅图13,图13是本申请提供的电子设备的一实施例的结构示意图。

本实施例的视频传输装置400包括处理器41、存储器42、输入输出设备43以及总线44。

该处理器41、存储器42、输入输出设备43分别与总线44相连,该存储器42中存储有程序数据,处理器41用于执行程序数据以实现上述实施例所述的视频传输方法。

在本申请实施例中,处理器41还可以称为CPU(Central ProceSSing Unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(DSP,Digital Signal ProceSS)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现场可编程门阵列(FPGA,FieldProgrammable Gate Array)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器41也可以是任何常规的处理器等。

本申请还提供一种计算机存储介质,请继续参阅图14,图14是本申请提供的计算机存储介质一实施例的结构示意图,该计算机存储介质600中存储有计算机程序61,该计算机程序61在被处理器执行时,用以实现上述实施例的视频传输方法。

本申请的实施例以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(proceSSor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AcceSS Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

技术分类

06120116571441