mjpg-streamer使用

http://blog.csdn.net/hl5654/article/details/6978361

Mjpeg‐stream 是一个开源软件,用于把mjpeg格式的文件变成流媒体输出。

1.  环境平台 

目标板:mini2440

开发板上运行的系统: 内核 Linux‐2.6.32.2, 默认文件系统 root_qtopia

2  在 mini2440 上安装 mjpeg‐stream 

Step1:  获取要安装的文件 mjpeg‐stream 

文件名:mjpg‐streamer‐mini2440‐bin‐r6.tar.gz 

获取途径:自行下载 

下载地址: 

http://mjpg‐streamer‐mini2440.googlecode.com/files/mjpg‐streamer‐mini2440‐bin‐r6.tar.gz  

Step2:在 mini2440 上安装 mjpeg‐stream 

使用优盘或者ftp 等工具把 mjpeg‐stream 复制到开发板,在此假定复制到了/home/plg 目录

在控制台终端执行如下命令: 

#mkdir /mjpg‐streamer ;创建一个独立目录用于测试 

#cd mjpg‐streamer ;进入该测试目录 

#tar xvzf mjpg‐streamer‐mini2440‐bin‐r6.tar.gz ;解压安装 

3  通过网页浏览USB摄像头 

Step1:  连接好硬件 

把摄像头插装到开发板上,可以先使用开发板自带的“usb摄像头”程序测试该摄像头可用,然后重启开发板。 

Step2:  启动 mjpeg‐stream 

在命令行终端执行以下命令: 

#cd /mjpg‐streamer ;进入测试目录  

进入存放开发板中存放mjpg-streamer的文件中:如下:

 [root@FriendlyARM /]# cd home/plg/mjpg-streamer/

[root@FriendlyARM mjpg-streamer]#

[root@FriendlyARM mjpg-streamer]# ./mjpg_streamer

MJPG Streamer Version.: 2.0

ERROR: could not find input plugin

       Perhaps you want to adjust the search path with:

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

       dlopen: input_uvc.so: cannot open shared object file: No such file or dir

ectory

[root@FriendlyARM mjpg-streamer]#

如出现上述错误:这是找不到共享造成的。Linux和windows不一样,不会在可 执行文件所在的目录搜索共享库文件。解决办法:敲入如下命令:export LD_LIBRARY_PATH=/mjpg-streamer:$ LD_LIBRARY_PATH(我的共享库文件时放在/mjpg-streamer目录里的),设定共享库的搜索路径就可以了!

[root@FriendlyARMmjpg-streamer]#exportLD_LIBRARY_PATH=/mjpg-streamer:$LD_LIBRARY_PATH

[root@FriendlyARM mjpg-streamer]#

然后再执行./mjpg_streamer

会出现如下信息

[root@FriendlyARM mjpg-streamer]# ./mjpg_streamer

MJPG Streamer Version.: 2.0

 i: Using V4L2 device.: /dev/video0

 i: Desired Resolution: 640 x 480

 i: Frames Per Second.: 5

 i: Format............: MJPEG

 o: www-folder-path...: disabled

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

 o: username:password.: disabled

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

此时可以在终端看到如图输出信息,这说明已经成功启动 mjpeg‐stream 程序,这样就可以通过网页浏览视频了。

我的arm板的IP是192.168.1.230(根据自己的板子的情况而定)

在浏览器上输入:http://192.168.1.230:8080/?action=stream(我的浏览器是火狐的)

就可以看见

结束!


------------------------------

 调用./mjpg_streamer出现以下错误:

MJPG Streamer Version.: 2.0
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: 5
 i: Format............: MJPEG
Unable to set format: Invalid argument
 Init v4L2 failed !! exit fatal
 i: init_VideoIn failed

解决方法:http://www.firefoxbug.net/?p=942

系统:ubuntu 10.10

启动: ./start.sh

错误内容:

root@fire:~/mjpg-streamer/mjpg-streamer-experimental# ./start.sh
MJPG Streamer Version: svn rev: 3:160
 i: Using V4L2 device.: /dev/video0
 i: Desired Resolution: 640 x 480
 i: Frames Per Second.: -1
 i: Format............: JPEG
Unable to set format: 1196444237 res: 640x480
 Init v4L2 failed !! exit fatal
 i: init_VideoIn failed

错误原因:
市面上大部分摄像头都是支持YUV的,而不是JPEG的。mjpg-stream支持JPEG和YUV两种格式。

[fire@fire mjpg-streamer]$ cd mjpg-streamer-experimental/plugins/input_uvc/
[fire@fire input_uvc]$ vim input_uvc.c

int input_init(input_parameter *param, int id)
{
    char *dev = "/dev/video0", *s;
    int width = 640, height = 480, fps = -1, format = V4L2_PIX_FMT_MJPEG, i;

    /* initialize the mutes variable */
    if(pthread_mutex_init(&cams[id].controls_mutex, NULL) != 0) {
        IPRINT("could not initialize mutex variable\n");
        exit(EXIT_FAILURE);
    }
.......................

format = V4L2_PIX_FMT_YUYV
以上就设置了默认的图像格式,重新把模块编译,之后就成功了!



你可能感兴趣的:(mjpg-streamer使用)