其他分享
首页 > 其他分享> > 视频流采集存储和展示技术调研

视频流采集存储和展示技术调研

作者:互联网

针对云平台直接接收摄像头视频数据的需求,本文调研了云平台接收摄像头视频数据的技术方案。



一、摄像头数据输出协议调研

调研了海康威视iDS-2VS435-F832(C)摄像头,支持RJ45网口接入网络,应用层数据传输协议RTSP,RTCP,RTP。

下面主要论述一下视频的解析原理。

1.1 图像原理

图像像素格式指的是没有经过编码的按照原始像素排列的数据,常见的rgb、rbga、bgr、bgra、yuv等都是图像像素格式。比如,一个完整的18*17像素rgb格式的图像,它的像素排列一般是这样的:

存储的时候使用一维数组来存这些数据,所以排列顺序就变成这样:rgb rgb rgb rgb.......。

图片封装格式指的日常见到的png、jpg、bmp、gif等,它是对像素格式图像做了压缩之后,再用对应格式的要求进行封装而来的,封装指的是给压缩后的图像数据增加头信息或者尾信息。其中bmp是无损压缩格式,里面的数据就是图片头信息加上rgb排列的像素数据,加图片头信息这个操作叫做封装;jpg/png这些都是有损压缩,就是对像素数据做了压缩之后再按照jpg/png的格式要求做封装。

1.2 视频原理

视频是由一帧一帧连续的视频帧组成的,视频帧是视频数据的最小组成单位。

1.2.1 视频帧像素格式rgb/rgba/bgr/bgra/yuv

视频帧指的是rgb、rgba、bgr、bgra、yuv等格式的像素格式图像经过编码后的格式。

1.2.2 视频编码h264/h265

编码是什么呢?编码就是对像素格式图像的压缩。图像的jpg、png等是对像素格式图像的压缩封装,视频帧其实也是一种像素格式图像的压缩(注意这里不包括封装,只是压缩,jpg是对图像做了压缩和封装),只不过单张的像素格式图像压缩封装采用jpg、png等格式,而视频帧的压缩采用的是h264或者h265等压缩算法。

1.2.3 视频封装格式mp4/avi/mpeg/mkv/flv

视频帧在压缩后,也是要封装的。那么视频帧的封装格式是什么呢?封装格式就是日常见到的视频文件的格式,比如mp4、avi、mpeg/mpg、mkv、flv等格式。视频的封装指的是按照每种封装格式的要求把视频帧和音频按照一定顺序存起来形成视频文件。封装格式一般都会包含一些头标识、尾标识和一些视频描述信息,这样播放器读取视频文件的时候就知道该怎么播放这些视频文件了。

1.2.4 视频流传输协议rtp/rtsp/rtcp/rtmp/http-flv

流媒体指的是采用流式传输技术在网络上分段连续发送媒体数据的一种技术与过程。此传输技术使得媒体数据包(已有媒体文件中的媒体数据,或者实时生成的媒体数据)得以像流水一样发送给用户。如果不使用此技术,就必须在使用媒体数据之前下载整个媒体文件。流式传输可传送现场正在生成过程中的实时影音,或者预存于服务器上的已有影片,当观看者在收看这些影音文件时,影音数据在送达观看者的计算机后立即由特定播放软件播放。
流媒体实际指的是一种新的媒体传输方式,有声音流、视频流、文本流、图像流、动画流等,而非一种新的媒体。
从上面的定义可以看出来,视频流是一种流媒体。所以,视频以流的方式传输重点不在视频,而在视频的流式传输协议。
目前的视频流式传输协议有:Rtp-Rtsp、Rtmp、RTP-Rtcp、hls、http-flv。

1.2.5 流媒体服务

支持音视频存储分发的服务都可以叫流媒体服务。


二、云平台接收摄像头视频数据技术调研

用javacv-platform包接收和解析,存储为本地文件系统视频文件。Javacv封装了ffmpeg用来做视频的编码、解码,封装了OpenCV用来做图像处理。



参考文献



标签:视频,存储,封装,HTTP,协议,视频流,像素,采集,格式
来源: https://www.cnblogs.com/zhangzl419/p/16662269.html