Android中实时视频监控方案设计思路
来源:互联网 发布:c高级编程第10版 中文 编辑:程序博客网 时间:2024/05/29 02:22
http://blog.csdn.net/mer1234567/article/details/7679833
最近手机安装了一个“千里眼”和千里眼家居远程监控的应用,对里面的实时监控交通路口的状态有点好奇。以是使用相应的方法反编译看看她的原理。
对于软件“千里眼”,经过代码的翻看,发现采用的是VideoView中访问RTSP实时视频流的思路实现的。
反编译后的代码
String str = getIntent().getStringExtra(
"rtsp"
);
if
(str !=
null
)
{
VideoView localVideoView3 =
this
.videoView;
Uri localUri = Uri.parse(str);
localVideoView3.setVideoURI(localUri);
}
软件千里眼家居远程监控采用的是另外一种思路:
从反编译代码可以看出
boolean
bRunning =
true
;
Handler handler;
String htmlCode =
" <embed style='width:100%; height:100%' src='http://www.3gjiaoshi.com:8080/FLVPlayer.swf?fullscreen=true&video=@VIDEO@' autoplay='true' quality='high' bgcolor='#000000' name='VideoPlayer' align='middle' + width='320' height='240' allowScriptAccess='*' allowFullScreen='true' type='application/x-shockwave-flash' />"
;
String htmlPost =
"</body></html>"
;
String htmlPre =
"<!DOCTYPE html><html lang=\"en\"><head><meta charset=\"utf-8\"></head><body style='margin:0; pading:0; background-color: black;'>"
;
AdView m_adv =
null
;
String m_strVideoPath;
WebView webView;
代码可以看出是通过Flash以及WebView的方式实现的。
经过两个项目的分析,我可以确认相应的实现思路了。本系统的架构分为三层。
1 视频实时监控层
2 视频RTSP传输控制层
3 Android手机层
第一层可以通过很多不同的方法来实现。
1 使用我们普通的摄像头,然后通过FFMpeg来获取视频流。
2 通过特殊专用的监控摄像头或者摄像机之类。然后根据摄像机的API来构造获取视频流。可以参考海康家的解决方案。之前在做某监控项目用过她家的卡,效果非常不错。
第二层的方法也很多。
1 使用FFMpeg项目的里面的FFServer来实现,可能会有延迟,但是最容易演示。
<
Feed
feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 200K
</
Feed
>
然后使用FFMpeg将摄像头的视频重定向到/tmp/feed1.ffm中。
ffmpeg -f video4linux -s 320*240 -r 15 -i /dev/video0 http://localhost:8090/feed1.ffm
在外面就可以通过
./ffplay http://localhost:8090/feed1.ffm 访问视频流了
这种方式目前不能商用,只能演示。商用可能需要对FFServer做很大的修改。比如将其中的select模型改为epoll或者其他。开发的时候,FFServer估计是为了保证在windows以及Linux中的兼容性而采用select模型的。
2 使用Helix家的解决方案,收费比较高。
3 使用开源的gst-rtsp-server实现。
4 使用Flash Media Server来实现。
第三层方法可以是两种
1 使用VideoView实现。
2 使用Flash的方式实现LiveStream(对应与Flash Media Server的实现)。
参考文章:
1 http://blog.sina.com.cn/s/blog_53b3dc830100mrd0.html
2 http://www.ffmpeg.org/ffmpeg.html
3 http://blog.csdn.net/seforna/article/details/3486227
4 http://blog.csdn.net/saphy/article/details/5472990
5 http://yjaps26.blog.163.com/blog/static/24483312200861091059866/
6 http://www.adobe.com/devnet/flashmediaserver/articles/webcasting_fme.html
7 http://blog.sina.com.cn/s/blog_46d93f190100us5h.html
8 http://general.blog.51cto.com/927298/200088
9 http://people.freedesktop.org/~wtay/
10 http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/
11 http://blogs.gnome.org/uraeus/2008/10/13/gstreamer-rtsp-server/
12 http://gstreamer.freedesktop.org/download/
13 http://blog.csdn.net/wangjia184/article/details/6422971
14 http://www.cnblogs.com/yjmyzz/archive/2010/03/15/1686274.html
15 http://rg4.net/ezstreamsvr(封装了一个流媒体传输服务器端)
- Android中实时视频监控方案设计思路
- Android中实时视频监控方案设计思路
- Android中实时视频监控方案设计思路
- 实时监控、直播流、流媒体、视频网站开发方案设计简要
- 实时监控、直播流、流媒体、视频网站开发方案设计简要
- Android手机实时视频监控
- Android手机实时视频监控
- Android手机实时视频监控
- Android手机实时视频监控
- 【转自eguid大神】实时监控、直播流、流媒体、视频网站开发方案设计简要
- Android程序中实时监控网络状态
- 基于android手机实时监控ipcam视频之一:RTSP
- 基于android手机实时监控ipcam视频之二:mediastream2
- Android实现实时视频通话或监控方案
- 爆GOOGLE实时视频监控
- 树莓派h264实时视频监控
- Android实时监控项目第三篇:通过摄像头实时预览帧视频
- Android实时监控项目第三篇:通过摄像头实时预览帧视频
- uva 10651 - Pebble Solitaire(记忆化搜索)
- 我们叫着的飞鸽传书(173dmba)传输速度
- 子网掩码和IP地址运算
- leetcode之Remove Duplicates from Sorted List II
- (C++实现)——单例模式(Singleton Pattern)
- Android中实时视频监控方案设计思路
- 内存屏障与JVM并发
- (C++实现)——桥模式(Bridge Pattern)
- Android对图片进行压缩
- 偏导,方导,梯度,散度,旋度
- wince下SE955激光头,SE655红光头的配置
- dynamic-insert与dynamic-update
- jeecms 2012 源码分析(2) 前台栏目页静态化分析
- (C++实现)——简单工厂模式(Simple Factory Pattern)