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

视频流的传输方法、电子设备及存储介质与流程

2021-10-24 12:12:00 来源:中国专利 TAG:视频 电子设备 流传 传输 可读


1.本技术涉及视频传输领域,特别是涉及一种视频流的传输方法、电子设备及计算机可读存储介质。


背景技术:

2.在娱乐、监控等场景下,经常会存在无线传输需求,即将发送端采集到的视频流通过无线网络传输至接收端的情况。以监控场景为例,将移动监控设备布设在监控区域,移动监控设备对监控区域进行信息采集形成视频流,移动监控设备通过无线网络将视频流传输至接收端。
3.然而,现有的传输视频流的方法效率不高。为了适应传输需求,亟需一种方法来提高无线传输效率。


技术实现要素:

4.本技术提供一种视频流的传输方法、电子设备及计算机可读存储介质,能够解决现有的传输视频流的方法效率不高的问题。
5.为解决上述技术问题,本技术采用的一个技术方案是:提供一种视频流的传输方法,该方法包括:获取当前视频流,当前视频流包括多个视频帧;对多个视频帧进行等级划分;以及判断路径是否支持当前视频流的传输;若不支持当前视频流的传输,则丢弃最低等级的视频帧以更新当前视频流;重复执行上述步骤,直至路径支持所述当前视频流的传输,或者,当前视频流中剩余的视频帧的等级高于预设等级;利用路径传输当前视频流。
6.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种电子设备,该电子设备包括处理器、与处理器连接的存储器,其中,存储器存储有程序指令;处理器用于执行存储器存储的程序指令以实现上述方法。
7.为解决上述技术问题,本技术采用的又一个技术方案是:提供一种计算机可读存储介质,存储有程序指令,该程序指令被执行时能够实现上述方法。
8.通过上述方式,本技术对当前视频流中的多个视频帧进行等级划分,以及根据路径的传输能力来选择是否丢弃以及丢弃当前视频流中的等级小于或者等于预设等级的哪些视频帧。即路径的传输能力不足以支持所有等级的视频帧的传输时,按照等级从高到低的顺序丢弃当前视频流中的视频帧,从而能够提高路径对当前视频流的传输效率。
附图说明
9.图1是本技术提供的视频流的传输方法一实施例的流程示意图;
10.图2是本技术路径包括蜂窝网络和wifi网络时视频流传输的场景示意图;
11.图3是图1中s13的具体流程示意图;
12.图4是图3中s133的具体流程示意图;
13.图5是本技术为每个等级的视频帧匹配对应的路径的流程示意图;
14.图6是本技术提供的视频流的传输方法另一实施例的流程示意图;
15.图7是图6中s22的具体流程示意图;
16.图8是本技术确定下一视频流中待传输的视频帧等级的流程示意图;
17.图9是本技术提供的视频流的传输方法又一实施例的流程示意图;
18.图10是本技术提提供的接收视频流的方法一实施例的流程示意图;
19.图11是本技术电子设备一实施例的结构示意图;
20.图12是本技术计算机可读存储介质一实施例的结构示意图。
具体实施方式
21.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.本技术中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
23.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,在不冲突的情况下,本文所描述的实施例可以与其它实施例相结合。
24.图1是本技术提供的视频流的传输方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本实施例并不以图1所示的流程顺序为限。如图1所示,本实施例可以包括:
25.s11:获取当前视频流。
26.当前视频流包括多个视频帧。
27.本文所指当前视频流为整个待传输视频流中的一个视频切片。其可以是实时的(例如直播流),也可以是非实时的。
28.本实施例的执行主体为无线发送端,例如移动监控设备(移动机器人、无人机、摄像头)、手机、电脑等。
29.s12:对多个视频帧进行等级划分。
30.可以基于视频帧的类型以及视频帧的重要程度对多个视频帧进行等级划分。视频帧的类型可以包括关键帧(i帧)和非关键帧(p帧、b帧,后文仅以包含p帧为例)。可以将p帧划分为重点p帧和非重点p帧。例如,监控场景下,基于人流量密度或者其他智能检测事件将p帧划分为重点p帧和非重点p帧。其中,i帧的重要程度高于p帧,重点p帧的重要程度高于非重点p帧。svc编码的增强层至少包含2层,越低层等级越高。下表1为等级划分结果一示例:
31.表1
32.视频帧等级视频帧类型level1关键帧片段,例如i帧和其后续若干个p帧,或者svc编码的基础层
level2非关键帧片段,例如重点p帧,或者svc编码的低层增强层level3非关键帧片段,例如非重点p帧,或者svc编码的高层增强层
33.上述等级按照从高到低可以排序为level1>level2>level3。划分后视频帧的等级越高,其重要程度越高。
34.s13:判断路径是否支持当前视频流的传输。
35.能够用于传输当前视频流的路径可以有一个,也可以有多个,具体可根据实际传输场景的网络状况而定。路径可以为蜂窝网络(例如4g、5g)和wifi网络等。图2是路径包括蜂窝网络和wifi网络时视频流传输的场景示例。如图2所示,移动监控设备可以获取视频流,并且可以将视频流通过蜂窝网络传输至基站,再由基站传输至云平台;或者也可以将视频流通过wifi网络传输至无线设备,再由无线设备传输至云平台。
36.若为一个路径,则本步骤的实现方式为:判断该路径的实际带宽是否大于需求带宽。若大于,则判断该路径支持当前视频流的传输;否则判定该路径不支持当前视频流的传输。
37.若为多个路径,则本步骤为判断多个路径是否支持当前视频流的传输。其中判断多个路径是否支持当前视频流的传输,即判断多个路径中是否存在单个路径支持当前视频流的传输,或者,多个路径的组合是否支持当前视频流的传输,具体实现方式请参考后面的实施例。
38.若不支持当前视频流的传输,则执行s14。
39.s14:丢弃最低等级的视频帧以更新当前视频流。
40.在通过丢弃当前视频流中的视频帧,以使路径支持当前视频流的传输的过程中,是按照等级从低到高的顺序对视频帧进行丢弃的。
41.举例说明,多个视频帧对应有level1、level2和level3三个等级,其中重要程度从高到低排序为level1>level2>level3。判断路径是否支持level1、level2和level3的视频帧的传输;若路径不支持level1、level2和level3的视频帧的传输,则丢弃level3的视频帧;判断路径是否支持level1和level2的视频帧的传输,若路径不支持level1和level2的视频帧的传输,则丢弃level2的视频帧。
42.本步骤执行之后跳转至s13,以重复执行上述步骤,直至路径支持当前视频流的传输,或者,当前视频流中剩余的视频帧的等级高于预设等级。
43.可以理解的是,对应的等级高于预设等级的视频帧为接收端接收解码必要的视频帧。假设高于预设等级的视频帧为level1的视频帧,若当前视频流中仅剩level1的视频帧时,路径还不能支持当前视频流的传输,此时直接执行s15,以保证level1的视频帧的正常传输。
44.s15:利用路径传输当前视频流。
45.若单个路径支持当前视频流的传输,则直接利用单个路径传输当前视频流。若多个路径的组合支持当前视频流的传输,则将当前视频流分配至不同的路径传输。
46.通过本实施例的实施,本技术对当前视频流中的多个视频帧进行等级划分,以及根据路径的传输能力来选择是否丢弃以及丢弃当前视频流中的等级小于或者等于预设等级的哪些视频帧。即路径的传输能力不足以支持所有等级的视频帧的传输时,按照等级从高到低的顺序丢弃当前视频流中的视频帧,从而能够提高路径对当前视频流的传输效率。
47.结合参阅图3,在路径有多个的情况下,s13可以包括以下子步骤:
48.s131:判断是否存在单个路径的实际带宽大于当前视频流的需求带宽。
49.如果多个路径中存在单个路径的实际带宽大于当前视频流的需求带宽,那么多个路径/单个路径支持当前视频流的传输。当单个路径支持当前视频流的传输时,只通过单个路径传输,而关闭或者休眠另外一个路径可以降低能量损耗。
50.若存在,则执行s132;若不存在,则执行s133。
51.下面仍以多个路径包括蜂窝网络和wifi网络为例,给出s131的一种实现方式:
52.为蜂窝网络和wifi网络设定优先级。例如,基于所需费用设定wifi网络的优先级高于蜂窝网络。先判断wifi网络的实际带宽是否大于当前视频流的需求带宽。如果wifi网络的实际带宽大于当前视频流的需求带宽,则进入s132,以利用wifi网络传输当前视频流;否则再判断蜂窝网络的实际带宽是否大于当前视频流的需求带宽。如果蜂窝网络的实际带宽大于当前视频流的需求带宽,则进入s132;否则进入s133。
53.在其他实现方式下,可以分别判断wifi网络和蜂窝网络的实际带宽是否大于当前视频流的需求带宽;再根据判断结果确定进入s132还是s133。
54.s132:利用单个路径传输当前视频流。
55.s133:判断多个路径的组合是否支持当前视频流的传输。
56.当存在多个路径,且其中的单个路径不足以支持当前视频流的传输时,可以判断多个路径的组合是否支持当前视频流的传输,以在支持的情况下按照等级将当前视频流中的视频帧拆分至多个路径上传输,提高传输效率。
57.其中,可以在多个路径的实际带宽之和大于需求带宽的情况下,判定多个路径的组合支持当前视频流的传输;否则判定多个路径的组合不支持当前视频流的传输。或者,还可以在多个路径的实际带宽之和大于需求带宽的情况下进一步判断,根据进一步判断的结果确定多个路径的组合是否支持当前视频流的传输,具体实现方式请参见后面的实施例。
58.若多个路径的组合不支持当前视频流的传输,则执行s134。
59.s134:判定多个路径不支持当前视频流的传输。
60.结合参阅图4,如果在多个路径的实际带宽之和大于需求带宽的情况下需要进一步判断,那么s133可以包括以下子步骤:
61.s1331:判断多个路径的实际带宽之和是否大于需求带宽。
62.若大于,则执行s1332。
63.s1332:为每个等级的视频帧匹配对应的路径。
64.可以随机为当前视频流中剩余的每个等级的视频帧匹配对应的路径。
65.但是为了提高高等级视频帧的传输效率,可以为高等级的视频帧匹配实际带宽高的路径,为低等级的视频帧匹配实际带宽低的路径。下面结合图5举例说明:
66.如图5所示,蜂窝网络的实际带宽为w1,wifi网络的实际带宽为w2,当前视频流的码流(需求带宽)大小为k,其中高等级的视频帧的码流大小为kh,非高等级的视频帧的码流大小为k

kh。
67.可以选取实际带宽w1和w2中的较小值w路径作为非高等级的视频帧的路径;以及选取实际带宽w1和w2中的较大值w’路径作为高等级的视频帧的路径。
68.s1333:判断是否匹配成功。
69.继续参阅图5,判断是否满足w>(k

kh)*v,其中v(v>1)是放大倍数,用于控制实际带宽大于需求带宽的程度;若满足则匹配成功;若不满足则匹配失败。也就是说,为非高等级/低等级匹配的路径支持非高等级/低等级的传输时,才匹配成功。
70.若匹配成功,则执行s1334;若匹配失败,则执行s1335。
71.s1334:将每个等级的视频帧分配至对应的路径传输。
72.s1335:判定多个路径的组合不支持当前视频流的传输。
73.另外,如果上述s133中,在多个路径的实际带宽之和大于需求带宽的情况下,判定多个路径的组合支持当前视频流的传输(即多个路径支持当前视频流的传输),那么在s15执行之前,需要为当前视频流中每个等级的视频帧匹配对应的路径,从而在s15中,利用对应的路径传输各等级的视频帧。
74.可以理解的是,一般来说当前视频流和下一视频流大小相同,因此需求带宽也相同。并且,下一视频流中视频帧的等级划分方式与当前视频流相同。如果在传输完当前视频流之后,直接进入对下一视频流的传输,那么利用路径传输的下一视频流中的视频帧等级与利用路径传输的当前视频流中的视频帧等级相同。也就是说,如果在传输当前视频流时不存在视频帧的丢弃,那么在传输下一视频流时也不存在视频帧的丢弃;如果在传输下一视频流时存在视频帧的丢弃,那么在传输下一视频流时也存在视频帧的丢弃,且传输下一视频流时丢弃的视频帧等级与传输当前视频流时丢弃的视频帧等级相同。
75.但是,实际情况下,路径的实际带宽会随着环境的变化而变化,因此,可以在传输下一视频流之前,确定下一视频流中待传输的视频帧的等级。待传输的视频帧即为利用路径传输的视频帧。
76.如果当前视频流中不存在被丢弃的视频帧,那么可以直接将所有等级作为下一视频流中待传输的视频帧等级。
77.结合参阅图6,如果当前视频流中存在被丢弃的视频帧,确定下一视频流中待传输的视频帧的等级的实现方式可以如下:
78.s21:判断路径的实际带宽是否恢复。
79.恢复后路径的实际带宽大于恢复前路径的实际带宽。
80.若恢复,则执行s22。
81.s22:确定下一视频流中待传输的视频帧的等级。
82.结合参阅图7,s22可以包括以下子步骤:
83.s221:确定恢复后路径的实际带宽与下一视频流对应的需求带宽之间的大小关系。
84.下一视频流对应的需求带宽为下一视频流中待保留等级的视频帧和至少一个待丢弃等级的视频帧的组合的需求带宽。其中待保留等级为当前视频流中被实际传输的视频帧的等级,待丢弃等级为当前视频流中被丢弃的视频帧的等级。
85.例如,当前视频流的视频帧等级包括level1、level2和level3。其中level2和level3为被丢弃的视频帧的等级,level1为被实际传输的视频帧的等级。那么待保留等级的视频帧为level1,待丢弃等级的视频帧为level2和level3。待保留等级的视频帧和至少一个待丢弃等级的视频帧的组合可以为level1和level2的视频帧,或者可以为level1和level3的视频帧,或者可以为level1、level2和level3的视频帧。
86.s222:基于大小关系确定是否恢复以及恢复的待保留等级。
87.如果恢复后路径的带宽能够支持下一视频流中所有待丢弃等级的视频帧以及待保留等级的视频帧的传输,那么下一视频流中待传输的视频帧的等级为待丢弃等级以及待保留等级;如果恢复后路径的带宽能够支持下一视频流部分待丢弃等级的视频帧以及待保留等级的视频帧的传输,那么下一视频流中待传输的视频帧的等级为部分待丢弃等级以及待保留等级。否则下一视频流中待传输的视频帧的等级为待保留等级。
88.下面仍然以待保留的视频帧等级为level1,待丢弃的视频帧等级为level2和level3为例,对s221

s222的实现过程进行举例说明,:
89.例子1:分别判断恢复后路径的实际带宽是否大于level1和level2的视频帧的需求带宽、是否大于level1和level3的视频帧的需求带宽、以及是否大于level1、level2和level3的视频帧的需求带宽。
90.若均不大于,则不恢复level2和level3。即确定待传输的视频帧等级为level1。
91.若大于level1、level2和level3的视频帧的需求带宽之和,则恢复level1和level2。确定待传输的视频帧等级为level1、level2和level3。
92.若不大于level1、level2和level3的视频帧的需求带宽,而大于level1和level2的视频帧的需求带宽,则恢复level2。确定待传输的视频帧等级为level1和level2。
93.若不大于level1和level2的视频帧的需求带宽,而大于level1和level3的视频帧的需求带宽,则恢复level3。确定待传输的视频帧等级为level1和level3。
94.例子2:如图8所示,首先判断是否满足w>k*q,其中w为恢复后路径的实际带宽,k为level1、level2和level3(全等级、所有等级)的视频帧的需求带宽,q(q>1)为放大倍数;
95.若满足w>k*q,则确定level1、level2和level3为待传输的视频帧等级;若不满足w>k*q,则判断是否满足w>(k

kl)*q,其中kl为level3的需求带宽;
96.若满足w>(k

kl)*q,则确定level1和level2为待传输的视频帧等级;若不满足w>(k

kl)*q,则确定level1为待传输的视频帧的等级。
97.下面结合图9,以一个例子的形式对本技术提供的视频流的传输方法进行说明:
98.假设当前帧视频流的码流大小为b,wifi网络的带宽为m1,蜂窝网络的带宽为m2(m1>m2),p、v为放大倍数。其中当前帧视频流对应等级a1、a2和a3。重要程度从高到低排序为a1>a2>a3。
99.1)判断是否满足m1>b*p;若满足m1>b*p,则进入2);否则进入3)。
100.2)利用wifi网络传输当前视频流。
101.3)判断是否满足m2>b*p;若满足m2>b*p,则进入4);若不满足m2>b*p,则进入5)。
102.4)利用蜂窝网络传输当前视频流。
103.5)判断是否满足m1 m2>b*v;若满足m1 m2>b*v,则进入6)

7);若不满足,则进入10)。
104.6)为高等级视频帧匹配wifi网络,为低等级视频帧匹配蜂窝网络。
105.7)判断蜂窝网络是否支持低等级视频帧的传输,即判断是否匹配成功;若匹配失败,则进入8);若匹配成功,则进入9)。
106.8)判断当前视频流中是否仅剩余a1的视频帧;若是,则进入9);若否,则进入10)。
107.9)利用匹配的路径传输当前视频流。
108.10)丢弃最低等级的视频帧,以更新当前视频流;并跳转至1)以重复执行上述步骤。
109.在通过上述2)、4)、9)中任一个步骤传输完当前视频流之后,进入11)。
110.11)判断当前视频流中是否存在被丢弃的视频帧;若存在,则进入12)。其中11)、12)中内容在图9中未示。
111.12)判断带宽m1/m2/m1 m2是否恢复,若恢复,则基于恢复后的带宽与下一视频流对应的带宽之间的大小关系,确定下一视频流中待传输的视频帧的等级。
112.此外,在上述实施例中,任一判断步骤环节,还可以检测是否停止推送视频流。停止推送视频流意味着发送端关闭了传输视频流的事项。如果停止,则不再继续传输视频流。
113.此外,如果利用单路径且采用可靠传输协议(比如tcp)传输时,一般接收端接收到的视频流不会出现乱序的问题。但如果利用多个路径对视频流分配传输,在多个路径网络状况不对称的情况下,视频帧送达时间不一致,接收端接收到的视频流中可能存在视频帧乱序的问题。或以及,如果利用单个路径、且采用非可靠传输协议传输时,为避免漏传而重复传输,接收端接收到的视频流中也可能存在视频帧乱序的问题。为此,本技术提供的解决方法如下:
114.图10是本技术提提供的接收视频流的方法一实施例的流程示意图。如图10所示,该方法包括:
115.s31:从发送端获取视频流中的起始帧序号。
116.接收端可以从发送端获取应用层协议,从而从应用层协议获取起始帧序号。
117.s32:判断接收到的当前帧的序号是否等于起始帧序号。
118.若等于,则执行s33

s35;若不等于,则当时视频帧为乱序视频帧,执行s37。
119.s33:对当前帧进行存储或者解码,并更新起始帧序号。
120.解码后接收端可以对当前帧进行播放等处理。更新起始帧序号实质为将起始帧序号更新为起始帧序号加1。更新起始帧序号之后,可进入s34。
121.s34:判断缓存队列中是否存在序号等于起始帧序号的视频帧。
122.缓存序列中存储的是发送端已接收到但未解码的视频帧。
123.若存在,则执行s35。
124.s35:对序号等于与起始帧序号的视频帧进行存储或解码,并更新起始帧序号。
125.s36:将当前帧加入缓存队列或丢弃。
126.若当前帧序号小于起始帧序号,则将当前帧丢弃。可以理解的是,如果为了保证传输的可靠性,发送端存在重传的情况,那么当前帧序号可能小于起始帧序号,在此情况下,需要将当前帧丢弃。
127.若当前帧序号大于起始帧序号,则将当前帧加入缓存序列。
128.此外,如果传输的视频流为实时流,还可以通过控制缓存队列中视频帧的数量,来控制视频帧缓存的时间,以避免出现花屏、跳播等播放卡顿的现象出现。具体实现方式包括:可以判断缓存队列中存在的视频帧数量是否大于预设数量,如果大于预设数量,则将序号最小的若干个非关键视频帧丢弃。例如,判断缓存队列中是否存在两个i帧,如果存在,则将序号在先的i帧之前的p帧丢弃,并对序号在先的i帧进行解码,以及更新起始帧序号。
129.通过上述方式,能够提高实时流播放时画面的流畅性和实时性。
130.图11是本技术电子设备一实施例的结构示意图。如图11所示,该电子设备可以包括处理器41、与处理器41耦接的存储器42。
131.其中,存储器42存储有用于实现上述任一实施例的方法的程序指令;处理器41用于执行存储器42存储的程序指令以实现上述方法实施例的步骤。其中,处理器41还可以称为cpu(central processing unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器41也可以是任何常规的处理器等。
132.图12是本技术计算机可读存储介质一实施例的结构示意图。如图12所示,本技术实施例的计算机可读存储介质50存储有程序指令51,该程序指令51被执行时实现本技术上述实施例提供的方法。其中,该程序指令51可以形成程序文件以软件产品的形式存储在上述计算机可读存储介质50中,以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的计算机可读存储介质50包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
133.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
134.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜