[发明专利]基于KCP协议的视频流传输方法有效
申请号: | 202210688382.6 | 申请日: | 2022-06-16 |
公开(公告)号: | CN115103226B | 公开(公告)日: | 2023-03-24 |
发明(设计)人: | 兰雨晴;黄永琢;刘一凡;邢智涣;王丹星 | 申请(专利权)人: | 慧之安信息技术股份有限公司 |
主分类号: | H04N21/44 | 分类号: | H04N21/44;H04N21/643 |
代理公司: | 北京广技专利代理事务所(特殊普通合伙) 11842 | 代理人: | 张国香 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 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的数值顺序进行排列接合。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于慧之安信息技术股份有限公司,未经慧之安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210688382.6/1.html,转载请声明来源钻瓜专利网。