友善之臂视频监控方案源码学习(4)

来源:互联网 发布:2017手机淘宝修改差评 编辑:程序博客网 时间:2024/05/21 06:47

转载于http://blog.csdn.net/tandesir/article/details/8435162

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

(1)数据从何而来;

(2)数据如何处理;

(3)数据往何处去。

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

【解析】

1 shell脚本

[html] view plaincopy
  1. ./mjpg_streamer -o "output_http.so -w ./www" -i "input_uvc.so -y -d /dev/video2"  

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

[html] view plaincopy
  1. "input_uvc.so -y -d /dev/video2"  

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

[html] view plaincopy
  1. "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
  1. <body>  
  2.     <center>  
  3.       <img src="/?action=stream" />  
  4.     </center>  
  5. </body>  

 

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

 

【源码下载】

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

 

 

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

Copyright @ http://blog.csdn.net/tandesir

阅读全文
0 0
原创粉丝点击