CN115103226B - 基于kcp协议的视频流传输方法 - Google Patents
基于kcp协议的视频流传输方法 Download PDFInfo
- Publication number
- CN115103226B CN115103226B CN202210688382.6A CN202210688382A CN115103226B CN 115103226 B CN115103226 B CN 115103226B CN 202210688382 A CN202210688382 A CN 202210688382A CN 115103226 B CN115103226 B CN 115103226B
- Authority
- CN
- China
- Prior art keywords
- video stream
- stream data
- picture
- video
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000000605 extraction Methods 0.000 claims description 6
- 238000003384 imaging method Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了基于KCP协议的视频流传输方法,其对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
Description
技术领域
本发明涉及视频数据传输的技术领域,特别涉及基于KCP协议的视频流传输方法。
背景技术
目前,视频流数据通常是使用TCP协议或UDP协议进行传输,TCP协议的传输速度较慢,其不适用于实时性强的场景,而UDP协议的传输可靠性较差,经常会发生数据丢包的现象。为了提高视频流数据的传输速度和可靠性,可采用KCP协议进行传输,但是现有基于KCP协议的视频流数据传输都是直接将视频流数据进行切分后再传输,其并未对视频流数据进行预处理,这样无法进一步提高视频流数据的传输速率和传输顺畅性。
发明内容
针对现有技术存在的缺陷,本发明提供基于KCP协议的视频流传输方法,对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
本发明提供基于KCP协议的视频流传输方法,其包括如下步骤:
步骤S1,获取摄像设备拍摄得到的视频影像,从所述视频影像中随机选取若干在时间上互不相邻的图片帧;对所述图片帧进行分析处理,确定所述视频影像的拍摄画面质量合格与否;
步骤S2,当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干视频流数据;再对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息;
步骤S3,将每个视频流数据转换为视频流数据包,并根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列;
步骤S4,通过KCP协议层将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端。
进一步,在所述步骤S1中,获取摄像设备拍摄得到的视频影像,从所述视频影像中随机选取若干在时间上互不相邻的图片帧具体包括:
向摄像设备发送视频影像获取请求,当所述摄像设备接收到所述视频影像获取请求时,确定所述摄像设备是否完成当前的拍摄操作;
若已完成当前的拍摄操作,则将所述摄像设备当前拍摄得到的视频影像上传到发送终端;
若未完成当前的拍摄操作,则将所述摄像设备最近上一次拍摄得到的视频影像上传到发送终端;
指示发送终端从接收到的视频影像中随机选取若干在拍摄时间上互不相邻的图片帧。
进一步,在所述步骤S1中,对所述图片帧进行分析处理,确定所述视频影像的拍摄画面质量合格与否具体包括:
获取每个图片帧的图片画面清晰度值,若所有图片帧中图片画面清晰度值小于预设清晰度阈值的图片帧数量大于预设数量阈值,则确定所述视频影像的拍摄画面质量不合格;否则,确定所述视频影像的拍摄画面质量合格。
进一步,在所述步骤S2中,当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干视频流数据具体包括:
当所述视频影像的拍摄画面质量合格时,将所述视频影像切分为若干包括相同数量图片帧的视频流数据;并且对每个视频流数据中位于头部和位于尾部的图片帧进行编号标记。
进一步,在所述步骤S2中,对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息具体包括:
对每个视频流数据进行画面内容识别,得到每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,以此作为画面内容信息。
进一步,在所述步骤S3中,将每个视频流数据转换为视频流数据包具体包括:
将每个视频流数据压缩成为视频流数据包,并将所述视频流数据中位于头部和位于尾部的图片帧进行编号标记分别作为所述视频流数据包的头部特征值和尾部特征值。
进一步,在所述步骤S3中,根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列具体包括:
根据每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,确定每个视频流数据包的画面复杂程度值;
根据所述画面复杂程度值由小到大的顺序,将所有视频流数据包进行排列,得到视频流数据包队列。
进一步,在所述步骤S4中,通过KCP协议层将所述视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端具体包括:
通过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协议的视频流传输方法对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于KCP协议的视频流传输方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,为本发明实施例提供的基于KCP协议的视频流传输方法的流程示意图。该基于KCP协议的视频流传输方法包括如下步骤:
步骤S1,获取摄像设备拍摄得到的视频影像,从该视频影像中随机选取若干在时间上互不相邻的图片帧;对该图片帧进行分析处理,确定该视频影像的拍摄画面质量合格与否;
步骤S2,当该视频影像的拍摄画面质量合格时,将该视频影像切分为若干视频流数据;再对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息;
步骤S3,将每个视频流数据转换为视频流数据包,并根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列;
步骤S4,通过KCP协议层将该视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端。
上述技术方案的有益效果为:该基于KCP协议的视频流传输方法对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
优选地,在该步骤S1中,获取摄像设备拍摄得到的视频影像,从该视频影像中随机选取若干在时间上互不相邻的图片帧具体包括:
向摄像设备发送视频影像获取请求,当该摄像设备接收到该视频影像获取请求时,确定该摄像设备是否完成当前的拍摄操作;
若已完成当前的拍摄操作,则将该摄像设备当前拍摄得到的视频影像上传到发送终端;
若未完成当前的拍摄操作,则将该摄像设备最近上一次拍摄得到的视频影像上传到发送终端;
指示发送终端从接收到的视频影像中随机选取若干在拍摄时间上互不相邻的图片帧。
上述技术方案的有益效果为:通过上述方式,向拍摄设备发送视频影像获取请求,在摄像设备完成和未完成当前的拍摄操作的情况,分别获取摄像设备在不同时刻拍摄操作,这样能够保证摄像设备向发送终端发送完整的视频影像。
优选地,在该步骤S1中,对该图片帧进行分析处理,确定该视频影像的拍摄画面质量合格与否具体包括:
获取每个图片帧的图片画面清晰度值,若所有图片帧中图片画面清晰度值小于预设清晰度阈值的图片帧数量大于预设数量阈值,则确定该视频影像的拍摄画面质量不合格;否则,确定该视频影像的拍摄画面质量合格。
上述技术方案的有益效果为:根据从视频影像中随机选取若干在拍摄时间上互不相邻的图片帧的图片画面清晰度值,确定视频影像的拍摄画面质量合格与否,这样能够对视频影像的画面质量进行准确的量化判断。
优选地,在该步骤S2中,当该视频影像的拍摄画面质量合格时,将该视频影像切分为若干视频流数据具体包括:
当该视频影像的拍摄画面质量合格时,将该视频影像切分为若干包括相同数量图片帧的视频流数据;并且对每个视频流数据中位于头部和位于尾部的图片帧进行编号标记。
上述技术方案的有益效果为:当视频影像的拍摄画面质量合格时,将该视频影像切分为若干包括相同数量图片帧的视频流数据,以及对每个视频流数据中位于头部和位于尾部的图片帧进行编号标记,这样能够对每个视频流数据在视频影像的时序位置进行唯一准确的标记,便于后续对传输后的视频流数据包进行准确的接合恢复。
优选地,在该步骤S2中,对每个视频流数据进行画面内容识别,得到每个视频流数据包含的画面内容信息具体包括:
对每个视频流数据进行画面内容识别,得到每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,以此作为画面内容信息。
上述技术方案的有益效果为:通过上述方式,以每个视频流数据的画面包含的画面颜色和画面线条作为画面内容,这样能够从每个视频流数据中提取可识别分析的画面内容特征。
优选地,在该步骤S3中,将每个视频流数据转换为视频流数据包具体包括:
将每个视频流数据压缩成为视频流数据包,并将该视频流数据中位于头部和位于尾部的图片帧进行编号标记分别作为该视频流数据包的头部特征值和尾部特征值。
上述技术方案的有益效果为:将视频流数据中位于头部和位于尾部的图片帧进行编号标记分别作为视频流数据包的头部特征值和尾部特征值,能够保证经过压缩转换得到的视频流数据包依然可携带在视频影像的时序位置进行唯一准确的标记,提高视频流数据包的时序位置可识别性。
优选地,在该步骤S3中,根据每个视频流数据的画面内容信息,将所有视频流数据包进行排列,得到视频流数据包队列具体包括:
根据每个视频流数据的画面包含的画面颜色类型和画面线条类型与分布状态,确定每个视频流数据包的画面复杂程度值;
根据该画面复杂程度值由小到大的顺序,将所有视频流数据包进行排列,得到视频流数据包队列。
上述技术方案的有益效果为:若视频流数据的画面包含的颜色种类越多,画面线条种类越大,画面线条分布区域越大,视频流数据包的画面复杂程度越高,其对应的画面复杂程度值也越大,相应地,通过上述方式能够视频流数据的画面复杂程度进行量化判断。
优选地,在该步骤S4中,通过KCP协议层将该视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端具体包括:
通过KCP协议层,按照该画面复杂程度值由小到大的顺序,将该视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;
当完成所有视频流数据包的发送后,根据每个视频流数据包各自的头部特征值和尾部特征值,将所有视频流数据包进行接合。
上述技术方案的有益效果为:通过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的数值顺序进行排列接合。
上述技术方案的有益效果为:利用上述公式(1),根据每个视频流数据的拆分位数对所述视频流数据中位于头部和位于尾部的图片帧进行编号标记,一是将标记融合到图片内便于简化数据提高数据传输的效率,二是将标记融合到图片内还可以对图片起到一定的加密作用,保证数据传输的安全;然后利用上述公式(2),根据每个接收到的视频流数据包中位于头部和位于尾部的图片帧将每个视频流数据包的头部特征值和尾部特征值提取出来,目的是自动将头部特征值和尾部特征值提取出来便于后续自动进行拼接合并,提醒***的自动化和智能化的特点;最后利用上述公式(3),根据提取出来的每个视频流数据包的头部特征值和尾部特征值判断提取的是否准确,从而保证提取到的头部特征值和尾部特征值是正确的,确保***进行自动接合的准确。
从上述实施例的内容可知,该基于KCP协议的视频流传输方法对视频影像中的若干图片帧的分析结果,确定其拍摄画面质量合格与否;将拍摄画面质量合格的视频影像切分为若干视频流数据,并识别其包含的画面内容信息,以此将所有视频流数据包进行排列,得到视频流数据包队列;最后通过KCP协议层将视频流数据包队列包括的所有视频流数据包从发送终端发送到接收终端;上述视频流传输方法在利用KCP协议层进行传输前,先对视频影像进行拍摄画面质量合格与否判断,画面内容识别和视频流数据包排列的预处理,这样能够有效改善视频影像的可传输性,以及进一步提高视频流数据的传输速率和传输顺畅性。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
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的数值顺序进行排列接合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210688382.6A CN115103226B (zh) | 2022-06-16 | 2022-06-16 | 基于kcp协议的视频流传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210688382.6A CN115103226B (zh) | 2022-06-16 | 2022-06-16 | 基于kcp协议的视频流传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115103226A CN115103226A (zh) | 2022-09-23 |
CN115103226B true CN115103226B (zh) | 2023-03-24 |
Family
ID=83291500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210688382.6A Active CN115103226B (zh) | 2022-06-16 | 2022-06-16 | 基于kcp协议的视频流传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115103226B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115996322B (zh) * | 2023-03-21 | 2023-05-30 | 深圳市安科讯实业有限公司 | 数字视频摄影用影像数据管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103269457A (zh) * | 2013-05-15 | 2013-08-28 | 西安交通大学 | 基于失真估计的h.264/avc视频包优先级调度方法 |
CN109150876A (zh) * | 2018-08-20 | 2019-01-04 | 深圳市昊源科技有限公司 | 一种视频无线传输的qos方法、装置及*** |
CN113613066A (zh) * | 2021-08-03 | 2021-11-05 | 天翼爱音乐文化科技有限公司 | 一种实时视频特效的渲染方法、***、装置及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2373707A1 (en) * | 2001-02-28 | 2002-08-28 | Paul Besl | Method and system for processing, compressing, streaming and interactive rendering of 3d color image data |
CN110489606B (zh) * | 2019-07-31 | 2023-06-06 | 云南师范大学 | 一种分组Hilbert编码和解码方法 |
CN111970215B (zh) * | 2020-10-21 | 2021-01-29 | 武汉中科通达高新技术股份有限公司 | 一种数据包管理方法及装置 |
-
2022
- 2022-06-16 CN CN202210688382.6A patent/CN115103226B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103269457A (zh) * | 2013-05-15 | 2013-08-28 | 西安交通大学 | 基于失真估计的h.264/avc视频包优先级调度方法 |
CN109150876A (zh) * | 2018-08-20 | 2019-01-04 | 深圳市昊源科技有限公司 | 一种视频无线传输的qos方法、装置及*** |
CN113613066A (zh) * | 2021-08-03 | 2021-11-05 | 天翼爱音乐文化科技有限公司 | 一种实时视频特效的渲染方法、***、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115103226A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400547B (zh) | 一种人机协作的视频异常检测方法 | |
CN110008797B (zh) | 一种多摄像机多人脸视频接续采集方法 | |
CN109919977B (zh) | 一种基于时间特征的视频运动人物跟踪与身份识别方法 | |
CN115103226B (zh) | 基于kcp协议的视频流传输方法 | |
CN111767798B (zh) | 一种面向室内联网视频监控的智能导播方法及*** | |
WO2020252974A1 (zh) | 一种针对运动状态下的多目标对象追踪方法和装置 | |
CN108549852A (zh) | 基于深度网络增强的特定场景下行人检测器自动学习方法 | |
CN107392179A (zh) | 一种基于人脸识别的教学考勤方法 | |
CN112200807B (zh) | 一种视频质量诊断方法与*** | |
CN112995654A (zh) | 视频播放卡顿检测方法、装置、服务器及可读存储介质 | |
CN111612796A (zh) | 图像处理方法及装置 | |
CN114943923A (zh) | 基于深度学习的视频识别炮弹***火光烟雾方法及*** | |
CN115314713A (zh) | 基于加速后视频的目标片段实时提取方法、***及装置 | |
CN110913207A (zh) | 一种基于多任务深度学习的视频传输质量评价方法 | |
CN117395424A (zh) | 一种用于视频无线传输监控***的视频优化方法 | |
WO2023280117A1 (zh) | 指示信号识别方法、设备以及计算机存储介质 | |
CN113873144B (zh) | 图像抓拍方法、图像抓拍装置及计算机可读存储介质 | |
WO2022062649A1 (zh) | 一种神经网络鲁棒性检测方法和装置 | |
CN111612800B (zh) | 船舶图像检索方法、计算机可读存储介质和设备 | |
CN113450381A (zh) | 一种图像分割模型的准确度评价***及方法 | |
CN108682034B (zh) | 一种基于安卓***的智能手表实体指针的确位方法 | |
CN112200036A (zh) | 学生行为远程监控方法和*** | |
CN111797691A (zh) | 提高人脸识别准确率的方法及处理子*** | |
CN113923513B (zh) | 一种视频处理方法及设备 | |
CN110363173A (zh) | 一种配电房巡检机器人多仪表自动识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |