“MJPG-streamer”是一个轻量级的视频服务器软件。一个可以从单一输入组件获取图像并传输到多个输出组件的命令行应用程序。
该软件可应用在基于IP协议的网络中,从网络摄像机中获取并传输JPEG格式的图像到浏览器,例如Firefox、Cambozola、Videolanclie nt,甚至是一个运行了TCPMP播放器的Windows移动设备。
它继承于uvc_streamer,为在RAM和CPU上存在资源限制的嵌入式设备而写的。因为兼容Linux-uvc的摄像机可以直接生成JPEG数据,即使是运行OpenWRT Linux的嵌入式设备也可以快速处理M-JPEG数据流。
这款工具源代码简洁,注释清晰。组件功能明确,衔接清晰。使用Linux C语言进行开发,可移植到不同的计算机平台,也可以在根据GPL v2的条款下进行改进和发行。
1 MJPG-streamer的处理流程
MJPG-streamer主函数的定义在mjpg-streamer.c文件。主函数的处理流程如图1所示。
2 MJPG-streamer的相关组件
MJPG-streamer采用模块化的设计方法,以功能块为单位进行描述,这些功能块被称为plug-in(组件)。软件中定义好了各组件的输入、输出,以及组件之间的衔接关系。用户可自行根据对功能的需求,选择需要的模块。这种模块化的程序设计简化了代码的编写、调试、维护,程序员只需要遵守设计的规范,就可以轻松地改写软件,或者编写新的模块以增强软件的功能。
MJPG-streamer最主要并且最常用的组件是input_uvc输入组件和output_http输出组件。其他组件包括input_control、input_file、input_testpicture、input_gspcavl、output_autofocus、output_file、out_viewer,如图2所示。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉