文档章节

OpenWrt编译的mjpg-streamer软件包与官方编译的不一致

娱乐你我
 娱乐你我
发布于 2014/08/07 09:47
字数 838
阅读 1364
收藏 2

    OpenWrt编译的mjpg-streamer软件包居然与官方编译的是不一样的版本。不管是当前trunk还是barrier breaker版都是有这个问题。自行编译的不支持yuv格式输出,也就是说如果挂载的摄像头不支持jpeg格式直接输出那就没戏了。但是官方的mjpg-streamer就没有这个问题。先看看自己编译出来的与官方的版本在input_uvc.so模块帮助上的区别。

官方版本:

root@OpenWrt:/tmp# mjpg_streamer -i "input_uvc.so --help"
MJPG Streamer Version: svn rev: exported
 ---------------------------------------------------------------
 Help for input plugin..: UVC webcam grabber
 ---------------------------------------------------------------
 The following parameters can be passed to this plugin:

 [-d | --device ].......: video device to open (your camera)
 [-r | --resolution ]...: the resolution of the video device,
                          can be one of the following strings:
                          QSIF QCIF CGA QVGA CIF VGA 
                          SVGA XGA SXGA 
                          or a custom value like the following
                          example: 640x480
 [-f | --fps ]..........: frames per second
 [-y | --yuv ]..........: enable YUYV format and disable MJPEG mode
 [-q | --quality ]......: JPEG compression quality in percent 
                          (activates YUYV format, disables MJPEG)
 [-m | --minimum_size ].: drop frames smaller then this limit, useful
                          if the webcam produces small-sized garbage frames
                          may happen under low light conditions
 [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
 [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
                          it up to the driver using the value "auto"
 ---------------------------------------------------------------

input_init() return value signals to exit



注意,这里可以带y参数,即可以开启支持YUYV格式。然后是自己编译的版本的:

root@OpenWrt:~# mjpg_streamer -i "input_uvc.so --help"
MJPG Streamer Version: svn rev: exported
 ---------------------------------------------------------------
 Help for input plugin..: UVC webcam grabber
 ---------------------------------------------------------------
 The following parameters can be passed to this plugin:

 [-d | --device ].......: video device to open (your camera)
 [-r | --resolution ]...: the resolution of the video device,
                          can be one of the following strings:
                          QSIF QCIF CGA QVGA CIF VGA 
                          SVGA XGA SXGA 
                          or a custom value like the following
                          example: 640x480
 [-f | --fps ]..........: frames per second
                          (activates YUYV format, disables MJPEG)
 [-m | --minimum_size ].: drop frames smaller then this limit, useful
                          if the webcam produces small-sized garbage frames
                          may happen under low light conditions
 [-n | --no_dynctrl ]...: do not initalize dynctrls of Linux-UVC driver
 [-l | --led ]..........: switch the LED "on", "off", let it "blink" or leave
                          it up to the driver using the value "auto"
 ---------------------------------------------------------------

 [-t | --tvnorm ] ......: set TV-Norm pal, ntsc or secam
 ---------------------------------------------------------------

input_init() return value signals to exit



注:自己编译的不带y参数,即不支持YUYV格式,还多了个支持的参数t,用来设置pal、ntsc制式的。查看openwrt下载的mjpg-streamer源码也没发现支持y参数。mjpg-streamer包的路径是./feeds/packages/multimedia/mjpg-streamer。patches目录下的补丁文件也没见到对y参数支持的补丁。Makefile文件主要内容:

#
# Copyright (C) 2006-2014 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=mjpg-streamer
PKG_REV:=182
PKG_VERSION:=r$(PKG_REV)
PKG_RELEASE:=1
PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).1.tar.bz2
PKG_SOURCE_URL:=https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer-experimental
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_PROTO:=svn

PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILE:=LICENSE



注意上面的PKG_SOURCE_URL路径,最末尾有个“-experimental”,意思是实验性的意思。google上搜搜mjpg-streamer

https://svn.code.sf.net/p/mjpg-streamer/code/点击进去

发现mjpg-streamer有带不带“experimental”版本的区别。进一步进去查看代码带“experimental”是不支持y参数的,不带“experimental”版支持y参数,并且input_uvc插件的帮助说明与官方的一样。想不通官方为什么这么整。决定自己切换到不带“experimental”版本。

首先删除openwrt源码目录下的mjpg-streamer**.tar.gz文件。修改mjpg-streamer包路径./feeds/packages/multimedia/mjpg-streamer/下的Makefile文件,将PKG_SOURCE_URL:=https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer-experimental改成PKG_SOURCE_URL:=https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer。删除patches下的010-enable_additional_plugins.patch和020-remove_gcc_debug_options.patch补丁文件。

然后重新编译mjpg-streamer软件包:

make package/mjpg-streamer/prepare V=s
make package/mjpg-streamer/install V=s

再重新安装mjpg-streamer软件包,ok。



© 著作权归作者所有

娱乐你我
粉丝 39
博文 32
码字总数 23759
作品 0
福州
程序员
私信 提问
加载中

评论(8)

娱乐你我
娱乐你我 博主

引用来自“Linx_链”的评论

亲,你说的修改path或降低mjpg版本,具体怎么修改呀?
bb版本的: 1、删除/dl目录下的mjpg-streamer**.tar.gz。 2、修改./feeds/packages/multimedia/mjpg-streamer/下的Makefile文件,将PKG_SOURCE_URL:=https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer-experimental改成PKG_SOURCE_URL:=https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer 3、删除./feeds/packages/multimedia/mjpg-streamer/patches下的010-enable_additional_plugins.patch和020-remove_gcc_debug_options.patch补丁文件 4、重新编译 make package/mjpg-streamer/prepare V=s make package/mjpg-streamer/install V=s cc版本的还没研究。
Linx_链
Linx_链
亲,你说的修改path或降低mjpg版本,具体怎么修改呀?
娱乐你我
娱乐你我 博主

引用来自“o0o520”的评论

按照你的方法使用了不带-experimental的mjpg-streamer​,在make menuconfig选了所有input和output扩展 可是编译完估计 ssh进openwrt find也搜不到output_file.so
这原因是output_file.so默认没有打包到mjpg-streamer的ipk软件包里。可以试试在./feeds/packages/multimedia/mjpg-streamer/Config.in文件的 MJPG_STREAMER_OUTPUT_FILE 设置为y,再编译mjpg-streamer。
o0o520
o0o520
按照你的方法使用了不带-experimental的mjpg-streamer​,在make menuconfig选了所有input和output扩展 可是编译完估计 ssh进openwrt find也搜不到output_file.so
o0o520
o0o520
我想使用output_file ,把文件保存到磁盘,如何才能启用呢?
娱乐你我
娱乐你我 博主

引用来自“gjz175”的评论

用你的方法,换了不带-experimental的mjpg-streamer​,编译出错svn: Write error: Broken pipe
http://pan.baidu.com/s/1sjsbQk1#path=%252Fdl 这里直接下载mjpg-streamer,然后放到dl目录,再重新编译。
g
gjz175
用你的方法,换了不带-experimental的mjpg-streamer​,编译出错svn: Write error: Broken pipe
g
gjz175
我也是需要在openWrt上使用YUV79
OpenWrt系列教程汇总 & OpenWrt简体中文Wiki

OpenWrt系列教程汇总 OpenWrt简体中文Wiki 快速导航

AlphaJay
2011/07/26
42.7K
1
PHP读取mjpg-streamer的视频

我在OpenWRT上安装了摄像头,可以使用mjpg-streamer截图和实时视频 ,问题是如何使用PHP来读取mjpg-streamer的视频保存在服务器上? 我在服务器上用wget下载stream流文件,但是无法使用播放器...

eechen的粉丝
2013/06/18
611
0
openwrt遇到的问题

@娱乐你我 你好,想跟你请教个问题: 你这个openwrt的问题 ,我看着照做了 。可是会报很多错误 Exported revision 182. Packing checkout... . /home/linxl/trunk/include/shell.sh; bzcat /...

Linx_链
2015/10/08
1K
1
移植OpenWrt到RT5350

slider >>> Too few posts! (required minimum are 3) (the featured image may be missing) Previous 移植OpenWrt到CuHead Pro WiFi Posted by: zou, baozhu , 三月 13, 2014 CuHead Pro是一......

Pillar_zuo
2014/03/13
23.3K
5
编译OpenWRT过程问题解决

本人是只菜鸟,没有接触过OpenWrt,只是平时都是在Linux下做开发。习惯了Linux的开发环境。 本人的操作系统是CentOS 6.4(好久都没有换过了)。本人按照网上牛人们的指点也开始下载编译OpenW...

临峰不畏
2015/04/02
18.4K
4

没有更多内容

加载失败,请刷新页面

加载更多

vue入门--简单路由配置

本文转载于:专业的前端网站➜vue入门--简单路由配置   在初始化vue init webpack <工程名>时,有一步是询问是否安装vue-router,选择yes,如果没有安装的话,后面需要自己安装。然后在目录...

前端老手
16分钟前
3
0
怎么给视频配音

很多刚开始尝试视频制作的小伙伴,帮助到怎么给制作完成的视频配音,其实给视频配音的方法非常简单,在手机上可以进行制作,下面一起来看看给视频配音的方法吧! 具体步骤如下: 1、首先在手...

白米稀饭2019
25分钟前
2
0
windows批处理bat脚本编写

什么是bat脚本 .bat结尾的文件其实就是windows上的批处理脚本,Windows中的bat文件相当于 Linux中shell编程的.sh脚本,批量执行DOS命令。 其最简单的例子,是逐行书写在命令行中会用到的各种...

孙幼凌
33分钟前
3
0
华为手机翻译功能怎么使用?这三种方法请务必收藏

华为手机翻译功能怎么使用?在我们的生活中会经常遇到翻译问题,许多外语不好的朋友该怎么办呢?华为手机已经为我们解决了这个问题,今天小编就教大家学会使用华为手机中的三种翻译技巧,需要...

翻译小天才
41分钟前
4
0
企业服务软件开发中需要注意的三个问题

在开发企业服务软件时,我们需要分为:业务需求、用户需求、产品需求,三大需求层次,三个层次互相关联,企业服务软件开发首先要服务业务,需要满足业务的需求,再关注用户体验,也就是用户需...

积木创意科技
44分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部