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

openwrt 在RT5350上实现mjpg-streamer视频流输出(摄像头格式为YUYV格式)

2014-07-06 15:15 519 查看

openwrt 在RT5350上实现mjpg-streamer视频流输出(摄像头格式为YUYV格式)

标签:
openwrtRT5350mjpg-streamerYUYV

2014-07-06 15:15
3133人阅读 评论(0)
收藏
举报

本文章已收录于:


分类:
openwrt(4)




作者同类文章X

版权声明:本文为博主原创文章,未经博主允许不得转载。

今天按照入门教材实现mjpg-streamer的实验,出现了很多问题,特此记录。

配置内核加入摄像头驱动:

Kernel modules --->Video Support --->kmod-video-core

                                                               --->kmod-video-uvc

配置内核加入MJPEG视频流

Multimedia   --->mjpg-streamer

重新编译,烧写镜像:openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin

重启后既可以看到已经有mjpg-streamer的命令。

配置摄像头的帧率/分辨率等:

配置信息在目录:etc/config/mjpg-streamer

config mjpg-streamer 'core'                                                     

        option enabled '1'                                                      

        option input 'uvc'                                                      

        option output 'http'                                                    

        option device '/dev/video0'                                             

        option resolution '320x240'                                             

        option fps '5'                                                          

        option www '/www/webcam'                                                

        option port '8080'

启动mjpg-streamer: /etc/init.d/mjpg-streamer start

9.8 电脑或手机观看视频图像

在浏览器输入以下地址,即可观看图像。本人在火狐和搜狗浏览器测试都 OK。//问号是正常的,不要以为是乱码

动态视频:192.168.1.1:8080/?action=stream                

静态图像:192.168.1.1:8080/?action=snapshot

我在火狐上使用::192.168.1.1:8080/?action=stream                

出现错误:

The image cannot be displayed, because it contains errors

以为是火狐缺少插件,或者是其他什么原因,最后网上找了一下,发现mjpg-streamer支持MJPEG和YUV格式,但是YUV需要软编码,所以使用YUV时需要增加参数" -y"

我使用的摄像头是输出YUYV格式的摄像头,所以会出现此问题,手动启动没有加"-y"会出现很多

UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device

查看了一下/etc/init.d/mjpg-streamer这个启动脚本,发现确实没有加-y参数,所以要么修改/etc/init.d/mjpg-streamer这个脚本,增加-y,要么自动手动运行命令:

mjpg_streamer -i "input_uvc.so -d /dev/video0 -n -y -r 320x240 -f 30" -o "output_http.so -p 8080"
mjpg_streamer -i "input_uvc.so -d /dev/video0 -n -y -r 640x480 -f 30" -o "output_http.so -p 8080

实际效果肯定没有30fps,因为RT5350的CPU处理不过来,摄像头输出应该也没那么多,猜测而已。

mjpeg-streamer命令详细介绍网上多的是,这里就不介绍了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: