一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

音视频的处理方法、装置及存储介质与流程

2022-06-05 15:36:30 来源:中国专利 TAG:


1.本技术涉及多媒体技术领域,尤其涉及一种音视频的处理方法、装置及存储介质。


背景技术:

2.目前,音视频播放一般采用基于音视频分片的下载模式。例如,通过互联网向终端设备提供音视频的下载方式中,服务器将同一个音视频的不同码率的版本切分为预设长度的分片,对每个分片进行封装。
3.在终端设备需要对音视频进行播放时,向服务器发送连接请求,服务器在接收到连接请求后,通过与终端设备的多次交互进行带宽探测,从而确定合适的网络通信初始窗口大小。服务器在接收到终端设备发送的音视频播放请求后,根据确定出的网络通信初始窗口大小传输音视频的初始分片。
4.但是在上述方法中,服务器在客户端发送连接请求后,需要经过多个网络通信往返时延(round trip time,rtt)进行带宽探测,导致音视频的起播时延较长,音视频播放效果不佳。


技术实现要素:

5.有鉴于此,提出了一种音视频的处理方法、装置及存储介质,在终端设备向服务器发送音视频播放请求时,主动上报用于指示终端设备当前的接入网络的网络质量情况的网络质量信息,避免了相关技术中服务器与终端设备之间多次交互进行网络带宽探测的情况,从而缩短了音视频的起播时延,保证了音视频的播放效果。
6.第一方面,本技术的实施例提供了一种音视频的处理方法,用于终端设备中,该方法包括:
7.接收播放指令,播放指令用于指示开始播放目标音视频;
8.根据播放指令,向服务器发送携带有网络质量信息的音视频播放请求,网络质量信息用于指示终端设备当前的接入网络的网络质量情况,音视频播放请求用于指示服务器返回目标音视频的音视频数据;
9.下载并播放目标音视频的音视频数据。
10.在该实现方式中,终端设备接收到目标音视频的播放指令后,向服务器发送携带有网络质量信息的音视频播放请求,音视频播放请求用于指示服务器返回目标音视频的音视频数据;终端设备下载并播放服务器返回的目标音视频的音视频数据;即在终端设备向服务器发送音视频播放请求时,主动上报终端设备当前的接入网络的网络质量信息,避免了相关技术中服务器与终端设备之间多次交互进行网络带宽探测的情况,从而缩短了音视频的起播时延,保证了音视频的播放效果。
11.在一种可能的实现方式中,网络质量信息包括终端设备当前的接入网络的网络带宽。
12.在该实现方式中,终端设备主动上报终端设备当前的接入网络的网络带宽,避免
了相关技术中网络带宽需要服务器经过多个rtt探测才能获取的情况。
13.在另一种可能的实现方式中,音视频数据包括至少一个音视频分片,该方法还包括:
14.在接收到音视频分片后,向服务器发送多个确认应答(acknowledge,ack)消息,ack消息用于指示终端设备已成功接收到音视频分片。
15.在该实现方式中,为了防止ack消息丢包,终端设备在收到音视频分片后,通过发送多个ack消息,来避免服务器由于未收到ack消息而进行降速的情况,只有在多个ack消息同时丢包的情况下,服务器才会主动下降播放码率,这种方法极大地降低了音视频播放过程发生卡顿的情况。
16.在另一种可能的实现方式中,在接收到音视频分片后,向服务器发送多个ack消息,包括:
17.在接收到音视频分片后,当接入网络当前的信号强度和/或网络时延满足预设条件时,向服务器发送多个ack消息;
18.其中,预设条件包括信号强度小于预设强度阈值,和/或网络时延大于预设时延阈值。
19.在该实现方式中,当接入网络当前的信号强度小于预设强度阈值,和/或网络时延大于预设时延阈值时,终端设备向服务器发送多个ack消息,即终端设备能够根据当前的网络质量情况灵活地控制ack消息的发送方式,在终端设备当前的接入网络的网络质量较差的情况下才会发送多个ack消息,进一步提高了终端设备的智能性和灵活性。
20.在另一种可能的实现方式中,ack消息的发送个数与接入网络的信号强度呈负相关关系。
21.在该实现方式中,ack消息的发送个数与接入网络的信号强度呈负相关关系,即接入网络的信号强度越高,ack消息的冗余量越少。
22.第二方面,本技术的实施例提供了一种音视频的处理方法,用于服务器中,该方法包括:
23.接收终端设备发送的携带有网络质量信息的音视频播放请求,网络质量信息用于指示终端设备当前的接入网络的网络质量情况;
24.根据音视频播放请求,向终端设备返回目标音视频的音视频数据。
25.在一种可能的实现方式中,网络质量信息包括接入网络的网络带宽,根据音视频播放请求,向终端设备返回目标音视频的音视频数据,包括:
26.根据接入网络的网络带宽和服务器的网络带宽,确定通信窗口大小和播放码率;
27.根据通信窗口大小和播放码率,向终端设备返回目标音视频的音视频数据。
28.在该实现方式中,服务器根据终端设备主动上报的网络质量信息确定通信窗口大小和播放码率,根据通信窗口大小和播放码率返回目标音视频的音视频数据,尽量保障目标音视频的第一个音视频分片尽快发送至终端设备,跳过了相关技术中的tcp协议的慢启动过程,实现了音视频播放的快速启动。
29.在另一种可能的实现方式中,音视频数据包括至少一个音视频分片,该方法还包括:
30.接收终端设备发送的音视频分片对应的多个ack消息,ack消息用于指示终端设备
已成功接收到音视频分片。
31.在另一种可能的实现方式中,该方法还包括:
32.在接收到同一个音视频分片对应的多个ack消息的情况下,去除重复的ack消息。
33.在该实现方式中,服务器在接收到同一个音视频分片对应的多个ack消息的情况下,去除重复的ack消息,实现了ack消息的去冗余处理。
34.第三方面,本技术的实施例提供了一种音视频的处理装置,该装置包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的方法。
35.第四方面,本技术的实施例提供了一种音视频的处理装置,该装置包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的方法。
36.第五方面,本技术的实施例提供了一种音视频的处理装置,装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的方法。
37.第六方面,本技术的实施例提供了一种音视频的处理装置,装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的方法。
38.第七方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备中运行时,电子设备中的处理器执行上述第一方面或者第一方面中的任意一种可能的实现方式所提供的方法。
39.第八方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备中运行时,电子设备中的处理器执行上述第二方面或者第二方面中的任意一种可能的实现方式所提供的方法。
40.第九方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第一方面或者第一方面中的任意一种可能的实现方式所提供的方法。
41.第十方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的方法。
附图说明
42.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本技术的示例性实施例、特征和方面,并且用于解释本技术的原理。
43.图1示出相关技术中不同的影响因素在视频播放过程中的位置示意图。
44.图2示出相关技术中rtmp的执行流程的流程示意图。
45.图3示出了本技术一个示例性实施例提供的音视频的处理系统的结构示意图。
46.图4示出了本技术一个示例性实施例提供的音视频的处理方法的流程图。
47.图5示出相关技术中音视频的处理方法的流程图。
48.图6示出了本技术另一个示例性实施例提供的音视频的处理方法的流程图。
49.图7示出了本技术另一个示例性实施例提供的音视频的处理方法的流程图。
50.图8示出了本技术一个示例性实施例提供的音视频的处理装置的框图。
51.图9示出了本技术一个示例性实施例提供的音视频的处理装置的框图。
52.图10示出了本技术一个实施例提供的终端设备的结构示意图。
53.图11示出了本技术一个实施例提供的服务器的结构示意图。
具体实施方式
54.以下将参考附图详细说明本技术的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
55.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
56.另外,为了更好的说明本技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。
57.在音视频传输技术中,如何反馈网络质量情况,并根据网络质量情况对音视频的播放码率进行调整,从而获取更佳的流畅度和更短的起播时延,是音视频传输技术中的关键。以视频传输为例,在视频播放过程中,影响播放效果的多种影响因素包括但不限于:请求的建链时间、起始分片的返回时间、分片大小及分片下载策略等。不同的影响因素在视频播放过程中的位置示意图如图1所示。其中,在预先缓冲过中,终端设备发送播放请求后开始下载分片,下载数据量达到预先缓冲阈值后终端设备开始播放视频,该过程影响首次缓冲时间。在分片下载过中,一个视频分为不同品质的多个分片,分布在不同的服务器上调度,以分片为单位进行下载和播放,该过程影响卡顿事件发生。若终端设备采用“尽快下载完”当前播放分片的策略,充分利用当前实际可用带宽,边播边下,该过程影响流量模型。为降低服务器压力,终端设备采用“间歇下载”的策略即不会一直下载尚未播放的分片,若剩余播放时间大于暂停缓冲阈值则暂停下载,若剩余播放时间小于暂停缓冲阈值则重新下载,该过程影响卡顿事件发生。
58.为了解决上述技术问题,相关技术中通常采用内容分发网络(content delivery network,cdn)、实时消息传输协议(real-time messaging protocol,rtmp)、基于超文本传输协议(hypertext transfer protocol,http)的动态自适应流媒体(dynamic adaptive streaming overhttp,dash)协议等技术。其中,rtmp为直播场景下音视频播放的传输协议。dash协议为点播场景下音视频播放的主要协议。服务器存储多种清晰度的编码,根据网络情况动态选择。在一个示意性的例子中,如图2所示,rtmp的执行流程包括但不限于以下几个步骤。步骤201,终端设备发送连接请求至服务器;步骤202,服务器根据自身的带宽大小确定发送内容消息的通信窗口大小,发送通信窗口大小发送至终端设备;步骤203,服务器发送设置的带宽信息至终端设备;步骤204,终端设备根据当前接入网络的网络带宽和服务器发送的带宽信息确定协商的通信窗口大小,发送协商的通信窗口大小至服务器,从而协
商完成两者之间传输数据的通信窗口大小;步骤205,终端设备发起音视频播放请求至服务器;步骤206,服务器发送内容块大小的确认消息至终端设备;步骤207,服务器发送播放操作执行成功消息至终端设备;步骤208,服务器发送音视频数据至终端设备。
59.上述的音视频传输技术中,服务器在终端设备发起连接请求后,通常需要至少2~3个rtt进行网络带宽探测。
60.而本技术实施例提供了一种音视频的处理方法、装置及存储介质,在终端设备向服务器发送音视频播放请求时,主动上报用于指示终端设备当前的接入网络的网络质量情况的网络质量信息,避免了相关技术中服务器与终端设备之间多次交互进行网络带宽探测的情况,从而缩短了音视频的起播时延,保证了音视频的播放效果。
61.首先,对本技术涉及的应用场景进行介绍。
62.请参考图3,其示出了本技术一个示例性实施例提供的音视频的处理系统的结构示意图。该系统包括终端设备120和服务器140。
63.终端设备120中运行有音视频客户端。音视频客户端是用于播放音视频的软件应用,用户可以通过音视频客户端播放音视频。
64.终端设备120用于通过音视频客户端向服务器140发送音视频播放请求,接收服务器140返回的音视频数据,在音视频客户端内完成对音视频的播放。比如,终端设备120为手机,车载终端,平板电脑,电子书阅读器,动态影像专家压缩标准音频层面3(moving picture experts group audio layer iii,mp3)播放器,动态影像专家压缩标准音频层面4(moving picture experts group audio layer iv,mp4)播放器,笔记本电脑,膝上型便携计算机和台式计算机等。本技术实施例对终端设备120的类型不加以限定。
65.可选的,终端设备120和服务器140之间建立有通信连接,该通信连接可以是有线网络或无线网络。
66.该服务器140也称媒体内容服务器,用于在接收到终端设备120发送的音视频播放请求后,返回音视频数据。比如,该服务器140为cdn服务器。
67.可选地,服务器140为音频服务器或者视频服务器。
68.在本技术实施例中,终端设备120用于接收播放指令,播放指令用于指示开始播放目标音视频;根据播放指令,向服务器140发送携带有网络质量信息的音视频播放请求,网络质量信息用于指示终端设备120当前的接入网络的网络质量情况,音视频播放请求用于指示服务器140返回目标音视频的音视频数据;下载并播放目标音视频的音视频数据。
69.下面,采用几个示例性实施例对本技术实施例提供的音视频的处理方法进行介绍。
70.请参考图4,其示出了本技术一个示例性实施例提供的音视频的处理方法的流程图,本实施例以该方法用于图3所示的终端设备中来举例说明。该方法包括但不限于以下几个步骤。
71.步骤401,终端设备接收播放指令,播放指令用于指示开始播放目标音视频。
72.可选的,终端设备显示音视频客户端的用户界面,用户界面中包括目标音视频的播放控件。终端设备在接收到作用于播放控件上的用户操作信号即接收到播放指令的情况下,执行步骤402。
73.可选的,音视频客户端的用户界面中显示有多个音视频各自对应的播放控件。目
标音视频为多个音视频中的任意一个。
74.步骤402,终端设备根据播放指令,向服务器发送携带有网络质量信息的音视频播放请求。
75.其中,网络质量信息用于指示终端设备当前的接入网络的网络质量情况,音视频播放请求用于指示服务器返回目标音视频的音视频数据。
76.可选的,终端设备在接收到播放指令之前,获取终端设备当前的接入网络的网络质量信息。终端设备在接收到播放指令后向服务器发送音视频播放请求,该音视频播放请求携带有网络质量信息。即在终端设备向服务器发送音视频播放请求的时候,根据系统信息和历史信息主动上报网络质量信息。
77.其中,网络质量信息用于指示终端设备当前的接入网络的网络质量情况。网络质量信息可以包括终端设备当前的接入网络的网络带宽。网络质量信息还可以包括接入网络当前的信号强度和/或网络时延。
78.可选的,音视频播放请求携带有目标音视频的标识,音视频播放请求用于指示服务器返回与目标音视频的标识对应的音视频数据。
79.步骤403,服务器接收终端设备发送的携带有网络质量信息的音视频播放请求。
80.其中,网络质量信息用于指示终端设备当前的接入网络的网络质量情况。
81.服务器接收到终端设备发送的音视频播放请求后,获取音视频播放请求中携带的网络质量信息。
82.步骤404,服务器根据音视频播放请求,向终端设备返回目标音视频的音视频数据。
83.可选地,服务器根据网络质量信息确定通信窗口大小和播放码率;根据通信窗口大小和播放码率,向终端设备返回目标音视频的音视频数据。
84.可选的,音视频数据包括至少一个音视频分片,服务器向终端设备依次返回目标音视频的至少一个音视频分片。
85.步骤405,终端设备下载并播放目标音视频的音视频数据。
86.可选地,终端设备接收服务器依次返回的目标音视频的至少一个音视频分片。对于每个音视频分片,终端设备接收到服务器返回的音视频分片后下载并播放该音视频分片。
87.综上所述,本技术实施例通过终端设备接收到目标音视频的播放指令后,向服务器发送携带有网络质量信息的音视频播放请求,音视频播放请求用于指示服务器返回目标音视频的音视频数据;终端设备下载并播放服务器返回的目标音视频的音视频数据;即在终端设备向服务器发送音视频播放请求时,主动上报用于指示终端设备当前的接入网络的网络质量情况的网络质量信息,避免了相关技术中服务器与终端设备之间多次交互进行网络带宽探测的情况,从而缩短了音视频的起播时延,保证了音视频的播放效果。
88.相关技术中,如图5所示,发送数据的控制端在服务器侧,但是网络瓶颈往往在终端设备侧,这导致如下两个方面的问题:一方面,终端设备侧的网络质量情况反馈慢。比如,步骤501,服务器在接收到终端设备发送的连接请求后,向终端设备发送初始报文;步骤502,终端设备反馈ack消息;步骤503,服务器向终端设备发送第二报文,第二报文的报文大小大于初始报文的报文大小;步骤504,终端设备反馈ack消息。按照上述方法服务器进行网
络带宽探测,通常需要至少2~3个rtt才能探测到网络带宽。另一方面,终端设备与服务器之间的链路不对称。比如,步骤505,服务器在探测到终端设备当前的接入网络的网络带宽后,根据网络带宽调整通信窗口大小和音视频的播放码率。步骤506,服务器下发音视频分片。终端设备实际收到音视频分片后会返回ack消息至服务器。步骤507,若服务器没有收到终端设备发送的ack消息,则认为网络受损,立刻降低音视频的播放码率,按照降低后的播放码率发送后续的音视频分片。若服务器没有收到的ack消息超过预设个数,则终止发送数据。从而导致音视频的播放界面画质下降或者音视频播放过程中出现卡顿。
89.为了解决音视频传输流程中,网络带宽探测效率低下以及网络出现抖动情况下音视频的播放界面画质下降、卡顿的问题,本技术实施例提供了一种音视频的处理方法,包括但不限于如下两个阶段,如图6所示:第一个阶段即初始建链阶段,步骤601,终端设备通过音视频客户端发送连接请求至服务器;步骤602,服务器返回ack消息至终端设备。步骤603,终端设备通过音视频客户端发送携带有网络质量信息的音视频播放请求至服务器,该网络质量信息包括终端设备当前的接入网络的网络带宽;步骤604,服务器根据音视频播放请求中的网络带宽,确定合适的通信窗口大小和播放码率。从而避免了相关技术中服务器与终端设备之间多次交互进行网络带宽探测的情况。第二阶段即数据传输阶段,步骤605,服务器根据确定出的通信窗口大小和播放码率,依次向终端设备返回目标音视频的至少一个音视频分片。步骤606,终端设备在接收到音视频分片后,向服务器发送多个ack消息,确保被服务器接收到,避免相关技术中服务器因未接收到ack消息而降低播放码率,使得画质下降,甚至降低通信窗口大小,导致卡顿的情况。步骤607,服务器在接收到同一个音视频分片对应的多个ack消息的情况下,去除重复的ack消息。
90.请参考图7,其示出了本技术另一个示例性实施例提供的音视频的处理方法的流程图,本实施例以该方法用于图3所示的终端设备中来举例说明。该方法包括但不限于以下几个步骤。
91.步骤701,终端设备获取当前的接入网络的网络质量信息。
92.终端设备在接收到播放指令之前,提取获取当前的接入网络的网络质量信息。
93.可选的,当音视频客户端处于前台运行时,终端设备实时或者每隔预设时间段或者在接收到预设触发信号时获取网络质量信息。
94.示意性的,预设时间间隔是默认设置的,或者是自定义设置的。
95.示意性的,预设触发信号为作用于音视频客户端的用户界面中的用户操作信号。预设触发信号可以为用户界面切换信号,还可以为用户界面刷新信号。预设触发信号包括点击操作信号、滑动操作信号、按压操作信号、长按操作信号中的任意一种或多种的组合。本技术实施例对此不加以限定。
96.步骤702,终端设备根据接收到的播放指令,向服务器发送携带有网络质量信息的音视频播放请求。
97.终端设备在接收到播放指令后,向服务器发送携带有网络质量信息的音视频播放请求。
98.需要说明的是,相关细节可参考上述实施例中的相关描述,在此不再赘述。
99.步骤703,服务器根据接入网络的网络带宽和服务器的网络带宽,确定通信窗口大小和播放码率。
100.服务器接收终端设备发送的音视频播放请求,获取音视频播放请求中携带的网络质量信息。其中,网络质量信息包括终端设备当前的接入网络的网络带宽。可选地,网络质量信息还包括接入网络当前的信号强度和/或网络时延。
101.可选地,服务器根据接入网络的网络带宽和服务器的网络带宽,确定目标网络带宽;根据预设对应关系,确定与该目标网络带宽对应的通信窗口大小和播放码率,预设对应关系包括网络带宽、通信窗口大小和播放码率之间的对应关系。本技术实施例对根据网络带宽确定通信窗口大小和播放码率的方式不加以限定。
102.可选地,服务器根据接入网络的网络带宽和服务器的网络带宽,确定初始的通信窗口大小和播放码率,以便保证目标音视频的第一个音视频分片尽快发送至终端设备。
103.步骤704,服务器根据通信窗口大小和播放码率,向终端设备返回目标音视频的音视频分片。
104.服务器按照确定出的通信窗口大小和播放码率,依次向终端设备返回目标音视频的至少一个音视频分片。
105.可选地,服务器按照确定出的初始的通信窗口大小和播放码率,向终端设备返回目标音视频的第一个音视频分片。服务器在接收到终端设备返回的该音视频分片对应的ack消息后,继续向终端设备返回目标音视频的第二个音视频分片。以此类推,不再赘述。
106.步骤705,终端设备在接收到音视频分片后,向服务器发送多个ack消息。
107.其中,ack消息用于指示终端设备已成功接收到音视频分片。
108.为防止ack消息因为网络抖动导致服务器未收到,终端设备在接收到音视频分片后,向服务器发送多个ack消息,其中音视频分片为目标音视频的至少一个音视频分片中的任意一个。
109.可选地,终端设备在接收到音视频分片后,根据采集的接入网络当前的信号强度和/或网络时延,返回一个或多个ack消息。其中,多个ack消息为至少两个ack消息。
110.可选地,当接入网络当前的信号强度和/或网络时延满足预设条件时,终端设备向服务器发送多个ack消息;其中,预设条件包括信号强度小于预设强度阈值,和/或网络时延大于预设时延阈值。
111.接入网络的信号强度和/或网络时延用于指示接入网络的网络质量。接入网络的信号强度与网络质量呈正相关关系,即接入网络的信号强度越强,表示接入网络的网络质量越好。接入网络的网络时延与网络质量呈负相关关系,即接入网络的网络时延越大,表示接入网络的网络质量越差。其中,接入网络的网络时延也称rtt。
112.其中,预设强度阈值或者预设时延阈值为默认设置的,或者是自定义设置的。本技术实施例对此不加以限定。
113.在一种可能的实现方式中,终端设备在接收到音视频分片后,判断接入网络当前的信号强度和/或网络时延是否满足预设条件,若接入网络当前的信号强度和/或网络时延满足预设条件则确定待发送的ack消息的发送个数和发送间隔,按照发送间隔依次发送多个ack消息;若不满足预设条件则向服务器发送一个ack消息。
114.可选地,ack消息的发送个数与接入网络的信号强度呈负相关关系。即终端设备当前的接入网络的信号强度越弱,则ack消息的发送个数越大。示意性的,ack消息的发送个数设置有最小值和最大值。比如,最小值为1,最大值为3。本技术实施例对此不加以限定。
115.可选地,发送间隔为依次发送的两个ack消息之间的时间间隔,多个发送间隔可以是相同的,也可以是不同的。本技术实施例对此不加以限定。
116.在另一种可能的实现方式中,终端设备在接收到音视频分片后,向服务器发送ack消息,并判断接入网络当前的信号强度和/或网络时延是否满足预设条件,若接入网络当前的信号强度和/或网络时延满足预设条件,则终端设备确定待发送的ack消息的发送个数。终端设备实时检测接入网络当前的信号强度,当信号强度大于预设强度阈值时再次发送ack消息。
117.需要说明的是,本技术实施例对多个ack消息的发送方式不加以限定。
118.步骤706,服务器在接收到同一个音视频分片对应的多个ack消息的情况下,去除重复的ack消息。
119.为了避免误操作,服务器在接收到同一个音视频分片对应的多个ack消息的情况下,去除重复的ack消息,重新估算网络时延。服务器在接收到音视频分片对应的ack消息后,保持通信窗口大小和播放码率不变,继续执行根据通信窗口大小和播放码率,向终端设备返回目标音视频的音视频分片的步骤。
120.在一个示意性的例子中,以终端设备为手机,服务器为视频服务器为例,手机通过无线上网(英文:wi-fi)方式接入家庭网络a,启动k视频客户端,根据当前接入的家庭网络a,探测到当前家庭网络a的带宽是50mbps,在发起视频“xx烦恼”对应的视频播放请求时,通知视频服务器当前手机所接入的家庭网络a的带宽是50mbps。视频服务器根据自身的带宽和手机当前的家庭网络a的带宽,选择最佳的视频播放码率为1080p,按照15mbps进行播放。由于视频是分片播放,首分片假设是2s时长,约30mb大小,视频服务器到手机的网络时延rtt约为100ms,则手机在接收到“播放”按钮的点击操作至开始播放视频的时长(即起播时延)约为100ms,即100ms后就可以开始播放视频“xx烦恼”。而在相关技术中,由于前期至少2~3个rtt进行网络带宽探测,已经消耗200ms,加上传输控制协议(transmission control protocol,tcp)慢启动本身的特性,还需要额外3~5个rtt才完成正常内容块大小的确认,此时起播时延至少在500ms以上。
121.在视频播放过程中,若用户携带手机走动,走到信号弱的位置,考虑障碍物对wi-fi的影响,可能会出现数据包丢包的情况,导致视频服务器向终端设备推送视频分片后,未接收到终端设备的ack消息,但若用户继续走动到信号较强的位置,此时,该视频片段尚未播放完,终端设备检测到信号强度高于预设强度阈值则再次向视频服务器发送该视频片段对应的ack消息,视频服务器获取到该ack消息后,正常推送后续的1080p播放码率的视频分片。而在相关技术中,视频服务器在未收到ack消息后直接降低视频的播放码率,导致画质下降,并且由于播放码率变化,可能还会导致时间延迟,出现视频播放卡顿的现象。
122.基于上述的例子可以看出,本技术实施例提供的音视频的处理方法,对音视频播放场景中的关键指标进行了优化:
123.1、启播时延,即从接收到播放指令到音视频开始播放的时长。
124.该指标与终端设备当前的接入网络的网络带宽、网络时延和音视频的播放码率呈相关关系。比如,待播放视频为1080p视频,网络带宽约需要15mbps,视频的第一个视频分片为2s,该视频分片的大小为30mb;用户家庭网络带宽为50mb,时延为100ms。
125.在相关技术中,采用rtmp/http dash机制,即利用tcp协议进行传输:由于慢启动
的原因,需要500ms才能加载第一个片段:第一个rtt只能传输15kb,第二个rtt可以传输30kb,第三个rtt可以传输60kb,第四个rtt可以传输120kb;第5个rtt可以传输240kb,即:15 30 60 120 240=465kb=3.7mkb。
126.而在本技术实施例中,终端设备主动上报接入网络的网络带宽为50mb,服务器通过30mb进行传输,在一个rtt就可以在终端设备上下载并播放音视频的第一个音视频分片。即将起播时延从500ms降到100ms。
127.2、网络丢包率,即所丢失的数据包数量占所发送数据包的比率。
128.丢包会影响音视频播放的连续性,若网络出现丢包,则音视频播放过程中可能卡顿。比如,网络丢包率为5%。终端设备采用单ack消息进行响应的丢包率为5%,丢包后,服务器降低音视频的播放码率,影响音视频的传输吞吐,即音视频播放过程中发生卡顿的概率约为5%。
129.而在本技术实施例中,终端设备采用多个ack消息进行响应,比如采用两个ack消息进行响应的丢包率为0.25%,即仅有0.25%的概率会导致服务器降低音视频的播放码率,即音视频播放过程中发生卡顿的概率仅为0.25%。
130.综上所述,本技术实施例提供的音视频的处理方法,在一方面,终端设备主动上报网络质量信息:终端设备向服务器发送音视频播放请求,该音视频播放请求携带有终端设备当前的接入网络的网络质量信息,网络质量信息包括网络带宽,避免了相关技术中网络质量信息需要服务器经过多个rtt探测才能获取的情况。在另一方面,实现了音视频播放的快速启动:服务器根据终端设备主动上报的网络质量信息确定通信窗口大小和播放码率,根据通信窗口大小和播放码率返回目标音视频的音视频数据,尽量保障目标音视频的第一个音视频分片尽快发送至终端设备,跳过了相关技术中的tcp协议的慢启动过程。在另一方面,实现了接入网络拥塞处理:为了防止ack消息丢包,终端设备在收到音视频分片后,通过发送多个ack消息,来避免服务器由于未收到ack消息而进行降速的情况,其中ack消息的发送个数与接入网络的信号强度呈负相关关系,即接入网络的信号强度越高,ack消息的冗余量越少;只有在多个ack消息同时丢包的情况下,服务器才会主动下降播放码率,这种方法极大地降低了音视频播放过程发生卡顿的情况;在另一方面,实现了ack消息的去冗余处理:服务器在接收到同一个音视频分片对应的多个ack消息的情况下,去除重复的ack消息,重新估算rtt,只要服务器收到某一个ack消息,则说明即便上行链路出现了某些问题,当前的下行链路是正常的,这种情况下服务器无需降低音视频的播放码率,可以仍然按照当前的通信窗口大小和播放码率向终端设备返回下一个音视频分片,而只有在多个ack消息均没有收到的情况下,服务器才会降低音视频的播放码率,按照降低后的播放码率发送后续的音视频分片。
131.请参考图8,其示出了本技术一个示例性实施例提供的音视频的处理装置的框图。该音视频的处理装置可以通过软件、硬件或者两者的结合实现成为图3所示的终端设备的全部或者一部分。该音视频的处理装置可以包括:接收单元810、发送单元820和处理单元830。
132.接收单元810,用于接收播放指令,播放指令用于指示开始播放目标音视频;
133.发送单元820,用于根据播放指令,向服务器发送携带有网络质量信息的音视频播放请求,网络质量信息用于指示终端设备当前的接入网络的网络质量情况,音视频播放请
求用于指示服务器返回目标音视频的音视频数据;
134.处理单元830,下载并播放目标音视频的音视频数据。
135.在一种可能的实现方式中,网络质量信息包括终端设备当前的接入网络的网络带宽。
136.在另一种可能的实现方式中,音视频数据包括至少一个音视频分片,该装置还包括:
137.发送单元820,还用于在接收到音视频分片后,向服务器发送多个ack消息,ack消息用于指示终端设备已成功接收到音视频分片。
138.在另一种可能的实现方式中,发送单元820,还用于在接收到音视频分片后,当接入网络当前的信号强度和/或网络时延满足预设条件时,向服务器发送多个ack消息;
139.其中,预设条件包括信号强度小于预设强度阈值,和/或网络时延大于预设时延阈值。
140.在另一种可能的实现方式中,ack消息的发送个数与接入网络的信号强度呈负相关关系。
141.需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
142.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
143.请参考图9,其示出了本技术一个示例性实施例提供的音视频的处理装置的框图。该音视频的处理装置可以通过软件、硬件或者两者的结合实现成为图3所示的服务器的全部或者一部分。该音视频的处理装置可以包括:接收单元910和发送单元920。
144.接收单元910,用于接收终端设备发送的携带有网络质量信息的音视频播放请求,网络质量信息用于指示终端设备当前的接入网络的网络质量情况;
145.发送单元920,用于根据音视频播放请求,向终端设备返回目标音视频的音视频数据。
146.在一种可能的实现方式中,网络质量信息包括接入网络的网络带宽,发送单元920,还用于:
147.根据接入网络的网络带宽和服务器的网络带宽,确定通信窗口大小和播放码率;
148.根据通信窗口大小和播放码率,向终端设备返回目标音视频的音视频数据。
149.在另一种可能的实现方式中,音视频数据包括至少一个音视频分片,该装置还包括:
150.接收单元910,还用于接收终端设备发送的音视频分片对应的多个ack消息,ack消息用于指示终端设备已成功接收到音视频分片。
151.在另一种可能的实现方式中,该装置还包括:处理单元;
152.处理单元,用于在接收到同一个音视频分片对应的多个ack消息的情况下,去除重复的ack消息。
153.需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各个功能模块
的划分进行举例说明,实际应用中,可以根据实际需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
154.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
155.请参考图10,其示出了本技术一个实施例提供的终端设备的结构示意图。该终端设备包括中央处理器(central processing unit,cpu)1010、存储器1020、网络接口1030。
156.中央处理器1010包括一个或者一个以上处理核心。中央处理器1010用于执行终端设备的各种功能应用以及用于进行数据处理。
157.终端设备通常包括多个网络接口1030。
158.存储器1020通过总线与中央处理器1010相连。存储器1020用于存储指令,处理器1010通过执行存储器1020中存储的指令实现上述由终端设备执行的音视频的处理方法。
159.存储器1020可存储操作系统1021和至少一个功能所需的应用程序模块1022。操作系统1021包括linux操作系统、unix操作系统、windows操作系统中的至少一种。
160.可选地,应用程序模块1022包括接收单元、发送单元和处理单元以及其他用于实现上述音视频的处理方法的单元等。
161.接收单元,用于接收播放指令,播放指令用于指示开始播放目标音视频;
162.发送单元,用于根据播放指令,向服务器发送携带有网络质量信息的音视频播放请求,网络质量信息用于指示终端设备当前的接入网络的网络质量情况,音视频播放请求用于指示服务器返回目标音视频的音视频数据;
163.处理单元,下载并播放目标音视频的音视频数据。
164.可选地,存储器1020可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
165.请参考图11,其示出了本技术一个实施例提供的服务器的结构示意图。该服务器包括cpu1110、存储器1120、网络接口1130。
166.中央处理器1110包括一个或者一个以上处理核心。中央处理器1110用于执行服务器的各种功能应用以及用于进行数据处理。
167.服务器通常包括多个网络接口1130。
168.存储器1120通过总线与中央处理器1110相连。存储器1120用于存储指令,处理器1110通过执行存储器1120中存储的指令实现上述由服务器执行的音视频的处理方法。
169.存储器1120可存储操作系统1121和至少一个功能所需的应用程序模块1122。操作系统1121包括linux操作系统、unix操作系统、windows操作系统中的至少一种。
170.可选地,应用程序模块1122包括接收单元、发送单元以及其他用于实现上述音视频的处理方法的单元等。
171.接收单元,用于接收终端设备发送的携带有网络质量信息的音视频播放请求,网络质量信息用于指示终端设备当前的接入网络的网络质量情况;
172.发送单元,用于根据音视频播放请求,向终端设备返回目标音视频的音视频数据。
173.可选地,存储器1120可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
174.本技术的实施例提供了一种终端设备,该终端设备包括:处理器以及用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述终端设备侧执行的方法。
175.本技术的实施例提供了一种服务器,该服务器包括:处理器以及用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述服务器侧执行的方法。
176.本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述方法。
177.本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述方法。
178.计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。比如,计算机可读存储介质例包括但不限于:电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可擦式可编程只读存储器(electrically programmable read-only-memory,eprom或闪存)、静态随机存取存储器(static random-access memory,sram)、便携式压缩盘只读存储器(compact disc read-only memory,cd-rom)、数字多功能盘(digital video disc,dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
179.这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
180.用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(instruction set architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c 等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(local area network,lan)或广域网(wide area network,wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信
息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,fpga)或可编程逻辑阵列(programmable logic array,pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。
181.这里参照根据本技术实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
182.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
183.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
184.附图中的流程图和框图显示了根据本技术的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
185.也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或asic(application specific integrated circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
186.尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
187.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献