https://blog.csdn.net/lxllinux/article/details/80827888
目前主流的摄像头接口主要是USB和MIPI下的CSI-2接口
上面这篇链接从摄像头原理开始详细阐述了摄像头生成图像的过程,以及后续的传输处理过程
然后如果想要传输摄像头采集的图像,即通过互联网进行远程显示,可以参考下面这篇文章
https://my.oschina.net/u/1757926/blog/304313
详细分析了传输使用的协议和利弊,这里需要一些计算机网络的知识。建议看一下计算机网络的书,《计算机网络》(第7版)-谢希仁,第8章-音视频服务
https://blog.csdn.net/jakezhang1990/article/details/108335089
这篇链接则分享了关于视频传输过程中编解码的一些简介
下面我补充一些知识:
目前互联网提供三种音视频服务:
-
流式存储音视频
-
流式实况音视频
-
交互式音视频
其中的流意指流媒体,网络串流,即将网络上音视频的文件用流表示及传输
1.最早的音视频传输仍然使用的是TCP和HTTP服务进行,但是后来由于各种问题,人们逐渐将音视频服务分成两种:一个普通的万维网服务器,一个媒体播放器(即流媒体服务器),专门为播放流式音视频文件而设计
在用户端的媒体播放器和媒体服务器的关系是客户与服务器的关系。媒体播放器想媒体服务器请求音视频文件,媒体服务器和媒体播放器之间采用另外的协议进行交互。
传送音视频文件可以使用TCP和UDP,但是如果需要做监控或者直播,那么就必须要使用UDP,同时在UDP之上使用别的协议来控制传输,比如RTP,RTSP,RTMP,RTCP,HLS,HTTP-FLV等各种协议,对于这些协议,如何使用,网络上已经有教程了。
而目前常见的流媒体服务器有Nginx,Red5,DSS(DarwinStreamingServer),Kurento,crtmpserver
2.一个基本的现代流媒体框架应该如下:
注意:RTMP可以用在双端;httpflv/hls只能用在拉流端
图中在推流端,ffmpeg的作用就是一个编解码的软件,因为摄像头一般如果没有做硬件编解码处理,那么都需要软件编解码。否则海量的图像信息不经过压缩难以在网络上传输,其实时性也非常差。
在这其中,还有区分局域网的传输,广域网也就是互联网的传输区别,它们的实现也是有所不同的。
其实关于摄像头音视频处理这一领域,还有许多的知识需要学习,在此只是简单的做个介绍。
后面如果有需要,会继续更新。