基于提取摄像头视频流中视频帧数据的高效视频播放方法技术

技术编号:32912943 阅读:22 留言:0更新日期:2022-04-07 12:03
本发明专利技术涉及视频播放技术领域,提供一种基于提取摄像头视频流中视频帧数据的高效视频播放方法,包括步骤100,服务端通过摄像头的SDK连接登陆摄像头;步骤200,当摄像头拍摄到视频画面时,摄像头封装视频画面为PS包,再将PS包封装为RTP包,通过回调函数向服务端发送封装后的RTP包;步骤300,根据获取到的RTP包形式的视频流,将视频流中的RTP包解析为PS包;步骤400,解析每个PS包的音视频数据,连续提取摄像头视频流中的目标视频帧数据;步骤500,多次获取从步骤400解析出的PES包的视频帧数据,等待视频关键帧出现,将视频帧数据推送给前端web网页画面。本发明专利技术能提升播放过程的安全性和播放速度。和播放速度。和播放速度。

【技术实现步骤摘要】
基于提取摄像头视频流中视频帧数据的高效视频播放方法


[0001]本专利技术涉及视频播放
,尤其涉及一种基于提取摄像头视频流中视频帧数据的高效视频播放方法。

技术介绍

[0002]摄像头基本的功能还是视频传输,就是将图片一张张传到屏幕,由于传输速度很快,所以可以让大家看到连续动态的画面,就像放电影一样。一般当画面的传输数量达到每秒24帧时,画面就有了连续性。随着互联网基础设施的完善以及4G、5G等技术的大规模商用,在Chrome、Firefox、Edge等浏览器播放摄像头视频流也慢慢成为了信息化系统的行业标准。
[0003]早些年可用VLC播放器在网页中播放RTSP视频流,2015年Chrome、Firefox等浏览器取消了对NPAPI插件的支持,导致在高版本的Chrome等浏览器网页无法播放海康威视、大华等摄像头RTSP视频流,必须通过安装第三方插件才能实现,且占用硬件资源较大,如果多路播容易出现延迟卡顿现象。
[0004]1、传统直连摄像头查看视频画面的方式无法在公网上直接观看,需要在路由器上设置端口,通过端口转发的方式查看摄像头视频,对于摄像头来说存在安全隐患,容易受到攻击。
[0005]2、传统直连摄像头查看视频画面的方式,由于摄像头视频流是封装好的格式,要想解析播放需安装浏览器插件,否则无法播放视频,无法兼容手机等移动端浏览器,因为手机等移动端无法安装插件。
[0006]3、现有的公网转发方案需调用rtsp流转码rtmp或推流,会占用大量的服务器系统资源且存在极大延迟。<br/>[0007]4、现有技术受限于摄像头厂家不同的原因,在播放端都需要安装各自厂家的插件方可播放,操作繁琐浪费时间。

技术实现思路

[0008]本专利技术主要解决现有技术的摄像头视频在外部网络的播放问题、多平台客户端播放兼容问题以及播放视频过程中占用服务器资源高、播放延迟卡顿等问题,提出一种基于提取摄像头视频流中视频帧数据的高效视频播放方法,以提升播放过程的安全性和播放速度。
[0009]本专利技术提供了一种基于提取摄像头视频流中视频帧数据的高效视频播放方法,包括以下过程:
[0010]步骤100,当网页端请求播放摄像头视频时,服务端通过摄像头的SDK连接登陆摄像头;
[0011]步骤200,服务端注册摄像头的回调函数,摄像头启动画面预览;当摄像头拍摄到视频画面时,摄像头封装视频画面为PS包,再将PS包封装为RTP包,之后摄像头基于RTP协议
通过回调函数向服务端发送封装后的RTP包形式的视频流;
[0012]步骤300,根据获取到的RTP包形式的视频流,将视频流中的RTP包解析为PS包;
[0013]步骤400,解析每个PS包的音视频数据,连续提取摄像头视频流中的目标视频帧数据;
[0014]步骤500,多次获取从步骤400解析出的PES包的视频帧数据,等待视频关键帧出现,将视频帧数据推送给前端web网页画面;
[0015]步骤600,服务端将关键帧及后续视频帧推送到网页端,进行视频播放。
[0016]进一步的,所述步骤100,包括步骤101至步骤103:
[0017]步骤101,网页端向服务端发送摄像头播放请求;
[0018]步骤102,服务端根据摄像头播放请求,初始化摄像头SDK;
[0019]步骤103,服务端使用摄像头的用户名和密码,登陆摄像头。
[0020]进一步的,在步骤200中,所述PS包封装为RTP包,包括:通过多个RTP头切割PS包,形成多个RTP包。
[0021]进一步的,所述步骤300包括步骤301至303:
[0022]步骤301,服务端根据获取到的视频流,去掉每个RTP包的RTP头;
[0023]步骤302,服务端连续读取RTP包数据,直到出现PS包起始标志,将数据标志之前的数据形成一个PS包,并将PS包存入缓存;
[0024]步骤303,按照步骤301至步骤302的方法,依次切割出各个完整的PS包,直到网页端播放请求关闭为止。
[0025]进一步的,所述步骤400包括步骤401至步骤404:
[0026]步骤401,服务端依次读取缓存中每个完整的PS包,去掉PS包的PS头;
[0027]步骤402,读取PS包的系统头,如果特定标志位是目标音视频数据时,确定该PS包为音视频数据,将该PS报提取出来;如果特定标志位非目标音视频数据时,将该PS包丢弃;
[0028]步骤403,读取步骤402得到的PS包的PES头,如果PES头的特定标志位为目标视频帧数据,确定PES头为目标视频压缩格式,将该PES头所在PES包提取出来;如果PES头的特定标志位非目标视频帧数据,将该PES头所在PES包丢弃;
[0029]步骤404,重复步骤401至步骤403,连续提取摄像头视频流中的视频帧数据。
[0030]进一步的,在步骤600之后,还包括:
[0031]步骤700,服务端持续推送视频帧到网页端,同时循环检测网页端是否关闭,当网页端播放页面关闭后,等待时间阈值未再开启,服务端停止推送视频帧,流程结束。
[0032]本专利技术提供的一种基于提取摄像头视频流中视频帧数据的高效视频播放方法,与现有技术相比具有以下优点:
[0033]1、本专利技术通过服务端提取摄像头视频流中的视频帧数据,直接推送给网页端播放,摄像头视频由被动被网页端读取变成由服务端主动推送视频帧给网页端,完全屏蔽了摄像头与外网的连接,无需将摄像头通过路由端口转发开放到公网,保障隐私与安全,提升播放过程的安全性。
[0034]2、本专利技术由于是提取了摄像头的视频帧,推送到网页端,网页端无需安装插件即可直接识别和播放视频帧,在PC浏览器、手机APP、手机浏览器等终端都直接播放,提升操作的便捷性。
[0035]3、本专利技术因无转码过程,直接提取视频帧进行播放,没有转码过程,服务器资源占用和延迟都极低,播放效率极高,即便多路摄像头同时播放视频,也可以做到顺畅播放,不会出现延时卡顿的情况;基于摄像头SDK回调,解码速度和性能远高于RTSP,延迟极低,提升播放速度。
[0036]4、本专利技术通过直接提取摄像头视频帧,只需服务器端以插件形式对接厂家播放SDK即可实现对接,无需每一个客户端安装任何插件,实现高效一个服务端对接,多个客户端使用的高效对接策略。通过扩充摄像头SDK,可以同时对接多种厂家的多种设备在同一平台统一播放。
附图说明
[0037]图1是本专利技术提供的基于提取摄像头视频流中视频帧数据的高效视频播放方法的实现流程图;
[0038]图2是本专利技术提供的RTP包、PS包的数据结构示意图。
具体实施方式
[0039]为使本专利技术解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于提取摄像头视频流中视频帧数据的高效视频播放方法,其特征在于,包括以下过程:步骤100,当网页端请求播放摄像头视频时,服务端通过摄像头的SDK连接登陆摄像头;步骤200,服务端注册摄像头的回调函数,摄像头启动画面预览;当摄像头拍摄到视频画面时,摄像头封装视频画面为PS包,再将PS包封装为RTP包,之后摄像头基于RTP协议通过回调函数向服务端发送封装后的RTP包形式的视频流;步骤300,根据获取到的RTP包形式的视频流,将视频流中的RTP包解析为PS包;步骤400,解析每个PS包的音视频数据,连续提取摄像头视频流中的目标视频帧数据;步骤500,多次获取从步骤400解析出的PES包的视频帧数据,等待视频关键帧出现,将视频帧数据推送给前端web网页画面;步骤600,服务端将关键帧及后续视频帧推送到网页端,进行视频播放。2.根据权利要求1所述的基于提取摄像头视频流中视频帧数据的高效视频播放方法,其特征在于,所述步骤100,包括步骤101至步骤103:步骤101,网页端向服务端发送摄像头播放请求;步骤102,服务端根据摄像头播放请求,初始化摄像头SDK;步骤103,服务端使用摄像头的用户名和密码,登陆摄像头。3.根据权利要求2所述的基于提取摄像头视频流中视频帧数据的高效视频播放方法,其特征在于,在步骤200中,所述PS包封装为RTP包,包括:通过多个RTP头切割PS包,形成多个RTP包。4.根据权利要求3所述的基于提取摄像头视频流中视频帧数据的高效视频播放方法,其...

【专利技术属性】
技术研发人员:李盟许宏达黄志道张仁庆
申请(专利权)人:大连源动力科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1