安卓实现实时视频监控.docx
- 文档编号:24640747
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:31
- 大小:25.57KB
安卓实现实时视频监控.docx
《安卓实现实时视频监控.docx》由会员分享,可在线阅读,更多相关《安卓实现实时视频监控.docx(31页珍藏版)》请在冰豆网上搜索。
安卓实现实时视频监控
预想功能:
1.开发板能通过无线网络进行实时的视频采集
2.手机端能进行实时的视频监控
3.手机端能对硬件进行控制
框架图:
具体步骤:
1.移植Apache+PHP到mini2440,用于接收手机发送的http请求
2.移植SQLite到mini2440,将收到的按键动作转换为相应的控制指令(考虑到实际系统中可能会有几百条指令,因此直接采用数据库存放)
3.移植mjpg-streamer以及相关功能库到mini2440,实现视频采集
4.完成Android应用程序完成视频获取
5.完成PHP文件,获取手机端发送的http请求,并转发至指令转换模块
6.完成指令转换模块,生成相应的控制指令
7.完成底层控制模块,实现硬件控制
8.移植无线网卡驱动,实现无线物联
一、apache的移植
从http:
//www.apache.org/上下载apache_1.3.36.tar.gz,然后解压缩的一个目录。
使用本地的gcc编译这个版本,我用的是Fedora14上的arm-linux-gcc4.4.3,运行:
./configure生成makefile文件,make完成后,不需要makeinstall(如果安装的话,会把pc上的apache安装到默认目录下,此处是usr/local/apache)。
创建一个新的编译arm版本的目录,然后在该目录下解压缩apache_1.3.36,转到该目录下的apache_1.3.36,运行:
exportCC="arm-linux-gcc"(export指定环境变量,指定交叉编译器的地址)./configure--prefix=/lusr/local/apache_arm/--without-execstrip--enable-module=so(生成Makefile文件,--prefix指定apache安装路径默认为usr/local/apache,我们可以在后面加个后缀以示区分)
运行make命令,这时编译会在apache_1.3.36/src/main/gen_test_char处失败,因为arm版本该程序无法在本地机器运行,你需要把前面编译的本地版本的apache_1.3.36/src/main/gen_test_char覆盖这个arm版本,然后转到arm版本的apache_1.3.36下继续make,随后编译到另一个程序apache_1.3.36/src/main/gen_uri_delims也出现相同的问题,也使用本地版本覆盖掉它,继续make,直到最后编译成功。
#makeinstall
这就编译好了!
还需要配置apache/conf/httpd.conf来设置服务器的功能,见下面。
移植到rootfs中,由于配置apache的时候“prefix”参数指定的安装位置是/usr/local/apache_arm,所以制作好的文件在/usr/local/apache_arm中,将apache拷贝到rootfs中的usr/local/中
#cp/usr/local/apache_arm/nfsroot/rootfs/usr/local/apache_arm/-rf
二、PHP的安装
交叉编译php同样需要两个步骤:
1.编译本机代码;2.利用本机代码进行交叉编译。
原因我就不重复了,假设为本机编译的php代码已经解压缩到/home/sg131971/php-4.4.8-i586,为ARM编译的php代码已经解压缩到/home/sg131971/php-4.4.8,交叉编译器arm-linux-gcc已设缺省路径,具体步骤还是用命令来说明:
#cd/home/sg131971/php-4.4.8-i586
#./configure
#make
在编译的同时,可以打开/home/sg131971/php-4.4.8/configure这个文件,搜索“cannotruntestprogramwhilecrosscompiling”,会搜索到很多个这样的结果:
{echo"configure:
error:
cannotruntestprogramwhilecrosscompiling"1>&2;exit1;}
把它们都改为
{echo"configure:
error:
cannotruntestprogramwhilecrosscompiling"1>&2;}
这样做的目的是直接无视交叉编译测试程序错误。
#cd/home/sg131971/php-4.4.8
#CC=arm-linux-gcc./configure--prefix=/usr/local/php_arm--host=arm-linux--target=arm-linux--enable-sockets
别以为可以编译了,还有东西要修改,打开/home/sg131971/php-4.4.8/Makefile,找到这段
install-pear-packages:
$(top_builddir)/sapi/cli/php@$(top_builddir)/sapi/cli/php$(PEAR_INSTALL_FLAGS)/home/sg131971/php-4.4.8/pear/install-pear.php-d"$(peardir)"-b"$(bindir)"/home/sg131971/php-4.4.8/pear/packages/*.tar
用上我们刚才编译的本机php里的文件,把它改成
install-pear-packages:
/home/sg131971/php-4.4.8-i586/sapi/cli/php@/home/sg131971/php-4.4.8-i586/sapi/cli/php$(PEAR_INSTALL_FLAGS)/home/sg131971/php-4.4.8/pear/install-pear.php-d"$(peardir)"-b"$(bindir)"/home/sg131971/php-4.4.8/pear/packages/*.tar
现在终于可以编译了
#cd/home/sg131971/php-4.4.8
#make
#makeinstall
#exit
这样php就编译完成了。
三、Apache与PHP的配置
需要修改/nfsroot/rootfs/usr/local/apache_arm/conf/httpd.conf文件,此处我就直接将该文件贴出来来了!
O(∩_∩)O~
[html]
ServerTypestandalone
ServerRoot"/usr/local/apache_arm"
PidFile/usr/local/apache_arm/logs/httpd.pid
ScoreBoardFile/usr/local/apache_arm/logs/httpd.scoreboard
Timeout300
KeepAliveOn
MaxKeepAliveRequests100
KeepAliveTimeout15
MinSpareServers5
MaxSpareServers10
StartServers5
MaxClients150
MaxRequestsPerChild0
Usernobody
Groupnobody
ServerAdminsg131971@
ServerName
DocumentRoot"/usr/local/apache_arm/htdocs"
OptionsFollowSymLinks
AllowOverrideNone
OptionsIndexesFollowSymLinksMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
UserDirpublic_html
DirectoryIndexindex.html
DirectoryIndexindex.php
DirectoryIndexindex.php3
DirectoryIndexindex.phtml
AccessFileName.htaccess
Orderallow,deny
Denyfromall
SatisfyAll
UseCanonicalNameOn
TypesConfig/usr/local/apache_arm/conf/mime.types
DefaultTypetext/plain
MIMEMagicFile/usr/local/apache_arm/conf/magic
HostnameLookupsOff
ErrorLog/usr/local/apache_arm/logs/error_log
LogLevelwarn
LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combined
LogFormat"%h%l%u%t\"%r\"%>s%b"common
LogFormat"%{Referer}i->%U"referer
LogFormat"%{User-agent}i"agent
CustomLog/usr/local/apache_arm/logs/access_logcommon
ServerSignatureOn
Alias/icons/"/usr/local/apache_arm/icons/"
OptionsIndexesMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
Alias/manual/"/usr/local/apache_arm/htdocs/manual/"
OptionsIndexesFollowSymlinksMultiViews
AllowOverrideNone
Orderallow,deny
Allowfromall
ScriptAlias/cgi-bin/"/usr/local/apache_arm/cgi-bin/"
ScriptAlias/php4/"/usr/local/php_arm/bin/"
AllowOverrideNone
OptionsNone
Orderallow,deny
Allowfromall
IndexOptionsFancyIndexing
AddIconByEncoding(CMP,/icons/compressed.gif)x-compressx-gzip
AddIconByType(TXT,/icons/text.gif)text/*
AddIconByType(IMG,/icons/image2.gif)image/*
AddIconByType(SND,/icons/sound2.gif)audio/*
AddIconByType(VID,/icons/movie.gif)video/*
AddIcon/icons/binary.gif.bin.exe
AddIcon/icons/binhex.gif.hqx
AddIcon/icons/tar.gif.tar
AddIcon/icons/world2.gif.wrl.wrl.gz.vrml.vrm.iv
AddIcon/icons/compressed.gif.Z.z.tgz.gz.zip
AddIcon/icons/a.gif.ps.ai.eps
AddIcon/icons/layout.gif.html.shtml.htm.pdf
AddIcon/icons/text.gif.txt
AddIcon/icons/c.gif.c
AddIcon/icons/p.gif.pl.py
AddIcon/icons/f.gif.for
AddIcon/icons/dvi.gif.dvi
AddIcon/icons/uuencoded.gif.uu
AddIcon/icons/script.gif.conf.sh.shar.csh.ksh.tcl
AddIcon/icons/tex.gif.tex
AddIcon/icons/bomb.gifcore
AddIcon/icons/back.gif..
AddIcon/icons/hand.right.gifREADME
AddIcon/icons/folder.gif^^DIRECTORY^^
AddIcon/icons/blank.gif^^BLANKICON^^
DefaultIcon/icons/unknown.gif
ReadmeNameREADME.html
HeaderNameHEADER.html
IndexIgnore.?
?
**~*#HEADER*README*RCSCVS*,v*,t
AddLanguageda.dk
AddLanguagenl.nl
AddLanguageen.en
AddLanguageet.ee
AddLanguagefr.fr
AddLanguagede.de
AddLanguageel.el
AddLanguagehe.he
AddCharsetISO-8859-8.iso8859-8
AddLanguageit.it
AddLanguageja.ja
AddCharsetISO-2022-JP.jis
AddLanguagekr.kr
AddCharsetISO-2022-KR.iso-kr
AddLanguagenn.nn
AddLanguageno.no
AddLanguagepl.po
AddCharsetISO-8859-2.iso-pl
AddLanguagept.pt
AddLanguagept-br.pt-br
AddLanguageltz.lu
AddLanguageca.ca
AddLanguagees.es
AddLanguagesv.sv
AddLanguagecs.cz.cs
AddLanguageru.ru
AddLanguagezh-TW.zh-tw
AddCharsetBig5.Big5.big5
AddCharsetWINDOWS-1251.cp-1251
AddCharsetCP866.cp866
AddCharsetISO-8859-5.iso-ru
AddCharsetKOI8-R.koi8-r
AddCharsetUCS-2.ucs2
AddCharsetUCS-4.ucs4
AddCharsetUTF-8.utf8
LanguagePriorityendanletfrdeelitjakrnoplptpt-brrultzcaessvtw
AddTypeapplication/x-tar.tgz
AddTypeapplication/x-httpd-php.php3
AddTypeapplication/x-httpd-php.php
AddTypeapplication/x-httpd-php.phtml
AddEncodingx-compress.Z
AddEncodingx-gzip.gz.tgz
Actionapplication/x-httpd-php"/php4/php"
BrowserMatch"Mozilla/2"nokeepalive
BrowserMatch"MSIE4\.0b2;"nokeepalivedowngrade-1.0force-response-1.0
BrowserMatch"RealPlayer4\.0"force-response-1.0
BrowserMatch"Java/1\.0"force-response-1.0
BrowserMatch"JDK/1\.0"force-response-1.0
然后还需要添加用户,修改开机启动文件。
具体过程如下
[cpp]
kwrite/nfsroot/rootfs/etc/passwd
/*在最后添加以下内容*/
root:
:
0:
0:
root:
/:
/bin/ash
nobody:
:
65534:
65533:
nobody:
/:
/bin/ash
kwrite/nfsroot/rootfs/etc/group
/*在最后添加以下内容*/
nobody:
:
65533:
nogroup:
:
65534:
nobody
root:
:
0:
users:
:
100:
/*添加开机启动*/
kwrite/nfsroot/rootfs/etc/init.d/rcS
/*在最后添加以下内容*/
cd/usr/local/apache_arm/bin
./apachectlstart
echo"">/dev/tty1
echo"StartingApache...">/dev/tty1
sleep1
一、开发环境:
Mini2440,linux_2.6.32.2内核
Fedora14,arm-linux-gcc-4.4.3
二、移植步骤
下载源码http:
//www.sqlite.org/sqlite-autoconf-3070701.tar.gz为3.7.7.1版
1.解压数据库源文件并进入解压后的目录,如下:
#tar-zxvfsqlite-autoconf-3070701.tar.gz
#cdsqlite-autoconf-3070701
2.创建一个目录build并进入该目录,用于在这个目录中进行交叉编译,如下:
#mkdirbuild
#cdbuild
3.在build目录中运行sqlite-autoconf-3070701中的configure脚本生成Makefile文件,如下:
#./configure--host=arm-linux--prefix=/root/ssqlite-autoconf-3070701/build/target
选项host指定的是用arm交叉编译器进行编译选项prefix后面的路径是到时候编译安装后目标存放的目录,你可以任意设置
4.执行make和makeinstall命令,如下:
make
makeinstall
编译和安装完后,在/root/sqlite-autoconf-3070701/build/target目录中会生成三个目标文件夹,分别是:
bin,include和lib
然后分别将bin下的文件下载到开发板的/usr/bin目录中,
lib下的所有文件下载到开发板的/lib目录中即可。
include目录下是sqlite的C语言API的头文件,编程时会用到。
5.在开发板上测试移植的sqlite数据库。
登录开发板的Linux,执行:
[root@ShiGuang/]#sqlite3demo.db
SQLiteversion3.7.7.12011-06-2817:
39:
05
Enter".help"forinstructions
EnterSQLstatementsterminatedwitha";"
sqlite>
说明移植成功!
我的步骤基本类似,就不自己写了!
O(∩_∩)O~
一、环境
主机环境:
Ubuntu10.10
目标机:
FS2410(S3C2410)
主机工具链:
gcc-4.4.5
交叉工具链:
arm-none-linux-gnueabi-gcc-4.3.2
摄像头:
ZC301
二、移植过程
1、配置内核是内核支持芯片为ZC301的摄像头
Makemenuconfig
DeviceDrivers--->
<*>Multimediasupport--->
<*>VideoForLinux
[*]EnableVideoForLinuxAPI1(DEPRECATED)(NEW)
[*]Videocaptureadapters(NEW)--->
[*]V4LUSBdevices(NEW)--->
<*>USB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 实时 视频 监控