轻设计 / 轻生活 / 轻日记 / 轻梦想 === zhoumojianshe ===
© 优特良品&优特建站出品 | Powered by YOUTIY
苏ICP备13018047号-1
JAVA通过RTSP流分片下载海康超脑视频的一站式解决方案
TAGS: 后端设计

一、必备知识介绍

1、首先信息在网络的世界到底是如何传输的呢?是谁在背后默默的付出帮我们传递信息呢?

答案:UDP/TCP


2、UDP/TCP本质上是一种网络传输协议,负责、并规范了信息的传递。


3、UDP/TCP它们有什么特点呢?

       如果将要传输的信息比作我们网上购买的商品,UDP和TCP分别是2个快递小哥,UDP这个快递小哥的特点是,送东西快,但是偶尔丢件(数据丢包直接忽略),把东西放在你家门口就不管了,只管送,你收没收到货、有没有搞丢被人拿走也不管。

       而TCP这个快递小哥的特点是,送东西慢,先打电话确认业主是否在家、是否能够收件,再过去送件,很靠谱,几乎不会丢件,而且他送的快递都是标了序号的,便于排序整理,UDP那个快递小哥则不管这么多,送的快递都没有标序号。

       因此一些重要的、且时效性要求不是非常高的信息传输都会采用TCP传输,而对一些强调块、重要性一般的信息数据会选择UDP,如音视频通话。


4、RTSP是什么?

       RTSP,是目前三大流媒体协议之一,英文全称为:Real Time Streaming Protocol,即实时流传输协议,它是由Real Networks 和 Netscape2家公司共同创立。它本身并不传输数据,传输数据的动作可以让UDP/TCP协议完成,而且RTSP可以选择基于RTP协议传输。

       RTSP对流媒体提供了诸如暂停,快进等控制,它不仅提供了对于视频流的控制还定义了流格式,如TS、 mp4 格式。通常应用于安防视频监控等场景,如公安调查监控进行视频的查看、回放、快进、后退等操作,十分友好。

       最大的特点除了控制视频操作外还具有低延时的特点,通常可实现毫秒级的延时,但是也存在一些弊端,如该视频流技术实现复杂,而且对浏览器很挑剔,且flash插件播不了,这也极大的限制了它的发展。


5、RTMP是什么?

       RTMP,英文全称为:Real Time Messaging Protocol,即实时消息传输协议,由Adobe公司创立。RTMP主要基于TCP协议传输,主要传输 flv, f4v 格式流,最大的特点是装个插件可以在各大浏览器进行播放,播放门槛相对不高,可在手机上得到充分的应用、推广,因此比较受欢迎,目前也是视频云服务的主推流协议。此外RTMP时延也比较低,目前常用于手机直播、语音通话等场景。


6、HLS是什么?

       HLS,英文全称为:HTTP Live Streaming,由苹果公司提出,它是基于Http的流媒体网络传输协议,主要传输TS格式流,最大的特点是安卓、苹果都能兼容,通用性强,而且码流切换流畅,满足不同网络、不同画质的用户播放需要,但是因为该种视频流协议也存在较为致命的缺陷,那就是网络延时太高。

       本质上HLS视频流传输是将整个视频流分成一个个小切片,可理解为切土豆片,这些小片都是基于HTTP文件来下载——先下载,后观看。

       用户观看视频实际上是下载这些小的视频切片,每次只下载一些,苹果官方建议是请求到3个片之后才开始播放,若是直播,时延将超10秒,所以比较适合于点播。

       因此HLS视频的切片一般建议10s,时间间隔太短就切容易造成碎片化太严重不方便数据存储和处理,太长容易造成时延加重。


7、RTSP、RTMP、HLS比较


以上三种流媒体视频播放地址通常需要借助工具才能播放,这里给大家推荐一款播放神器:VLC

下载地址:https://www.videolan.org/

如果因为下载太慢,也可以通过百度云下载

链接:https://pan.baidu.com/s/1Rv2Ez78bwtnu07Ua41cf3w 
提取码:yrdu 


8、RTSP、RTMP、HLS 播放案例



8.1、RTSP播放测试

rtsp://192.168.3.151:554/openUrl/qr2z8WI


8.2、RTMP播放测试

rtmp://192.168.3.151:1935/live/openUrl/uwniX96


8.3、HLS播放测试

http://192.168.3.151:83/openUrl/8PH4JHO/live.m3u8


二、JAVA下载海康超脑视频

下面以RTSP的协议下载海康超脑视频

1、海康API地址,根据产品自行定位需要的API

https://open.hikvision.com/osp#综合安防管理平台

https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10&id=5cda5902f47ae80dd41a54b7


这一步的目的就是获取到RTSP的播放地址


2、海康后台音视频设置,如果不设置会出现视频播放不了或视频无声音

2.1、视频编码选择H.264

2.2、音频编码选择AAC


3、如果RTSP地址获取到之后,下面就是通过java下载RTSP视频

3.1、FFMPEG简介

       FFmpeg是领先的多媒体框架,能够解码,编码, 转码,mux,demux,流,过滤和播放人类和机器创建的几乎所有内容。

       如果你安装了FFmpeg,可以使用命令行来实现推流或视频处理,此方面内容可以搜索【FFmpeg使用】。总而言之,FFmpeg是一个开源的多媒体编解码工具。


3.2、JavaCV简介

       JavaCV 是基于 OpenCV 和其他计算机视觉库的 Java 集成,这些库是计算机视觉领域的研究人员常用的库(OpenCV, FFmpeg, libdc1394, FlyCapture, Spinnaker, OpenKinect, librealsense, CL PS3 Eye Driver, videoInput, ARToolKitPlus, flandmark, Leptonica和Tesseract),JavaCV 能够让开发人员使用 Java 访问这些库,以实现各种计算机视觉任务,例如视频处理、图像处理等。


3.3、如果只需使用openCV中的API,就无需安装FFmpeg。


3.4、javaCV下载RTSP视频的原理是通过FFmpeg帧捕捉器捕捉流的音频与视频帧来实现视频流下载保存。


3.5、为什么视频要分片下载?

答:视频文件下载目的是为了后期进行回放和追溯,如果视频文件很大,那么很有可能就无法打开和预览


3.6、网上有很多关于openCV下载RTSP视频的案例,但是或多或少都会存在一些问题

问题1:下载后的视频最后的一小段时间播放不了


问题2:下载后的视频没有声音


问题3:下载后的视频播放卡顿,好像慢镜头


问题4:下载后的视频时间和指定的时间不符合


3.7、针对以上问题小编通过查阅资料,实际操作、预演和调试,解决了以上问题,并提供源码 Demo , 付费下载

代码截图


下载效果



DEMO 下载地址


本文由周末简设原创出品,如需转载请注明出处

本文出处:https://www.youtiy.com/detail_764.html


FAQ

1、购买之后在微信公众号文章中无法复制下载地址?

答:打开微信公众号文章之后,按下快捷键 ctrl+p  会弹出打印的页面,在左侧可以选择文字进行复制

周末
2023-07-09 15:37:12
标签云
网页设计 精致慢生活 感悟思语 我的旧年华
加偶微信