[ 嵌入式安防监控项目 ] [ 5 ] 视频图像显示

背景

实现摄像头采集到的图片,在网页上展示。使用 mjpeg-streamer 来实现该功能,本质上是图片连续播放,已达到动画的效果。

简介

MJPEG 全名为 “Motion Joint Photographic Experts Group”,是一种视频编码格式。缩写 MJPG。

设计思路

1. 通过 mjpg-stream 获取视频流以及抓拍图片

2. 将获取到的图片通过 opencv 进行处理


过程

1. 使用远程桌面登录树莓派 [LINK],测试摄像头是否可以正常使用

2. 编译 mjpg-stream

运行 ./run.sh 时,遇到如下问题:

MJPG Streamer Version: svn rev: 

ERROR: could not find input plugin

       Perhaps you want to adjust the search path with:

       # export LD_LIBRARY_PATH=/path/to/plugin/folder

       dlopen: libjpeg.so.8: cannot open shared object file: No such file or directory

解决方案:将缺少的库,拷贝到当前目录下,问题解决。

程序运行后,又出现如下问题:

UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device

mapping control for Focus (absolute)

UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device

mapping control for LED1 Mode

UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device

mapping control for LED1 Frequency

UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device

mapping control for Disable video processing

UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device

mapping control for Raw bits per pixel

UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device

 o: www-folder-path...: ./www/

 o: HTTP TCP port.....: 8080

 o: username:password.: disabled

 o: commands..........: enabled

现象:可以正常访问服务提供的网页,但是没有视频流输出。

原因:市面上大部分摄像头都是支持YUV的,而不是JPEG的。

解决方法:由于mjpg-stream支持JPEG和YUV两种格式,所以只需修改start.sh,在输入中加入 " - y "