您的位置:首页 > 运维架构

友善之臂视频监控方案源码学习(4) - 数据流向

2013-09-21 13:45 375 查看
转载于/article/1409494.html

【问题描述】在 友善之臂视频监控方案源码学习(1) - 架构分析一文中,对主程序架构进行了分析。其实,了解视频监控的源码,关键是了解3个问题:

(1)数据从何而来;

(2)数据如何处理;

(3)数据往何处去。

本文对数据的流向进行解析。

【解析】

1 shell脚本

[html] view
plaincopy

./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so -y -d /dev/video2"

shell脚本指明了输入和输出参数。输入参数为

[html] view
plaincopy

"input_uvc.so -y -d /dev/video2"

输入参数指明了输入控制依赖的动态链接库和输入设备。输出参数为:

[html] view
plaincopy

"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 网页抓取

[html] view
plaincopy

<body>

<center>

<img src="/?action=stream" />

</center>

</body>

后续文章,将进行详细解析。

【源码下载】

http://download.csdn.net/detail/tandesir/4915905

转载请标明出处,仅供学习交流,勿用于商业目的

Copyright @ http://blog.csdn.net/tandesir
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: