【问题描述】在 友善之臂视频监控方案源码学习(1) - 架构分析一文中,对主程序架构进行了分析。其实,了解视频监控的源码,关键是了解3个问题:
(1)数据从何而来;
(2)数据如何处理;
(3)数据往何处去。
本文对数据的流向进行解析。
【解析】
1 shell脚本
./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so -y -d /dev/video2"
shell脚本指明了输入和输出参数。输入参数为
"input_uvc.so -y -d /dev/video2"
输入参数指明了输入控制依赖的动态链接库和输入设备。输出参数为:
"output_http.so -w ./www"
输出参数指明了输出的目录。
2 视频信息的采集
视频信息的采集涉及的文件包含在plugins/Input_uvc目录中。该目录涉及视频流的读取、压缩编码。其大致过程如下:
(1)主程序调用input_uvc.c中的函数接口:input_init和input_run。
(2)input_init主要完成参数解析,视频设备初始化操作。
(3)input_run主要开辟了抓取视频信息的线程。
3 视频信息压缩编码
视频压缩采用JPEG技术。
4 视频信息的传输
视频信息的传输涉及的文件包含在plugins/output_http目录中。其大致过程如下:
(1)主程序调用output_http.c中的函数接口:output_init和output_run。
(2)output_init完成参数解析,服务器端口初始化等操作。
(3)output_run主要是开辟了传输视频流的线程。
(4)视频传输采用的TCP/IP协议。
(5)视频流实际上是连续发送的图片。
5 网页抓取
<body> <center> <img src="/?action=stream" /> </center> </body>
后续文章,将进行详细解析。
【源码下载】
http://download.csdn.net/detail/tandesir/4915905
转载请标明出处,仅供学习交流,勿用于商业目的
Copyright @ http://blog.csdn.net/tandesir