基于KCP协议的视频流传输方法转让专利

申请号 : CN202210688382.6

文献号 : CN115103226B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 兰雨晴黄永琢刘一凡邢智涣王丹星

申请人 : 慧之安信息技术股份有限公司

摘要 :

本发明提供了基于KCP协议的视频流传输方法,其对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。

权利要求 :

1.基于KCP协议的视频流传输方法,其特征在于,其包括如下步骤:

步骤S1,获取摄像设备拍摄得到的视频影像,从所述视频影像中随机选取若干在时间上互不相邻的图片帧;对所述图片帧进行分析处理,确定所述视频影像的拍摄画面质量合格与否;

步骤S2,当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干视频流数据;再对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息;

步骤S3,将每个视频流数据转换为视频流数据包,并根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列;

步骤S4,通过KCP协议层将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;

其中,在所述步骤S1中,获取摄像设备拍摄得到的视频影像,从所述视频影像中随机选取若干在时间上互不相邻的图片帧具体包括:向摄像设备发送视频影像获取请求,当所述摄像设备接收到所述视频影像获取请求时,确定所述摄像设备是否完成当前的拍摄操作;

若已完成当前的拍摄操作,则将所述摄像设备当前拍摄得到的视频影像上传到发送终端;

若未完成当前的拍摄操作,则将所述摄像设备最近上一次拍摄得到的视频影像上传到发送终端;

指示发送终端从接收到的视频影像中随机选取若干在拍摄时间上互不相邻的图片帧;

其中,在所述步骤S1中,对所述图片帧进行分析处理,确定所述视频影像的拍摄画面质量合格与否具体包括:获取每个图片帧的图片画面清晰度值,若所有图片帧中图片画面清晰度值小于预设清晰度阈值的图片帧数量大于预设数量阈值,则确定所述视频影像的拍摄画面质量不合格;

否则,确定所述视频影像的拍摄画面质量合格。

2.如权利要求1所述的基于KCP协议的视频流传输方法,其特征在于:在所述步骤S2中,当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干视频流数据具体包括:当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干包括相同数量图片帧的视频流数据;并且对每个视频流数据中位于头部和位于尾部的图片帧进行编号标记。

3.如权利要求2所述的基于KCP协议的视频流传输方法,其特征在于:在所述步骤S2中,对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息具体包括:对每个视频流数据进行画面内容识别,得到每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,以此作为画面内容信息。

4.如权利要求3所述的基于KCP协议的视频流传输方法,其特征在于:在所述步骤S3中,将每个视频流数据转换为视频流数据包具体包括:将每个视频流数据压缩成为视频流数据包,并将所述视频流数据中位于头部和位于尾部的图片帧进行编号标记分别作为所述视频流数据包的头部特征值和尾部特征值。

5.如权利要求4所述的基于KCP协议的视频流传输方法,其特征在于:在所述步骤S3中,根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列具体包括:根据每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,确定每个视频流数据包的画面复杂程度值;

根据所述画面复杂程度值由小到大的顺序,将所有视频流数据包进行排列,得到视频流数据包队列。

6.如权利要求5所述的基于KCP协议的视频流传输方法,其特征在于:在所述步骤S4中,通过KCP协议层将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端具体包括:通过KCP协议层,按照所述画面复杂程度值由小到大的顺序,将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;

当完成所有视频流数据包的发送后,根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合。

7.如权利要求6所述的基于KCP协议的视频流传输方法,其特征在于:在所述步骤S4中,当完成所有视频流数据包的发送后,根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合具体包括:步骤S401,利用下面公式(1),根据每个视频流数据的拆分位数,对视频流数据分别位于头部和位于尾部的图片帧进行编号标记,所述编号标记是指将视频流数据包的头部特征值和尾部特征值分别写入到视频流数据分别位于头部和位于尾部的图片帧中。

在上述公式(1)中,Ha_0′(Ia_0,Ja_0)表示对拆分位数位第a位的视频流数据中位于头部的图片帧的第Ia_0行第Ja_0列的数值进行编号标记后的新数值;Ha_e′(Ia_e,Ja_e)表示对拆分位数位第a位的视频流数据中位于尾部的图片帧的第Ia_e行第Ja_e列的数值进行编号标记后的新数值;Ha_0(i,j)表示对拆分位数位第a位的视频流数据中位于头部的图片帧的第i行第j列的数值;Ha_e(i,j)表示对拆分位数位第a位的视频流数据中位于尾部的图片帧的第i行第j列的数值;m表示视频流数据中的每个图片帧中的每一行存在的数值总个数;n表示视频流数据中的每个图片帧中的每一列存在的数值总个数;D表示将视频影像切分为若干包括相同数量图片帧的视频流数据的总个数;len()表示求取括号内数值的位数;

表示将i的值从1取值到n,将j的值从1取值到m代入到括号内得到括号内的最

大值;(Ia_0,Ja_0)表示在得到 数值时所对应的i和j的值;(Ia_e,Ja_e)表示在得到 数值时所对应的i和j的值;

步骤S402,当完成所有视频流数据包的发送后,利用下面公式(2),根据每个接收到的视频流数据包中位于头部和位于尾部的图片帧,将每个视频流数据包的头部特征值和尾部特征值提取出来,在上述公式(2)中,Ak_0表示对接收到的第k个视频流数据包中位于头部的图片帧进行解析得到的头部特征值;Ak_e表示对接收到的第k个视频流数据包中位于尾部的图片帧进行解析得到的尾部特征值;hk_0′(Ik_0,Jk_0)表示对接收到的第k个视频流数据包中位于头部的图片帧的第Ik_0行第Jk_0列的数值替换为hk_0′(Ik_0,Jk_0);(Ik_0,Jk_0)表示在得到数值时所对应的i和j的值;hk_e′(Ik_e,Jk_e)表示对接收到的第k个视频流数据包中位于尾部的图片帧的第Ik_e行第Jk_e列的数值替换为hk_e′(Ik_e,Jk_e);(Ik_e,Jk_e)表示在得到 数值时所对应的i和j的值;hk_0(i,j)表示第k个视频流数据包中位于头部的图片帧的第i行第j列的数值;hk_e(i,j)表示第k个视频流数据包中位于尾部的图片帧的第i行第j列的数值;%表示取余运算;

步骤S403,利用下面公式(3),根据提取出来的每个视频流数据包的头部特征值和尾部特征值判断提取的是否正确,G(k)=Ak_e‑Ak_0‑1   (3)

在上述公式(3)中,G(k)表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是否正确的判定值;

若G(k)≠0,则表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是不正确的,此时重复上述步骤S402进行重新提取;

若G(k)=0,则表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是正确的;若所有视频流数据包提取的头部特征值和尾部特征值都是正确的,则将接收到的每个视频流数据包首先按照步骤S402中的公式(2)进行数值替换,然后再按照Ak_0的数值顺序进行排列接合。

说明书 :

基于KCP协议的视频流传输方法

技术领域

[0001] 本发明涉及视频数据传输的技术领域,特别涉及基于KCP协议的视频流传输方法。

背景技术

[0002] 目前,视频流数据通常是使用TCP协议或UDP协议进行传输,TCP协议的传输速度较慢,其不适用于实时性强的场景,而UDP协议的传输可靠性较差,经常会发生数据丢包的现象。为了提高视频流数据的传输速度和可靠性,可采用KCP协议进行传输,但是现有基于KCP协议的视频流数据传输都是直接将视频流数据进行切分后再传输,其并未对视频流数据进行预处理,这样无法进一步提高视频流数据的传输速率和传输顺畅性。

发明内容

[0003] 针对现有技术存在的缺陷,本发明提供基于KCP协议的视频流传输方法,对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
[0004] 本发明提供基于KCP协议的视频流传输方法,其包括如下步骤:
[0005] 步骤S1,获取摄像设备拍摄得到的视频影像,从所述视频影像中随机选取若干在时间上互不相邻的图片帧;对所述图片帧进行分析处理,确定所述视频影像的拍摄画面质量合格与否;
[0006] 步骤S2,当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干视频流数据;再对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息;
[0007] 步骤S3,将每个视频流数据转换为视频流数据包,并根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列;
[0008] 步骤S4,通过KCP协议层将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端。
[0009] 进一步,在所述步骤S1中,获取摄像设备拍摄得到的视频影像,从所述视频影像中随机选取若干在时间上互不相邻的图片帧具体包括:
[0010] 向摄像设备发送视频影像获取请求,当所述摄像设备接收到所述视频影像获取请求时,确定所述摄像设备是否完成当前的拍摄操作;
[0011] 若已完成当前的拍摄操作,则将所述摄像设备当前拍摄得到的视频影像上传到发送终端;
[0012] 若未完成当前的拍摄操作,则将所述摄像设备最近上一次拍摄得到的视频影像上传到发送终端;
[0013] 指示发送终端从接收到的视频影像中随机选取若干在拍摄时间上互不相邻的图片帧。
[0014] 进一步,在所述步骤S1中,对所述图片帧进行分析处理,确定所述视频影像的拍摄画面质量合格与否具体包括:
[0015] 获取每个图片帧的图片画面清晰度值,若所有图片帧中图片画面清晰度值小于预设清晰度阈值的图片帧数量大于预设数量阈值,则确定所述视频影像的拍摄画面质量不合格;否则,确定所述视频影像的拍摄画面质量合格。
[0016] 进一步,在所述步骤S2中,当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干视频流数据具体包括:
[0017] 当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干包括相同数量图片帧的视频流数据;并且对每个视频流数据中位于头部和位于尾部的图片帧进行编号标记。
[0018] 进一步,在所述步骤S2中,对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息具体包括:
[0019] 对每个视频流数据进行画面内容识别,得到每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,以此作为画面内容信息。
[0020] 进一步,在所述步骤S3中,将每个视频流数据转换为视频流数据包具体包括:
[0021] 将每个视频流数据压缩成为视频流数据包,并将所述视频流数据中位于头部和位于尾部的图片帧进行编号标记分别作为所述视频流数据包的头部特征值和尾部特征值。
[0022] 进一步,在所述步骤S3中,根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列具体包括:
[0023] 根据每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,确定每个视频流数据包的画面复杂程度值;
[0024] 根据所述画面复杂程度值由小到大的顺序,将所有视频流数据包进行排列,得到视频流数据包队列。
[0025] 进一步,在所述步骤S4中,通过KCP协议层将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端具体包括:
[0026] 通过KCP协议层,按照所述画面复杂程度值由小到大的顺序,将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;
[0027] 当完成所有视频流数据包的发送后,根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合。
[0028] 进一步,在所述步骤S4中,当完成所有视频流数据包的发送后,根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合具体包括:
[0029] 步骤S401,利用下面公式(1),根据每个视频流数据的拆分位数,对视频流数据分别位于头部和位于尾部的图片帧进行编号标记,所述编号标记是指将视频流数据包的头部特征值和尾部特征值分别写入到视频流数据分别位于头部和位于尾部的图片帧中。
[0030]
[0031] 在上述公式(1)中,Ha_0′(Ia_0,Ja_0)表示对拆分位数位第a位的视频流数据中位于头部的图片帧的第Ia_0行第Ja_0列的数值进行编号标记后的新数值;Ha_e′(Ia_e,Ja_e)表示对拆分位数位第a位的视频流数据中位于尾部的图片帧的第Ia_e行第Ja_e列的数值进行编号标记后的新数值;Ha_0(i,j)表示对拆分位数位第a位的视频流数据中位于头部的图片帧的第i行第j列的数值;Ha_e(i,j)表示对拆分位数位第a位的视频流数据中位于尾部的图片帧的第i行第j列的数值;m表示视频流数据中的每个图片帧中的每一行存在的数值总个数;n表示视频流数据中的每个图片帧中的每一列存在的数值总个数;D表示将视频影像切分为若干包括相同数量图片帧的视频流数据的总个数;len()表示求取括号内数值的位数;表示将i的值从1取值到n,将j的值从1取值到m代入到括号内得到括号内的
最大值;(Ia_0,Ja_0)表示在得到 数值时所对应的i和j的值;(Ia_e,
Ja_e)表示在得到 数值时所对应的i和j的值;
[0032] 步骤S402,当完成所有视频流数据包的发送后,利用下面公式(2),根据每个接收到的视频流数据包中位于头部和位于尾部的图片帧,将每个视频流数据包的头部特征值和尾部特征值提取出来,
[0033]
[0034] 在上述公式(2)中,Ak_0表示对接收到的第k个视频流数据包中位于头部的图片帧进行解析得到的头部特征值;Ak_e表示对接收到的第k个视频流数据包中位于尾部的图片帧进行解析得到的尾部特征值;hk_0′(Ik_0,Jk_0)表示对接收到的第k个视频流数据包中位于头部的图片帧的第Ik_0行第Jk_0列的数值替换为hk_0′(Ik_0,Jk_0);(Ik_0,Jk_0)表示在得到数值时所对应的i和j的值;hk_e′(Ik_e,Jk_e)表示对接收到的第k个视频流数据包中位于尾部的图片帧的第Ik_e行第Jk_e列的数值替换为hk_e′(Ik_e,Jk_e);(Ik_e,Jk_e)表示在得到 数值时所对应的i和j的值;hk_0(i,j)表示第k个视
频流数据包中位于头部的图片帧的第i行第j列的数值;hk_e(i,j)表示第k个视频流数据包中位于尾部的图片帧的第i行第j列的数值;%表示取余运算;
[0035] 步骤S403,利用下面公式(3),根据提取出来的每个视频流数据包的头部特征值和尾部特征值判断提取的是否正确,
[0036] G(k)=Ak_e‑Ak_0‑1    (3)
[0037] 在上述公式(3)中,G(k)表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是否正确的判定值;
[0038] 若G(k)≠0,则表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是不正确的,此时重复上述步骤S402进行重新提取;
[0039] 若G(k)=0,则表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是正确的;若所有视频流数据包提取的头部特征值和尾部特征值都是正确的,则将接收到的每个视频流数据包首先按照步骤S402中的公式(2)进行数值替换,然后再按照Ak_0的数值顺序进行排列接合。
[0040] 相比于现有技术,该基于KCP协议的视频流传输方法对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
[0041] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0042] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0043] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0044] 图1为本发明提供的基于KCP协议的视频流传输方法的流程示意图。

具体实施方式

[0045] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046] 参阅图1,为本发明实施例提供的基于KCP协议的视频流传输方法的流程示意图。该基于KCP协议的视频流传输方法包括如下步骤:
[0047] 步骤S1,获取摄像设备拍摄得到的视频影像,从该视频影像中随机选取若干在时间上互不相邻的图片帧;对该图片帧进行分析处理,确定该视频影像的拍摄画面质量合格与否;
[0048] 步骤S2,当该视频影像的拍摄画面质量合格时,将该视频影像切分为若干视频流数据;再对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息;
[0049] 步骤S3,将每个视频流数据转换为视频流数据包,并根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列;
[0050] 步骤S4,通过KCP协议层将该视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端。
[0051] 上述技术方案的有益效果为:该基于KCP协议的视频流传输方法对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
[0052] 优选地,在该步骤S1中,获取摄像设备拍摄得到的视频影像,从该视频影像中随机选取若干在时间上互不相邻的图片帧具体包括:
[0053] 向摄像设备发送视频影像获取请求,当该摄像设备接收到该视频影像获取请求时,确定该摄像设备是否完成当前的拍摄操作;
[0054] 若已完成当前的拍摄操作,则将该摄像设备当前拍摄得到的视频影像上传到发送终端;
[0055] 若未完成当前的拍摄操作,则将该摄像设备最近上一次拍摄得到的视频影像上传到发送终端;
[0056] 指示发送终端从接收到的视频影像中随机选取若干在拍摄时间上互不相邻的图片帧。
[0057] 上述技术方案的有益效果为:通过上述方式,向拍摄设备发送视频影像获取请求,在摄像设备完成和未完成当前的拍摄操作的情况,分别获取摄像设备在不同时刻拍摄操作,这样能够保证摄像设备向发送终端发送完整的视频影像。
[0058] 优选地,在该步骤S1中,对该图片帧进行分析处理,确定该视频影像的拍摄画面质量合格与否具体包括:
[0059] 获取每个图片帧的图片画面清晰度值,若所有图片帧中图片画面清晰度值小于预设清晰度阈值的图片帧数量大于预设数量阈值,则确定该视频影像的拍摄画面质量不合格;否则,确定该视频影像的拍摄画面质量合格。
[0060] 上述技术方案的有益效果为:根据从视频影像中随机选取若干在拍摄时间上互不相邻的图片帧的图片画面清晰度值,确定视频影像的拍摄画面质量合格与否,这样能够对视频影像的画面质量进行准确的量化判断。
[0061] 优选地,在该步骤S2中,当该视频影像的拍摄画面质量合格时,将该视频影像切分为若干视频流数据具体包括:
[0062] 当该视频影像的拍摄画面质量合格时,将该视频影像切分为若干包括相同数量图片帧的视频流数据;并且对每个视频流数据中位于头部和位于尾部的图片帧进行编号标记。
[0063] 上述技术方案的有益效果为:当视频影像的拍摄画面质量合格时,将该视频影像切分为若干包括相同数量图片帧的视频流数据,以及对每个视频流数据中位于头部和位于尾部的图片帧进行编号标记,这样能够对每个视频流数据在视频影像的时序位置进行唯一准确的标记,便于后续对传输后的视频流数据包进行准确的接合恢复。
[0064] 优选地,在该步骤S2中,对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息具体包括:
[0065] 对每个视频流数据进行画面内容识别,得到每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,以此作为画面内容信息。
[0066] 上述技术方案的有益效果为:通过上述方式,以每个视频流数据的画面包含的画面颜色和画面线条作为画面内容,这样能够从每个视频流数据中提取可识别分析的画面内容特征。
[0067] 优选地,在该步骤S3中,将每个视频流数据转换为视频流数据包具体包括:
[0068] 将每个视频流数据压缩成为视频流数据包,并将该视频流数据中位于头部和位于尾部的图片帧进行编号标记分别作为该视频流数据包的头部特征值和尾部特征值。
[0069] 上述技术方案的有益效果为:将视频流数据中位于头部和位于尾部的图片帧进行编号标记分别作为视频流数据包的头部特征值和尾部特征值,能够保证经过压缩转换得到的视频流数据包依然可携带在视频影像的时序位置进行唯一准确的标记,提高视频流数据包的时序位置可识别性。
[0070] 优选地,在该步骤S3中,根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列具体包括:
[0071] 根据每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,确定每个视频流数据包的画面复杂程度值;
[0072] 根据该画面复杂程度值由小到大的顺序,将所有视频流数据包进行排列,得到视频流数据包队列。
[0073] 上述技术方案的有益效果为:若视频流数据的画面包含的颜色种类越多,画面线条种类越大,画面线条分布区域越大,视频流数据包的画面复杂程度越高,其对应的画面复杂程度值也越大,相应地,通过上述方式能够视频流数据的画面复杂程度进行量化判断。
[0074] 优选地,在该步骤S4中,通过KCP协议层将该视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端具体包括:
[0075] 通过KCP协议层,按照该画面复杂程度值由小到大的顺序,将该视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;
[0076] 当完成所有视频流数据包的发送后,根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合。
[0077] 上述技术方案的有益效果为:通过KCP协议层,按照该画面复杂程度值由小到大的顺序,将该视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端,能够保证所有视频流数据包在最短时间内发送到接收终端。最后根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合,从而实现对视频流数据的还原恢复。
[0078] 优选地,在该步骤S4中,当完成所有视频流数据包的发送后,根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合具体包括:
[0079] 步骤S401,利用下面公式(1),根据每个视频流数据的拆分位数,对视频流数据分别位于头部和位于尾部的图片帧进行编号标记,该编号标记是指将视频流数据包的头部特征值和尾部特征值分别写入到视频流数据分别位于头部和位于尾部的图片帧中。
[0080]
[0081] 在上述公式(1)中,Ha_0′(Ia_0,Ja_0)表示对拆分位数位第a位的视频流数据中位于头部的图片帧的第Ia_0行第Ja_0列的数值进行编号标记后的新数值;Ha_e′(Ia_e,Ja_e)表示对拆分位数位第a位的视频流数据中位于尾部的图片帧的第Ia_e行第Ja_e列的数值进行编号标记后的新数值;Ha_0(i,j)表示对拆分位数位第a位的视频流数据中位于头部的图片帧的第i行第j列的数值;Ha_e(i,j)表示对拆分位数位第a位的视频流数据中位于尾部的图片帧的第i行第j列的数值;m表示视频流数据中的每个图片帧中的每一行存在的数值总个数;n表示视频流数据中的每个图片帧中的每一列存在的数值总个数;D表示将视频影像切分为若干包括相同数量图片帧的视频流数据的总个数;len()表示求取括号内数值的位数;表示将i的值从1取值到n,将j的值从1取值到m代入到括号内得到括号内的
最大值;(Ia_0,Ja_0)表示在得到 数值时所对应的i和j的值;(Ia_e,
Ja_e)表示在得到 数值时所对应的i和j的值;
[0082] 步骤S402,当完成所有视频流数据包的发送后,利用下面公式(2),根据每个接收到的视频流数据包中位于头部和位于尾部的图片帧,将每个视频流数据包的头部特征值和尾部特征值提取出来,
[0083]
[0084] 在上述公式(2)中,Ak_0表示对接收到的第k个视频流数据包中位于头部的图片帧进行解析得到的头部特征值;Ak_e表示对接收到的第k个视频流数据包中位于尾部的图片帧进行解析得到的尾部特征值;hk_0′(Ik_0,Jk_0)表示对接收到的第k个视频流数据包中位于头部的图片帧的第Ik_0行第Jk_0列的数值替换为hk_0′(Ik_0,Jk_0);(Ik_0,Jk_0)表示在得到数值时所对应的i和j的值;hk_e′(Ik_e,Jk_e)表示对接收到的第k个视频流数据包中位于尾部的图片帧的第Ik_e行第Jk_e列的数值替换为hk_e′(Ik_e,Jk_e);(Ik_e,Jk_e)表示在得到 数值时所对应的i和j的值;hk_0(i,j)表示第k个视
频流数据包中位于头部的图片帧的第i行第j列的数值;hk_e(i,j)表示第k个视频流数据包中位于尾部的图片帧的第i行第j列的数值;%表示取余运算;
[0085] 步骤S403,利用下面公式(3),根据提取出来的每个视频流数据包的头部特征值和尾部特征值判断提取的是否正确,
[0086] G(k)=Ak_e‑Ak_0‑1    (3)
[0087] 在上述公式(3)中,G(k)表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是否正确的判定值;
[0088] 若G(k)≠0,则表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是不正确的,此时重复上述步骤S402进行重新提取;
[0089] 若G(k)=0,则表示对接收到的第k个视频流数据包提取的头部特征值和尾部特征值是正确的;若所有视频流数据包提取的头部特征值和尾部特征值都是正确的,则将接收到的每个视频流数据包首先按照步骤S402中的公式(2)进行数值替换,然后再按照Ak_0的数值顺序进行排列接合。
[0090] 上述技术方案的有益效果为:利用上述公式(1),根据每个视频流数据的拆分位数对所述视频流数据中位于头部和位于尾部的图片帧进行编号标记,一是将标记融合到图片内便于简化数据提高数据传输的效率,二是将标记融合到图片内还可以对图片起到一定的加密作用,保证数据传输的安全;然后利用上述公式(2),根据每个接收到的视频流数据包中位于头部和位于尾部的图片帧将每个视频流数据包的头部特征值和尾部特征值提取出来,目的是自动将头部特征值和尾部特征值提取出来便于后续自动进行拼接合并,提醒系统的自动化和智能化的特点;最后利用上述公式(3),根据提取出来的每个视频流数据包的头部特征值和尾部特征值判断提取的是否准确,从而保证提取到的头部特征值和尾部特征值是正确的,确保系统进行自动接合的准确。
[0091] 从上述实施例的内容可知,该基于KCP协议的视频流传输方法对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
[0092] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。