- 浏览: 1450086 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (564)
- 算法 (7)
- 流金岁月 (1)
- Javascript (30)
- actionscript (108)
- as3.0 game (14)
- flex (84)
- fms2 (27)
- 正则表达式 (7)
- 开源组件代码(as3.0) (1)
- Pv3d (13)
- Cairngorm (4)
- vbs (54)
- VB程序设计 (26)
- 计算机应用与维护 (4)
- 职场实用穿衣技巧 (3)
- 历史风云 (15)
- 淡泊明志,宁静致远 (12)
- 情感 (26)
- 杂谈 (41)
- 越南风 (14)
- DirectX (9)
- Dev-cpp (11)
- 回望百年 (2)
- 建站经验 (2)
- Python (24)
- 网络赚钱 (4)
- php (2)
- html (1)
- ob0短址网 (1)
- ob0.cn (1)
- wordpress (1)
- pandas logistic (1)
- haxe (1)
- opencv (1)
- 微信小程序 (3)
- vue (3)
- Flutter (1)
最新评论
-
GGGGeek:
第一个函数滚动监听不起作用,onPageScroll可以
微信小程序--搜索框滚动到顶部时悬浮 -
naomibyron:
解决办法:工具 -> 编译选项 -> 编译器 ...
dev-c++中编译含WINSOCK的代码出现错误的解决方法 -
haichuan11:
这个…… 代码不全真的是让人很憋屈的感觉啊
actionScript 3.0 图片裁剪及旋转 -
chenyw101:
老兄能留个QQ号吗?具体的我有些东西想请教下你
用VB制作网站登陆器 -
yantao1943:
貌似有点问题,只派发一次事件啊
使用ActionScript 2.0或ActionScript 3.0处理音频文件的提示点(cue
不好意思,让大家久等了!今天我要实现的一个功能是异步录像!先讲下为什么要提出这样一个问题----假设被监控区域出现了异常(一个陌生人进入),那么本监控系统就要对这一段时间发生的一切进行录制,但此同时我们又在另一端观测这一段时间的实时视频,如何才能做到这一点-----既能录像又不打断我们观测实时视频?
解决原理:我们可以制作发布两个视频流,一个视频流的作用仍然是我们上篇文章所讲到的“把实时视频流传送到FMS服务器”,另外一个视频流的作用则是播放此实时视频流,假如发生异常则利用此视频流进行录像,这样就解决了第一段落提出的问题。 下面的代码可以覆盖上篇文章提到的server.mxml
- <?xml version="1.0" encoding="utf-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="571">
- <mx:Script>
- <![CDATA[
- import mx.core.UIComponent;
- import flash.media.Microphone ;
- import mx.controls.Alert ;
- import flash.display.Graphics ;
- //测试网络可行性
- private var conne:NetConnection = new NetConnection() ;
- private function xianshi():void {
- //必须 在AS3.0中默认的ObjectEncoding为AMF3,但是FMS不支持AMF3,所以
- //要显示的声明为AMF0
- conne.objectEncoding = ObjectEncoding.AMF0 ;
- conne.connect("rtmp://127.0.0.1/example") ;
- conne.addEventListener(NetStatusEvent.NET_STATUS,chuli) ;
- }
- private var nnnns:NetStream = null ;//专门用来向连接到服务器的客户端提供共享视频流
- private var nnnnns:NetStream = null ;//分支视频流 专门用来录像
- private var time:String = null ;//定义时间寄存器
- private function chuli(e:NetStatusEvent):void {
- var result:String = e.info.code ;
- switch(result) {
- case "NetConnection.Connect.Success":
- vd.attachCamera(Camera.getCamera()) ;
- nnnns = new NetStream(conne) ;
- nnnns.attachAudio(Microphone.getMicrophone()) ;
- nnnns.attachCamera(Camera.getCamera()) ;
- //播放server端的视频流(实时视频流,供client端播放)
- nnnns.publish("wwww","live") ;
- nnnnns = new NetStream(conne) ;
- nnnnns.attachAudio(Microphone.getMicrophone()) ;
- nnnnns.attachCamera(Camera.getCamera()) ;
- time = new Date().getTime().toString() ;
- nnnnns.publish(time,"live") ;//记录当前时间,以此作为标志位,发布到FMS
- nnnnns.addEventListener(NetStatusEvent.NET_STATUS,netStreamHandler) ;
- break;
- case "NetStream.Play.StreamNotFound":
- Alert.show("失败") ;
- break;
- default :
- Alert.show("缺省") ;
- break ;
- }
- }
- //停止播放
- private function tingzhi():void {
- nnnns.close() ;
- nnnnns.close() ;
- conne.close() ;
- }
- private function bofang():void {
- nnnns = new NetStream(conne) ;
- var v:Video = new Video() ;
- v.attachNetStream(nnnns) ;
- v.width = 276 ;
- v.height = 202 ;
- vv.addChild(v) ;
- nnnns.play("1199001232984") ;
- }
- private function luxiang():void {
- time = new Date().getTime().toString() ;
- nnnnns.publish(time,"record") ;
- }
- //停止录像
- private function stopLuxiang():void {
- nnnnns.close() ;
- }
- //NetStream事件处理器
- private function netStreamHandler(e:NetStatusEvent):void {
- var s:String = e.info.code ;
- switch(s) {//停止录像时,再记录当前时间,并以此为标志位,发不到FMS
- case "NetStream.Record.Stop" :
- nnnnns = new NetStream(conne) ;
- nnnnns.attachAudio(Microphone.getMicrophone()) ;
- nnnnns.attachCamera(Camera.getCamera()) ;
- time = new Date().getTime().toString() ;
- nnnnns.publish(time,"live") ;
- break ;
- }
- }
- //拍照功能实现
- private function paizhao():void {
- var bmp:BitmapData = new BitmapData(vd.width,vd.height,true,0) ;
- bmp.draw(vd) ;
- var bitMap:Bitmap = new Bitmap(bmp) ;
- image.source = bitMap ;
- }
- ]]>
- </mx:Script>
- <mx:VideoDisplay x="0" y="0" width="264" height="213" id="vd"/>
- <mx:Button label="连接服务器" click="xianshi()" x="10" y="247">
- </mx:Button>
- <mx:Button click="tingzhi()" x="99" y="247" width="125" height="21" label="断开与服务器连接">
- </mx:Button>
- <mx:VideoDisplay x="285" y="11" width="276" height="202" id="vv"/>
- <mx:Button x="458" y="247" label="播放" click="bofang()"/>
- <mx:Button x="302" y="247" label="开始录像" click="luxiang()"/>
- <mx:Button x="380" y="247" label="停止录像" click="stopLuxiang()"/>
- <mx:Button x="229" y="247" label="拍照" click="paizhao()"/>
- <mx:Image x="45" y="314" width="264" height="213" id="image"/>
- </mx:Application>
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="571"> <mx:Script> <![CDATA[ import mx.core.UIComponent; import flash.media.Microphone ; import mx.controls.Alert ; import flash.display.Graphics ; //测试网络可行性 private var conne:NetConnection = new NetConnection() ; private function xianshi():void { //必须 在AS3.0中默认的ObjectEncoding为AMF3,但是FMS不支持AMF3,所以 //要显示的声明为AMF0 conne.objectEncoding = ObjectEncoding.AMF0 ; conne.connect("rtmp://127.0.0.1/example") ; conne.addEventListener(NetStatusEvent.NET_STATUS,chuli) ; } private var nnnns:NetStream = null ;//专门用来向连接到服务器的客户端提供共享视频流 private var nnnnns:NetStream = null ;//分支视频流 专门用来录像 private var time:String = null ;//定义时间寄存器 private function chuli(e:NetStatusEvent):void { var result:String = e.info.code ; switch(result) { case "NetConnection.Connect.Success": vd.attachCamera(Camera.getCamera()) ; nnnns = new NetStream(conne) ; nnnns.attachAudio(Microphone.getMicrophone()) ; nnnns.attachCamera(Camera.getCamera()) ; //播放server端的视频流(实时视频流,供client端播放) nnnns.publish("wwww","live") ; nnnnns = new NetStream(conne) ; nnnnns.attachAudio(Microphone.getMicrophone()) ; nnnnns.attachCamera(Camera.getCamera()) ; time = new Date().getTime().toString() ; nnnnns.publish(time,"live") ;//记录当前时间,以此作为标志位,发布到FMS nnnnns.addEventListener(NetStatusEvent.NET_STATUS,netStreamHandler) ; break; case "NetStream.Play.StreamNotFound": Alert.show("失败") ; break; default : Alert.show("缺省") ; break ; } } //停止播放 private function tingzhi():void { nnnns.close() ; nnnnns.close() ; conne.close() ; } private function bofang():void { nnnns = new NetStream(conne) ; var v:Video = new Video() ; v.attachNetStream(nnnns) ; v.width = 276 ; v.height = 202 ; vv.addChild(v) ; nnnns.play("1199001232984") ; } private function luxiang():void { time = new Date().getTime().toString() ; nnnnns.publish(time,"record") ; } //停止录像 private function stopLuxiang():void { nnnnns.close() ; } //NetStream事件处理器 private function netStreamHandler(e:NetStatusEvent):void { var s:String = e.info.code ; switch(s) {//停止录像时,再记录当前时间,并以此为标志位,发不到FMS case "NetStream.Record.Stop" : nnnnns = new NetStream(conne) ; nnnnns.attachAudio(Microphone.getMicrophone()) ; nnnnns.attachCamera(Camera.getCamera()) ; time = new Date().getTime().toString() ; nnnnns.publish(time,"live") ; break ; } } //拍照功能实现 private function paizhao():void { var bmp:BitmapData = new BitmapData(vd.width,vd.height,true,0) ; bmp.draw(vd) ; var bitMap:Bitmap = new Bitmap(bmp) ; image.source = bitMap ; } ]]> </mx:Script> <mx:VideoDisplay x="0" y="0" width="264" height="213" id="vd"/> <mx:Button label="连接服务器" click="xianshi()" x="10" y="247"> </mx:Button> <mx:Button click="tingzhi()" x="99" y="247" width="125" height="21" label="断开与服务器连接"> </mx:Button> <mx:VideoDisplay x="285" y="11" width="276" height="202" id="vv"/> <mx:Button x="458" y="247" label="播放" click="bofang()"/> <mx:Button x="302" y="247" label="开始录像" click="luxiang()"/> <mx:Button x="380" y="247" label="停止录像" click="stopLuxiang()"/> <mx:Button x="229" y="247" label="拍照" click="paizhao()"/> <mx:Image x="45" y="314" width="264" height="213" id="image"/> </mx:Application>
请大家注意看下,写注释的地方,那些是本篇文章的核心!(因为代码比较多,因此本人大致做了些删改),有什么不明白的可以留言,本人将会为大家解答!
下篇文章就是本视频监控软件最核心的地方----图像识别,至今为止,本人仍在探寻较为高效的算法。哪位兄弟对此方面的图像识别算法有研究,可以共同交流下!
发表评论
-
控制连接数量和密码保护-flashcom教程 密码保护
2008-10-30 14:03 1233学习flashcom+学习英语(烂到死),无任何目的,本篇仅 ... -
AMF3 + AS 3.0 + ASP.NET 完整配置过程及源文件
2008-09-11 16:04 3575AMF3 + AS 3.0 + ASP.NET 完整配置过程及 ... -
FLEX结合FMS制作在线视频认证
2008-09-09 14:24 3825很多交友网站都具体在线视频认证能,如51.com。参考它的认 ... -
flex 3 + .net开发flash Remoting四[完整代码
2008-08-28 16:11 2208一. 相关说明: 本篇将呈现完整的Flash Remot ... -
FMS Client AS 自訂類別物件傳遞
2008-08-27 15:04 1056透過與 FMS 連線,可以共享 SharedObject 物件 ... -
FMS 常常会用到 3个Call 和3个Send
2008-08-27 14:51 2197FMS 常常会用到 3个Call 和3个Send 关于Flas ... -
flex as3 fms相关的资料(转)
2008-08-27 14:36 1695FMS.rar FMS系列教程http://www.fs2 ... -
视频类
2008-08-27 09:21 1845Flash Player作为流媒体的表现形式之一,视频编码是其 ... -
一步一步学Flash Media Server
2008-08-26 18:03 4353从今天起,我们来学习一下 Flash Media Server ... -
再说说onSync,SharedObject
2008-08-26 16:44 1602* 最多人不懂的就是:那个list参数看代码: my_rso ... -
视频监控软件(1)---FMS视频流共享
2008-08-26 16:07 2714呵呵!临近毕业了,本人选择的毕业设计题目是(基于B/S模式的 ... -
flash fms WebService 交互过程
2008-08-26 16:01 1726//flash客户端call服务器端的方法,服务器端调用WS的 ... -
游戏开发常用FMS类
2008-08-26 15:51 1451游戏开发常用FMS类 ... -
FLEX提高篇--------ShareObject对象详解
2008-08-26 14:23 1125ShareObject,顾名思义共享对象,而通常意义上的共享, ... -
客户端呼叫Flash Medis Server3服务端入门
2008-08-26 14:02 1466当你不仅仅只想用FLEX来做纯业务数据的管理时,或者当你的项目 ... -
FMS两种方式实现简易聊天室
2008-08-26 14:01 1683原理和代码都很简单,没什么好说的. 一:利用ShareOb ... -
FLEX提高篇---------FMS简易聊天室加强版
2008-08-26 13:37 1830今天写了下简易聊天室的加强版 , 其实功能也十分有很 , 不过 ... -
Flex连接FMS实现用户列表(使用SharedObject)
2008-08-26 13:33 39861.先在FMS的安装目录中添加自己的应用(例如我的目录D:\M ... -
FMS 教程(SharedObject)用户列表
2008-08-26 13:32 2930FMS实现用户列表,一般都是利用List组件,和SharedO ... -
Fms教程7 理解共享对象
2008-08-26 13:13 1920理解共享对象 共享对象 ...
相关推荐
《中盛益华车站网络视频监控解决方案》是一个针对交通港口的高级技术方案,旨在通过现代化的网络视频监控系统提升车站的安全管理和效率。该方案的核心在于CSVISION视频管理系统,它采用了电信级的产品设计理念,保证...
该Android远程视频监控程序源码是一个典型的移动应用开发案例,主要展示了如何在Android平台上实现远程视频的实时监控功能。这个项目对于计算机科学和技术、软件工程等专业的学生进行毕业设计或论文研究具有很高的...
2. **录像监控**: 录像功能同样可以通过`Intent`启动系统相机应用的录像模式。但是,为了实现监控功能,可能需要使用`MediaRecorder`类来直接控制录制过程。`MediaRecorder`可以设置视频分辨率、帧率、编码格式等...
标题中提到的"安卓拍照上传录像监控录屏相关-简单的实现了视频下载并且压缩成缩略图"是一个项目实践,它涉及到以下几个关键知识点: 1. 视频下载:在Android中,我们可以使用HttpURLConnection或者OkHttp等库来实现...
8. **多线程与异步编程**:视频监控系统通常需要处理大量的并发任务,因此开发者需要熟悉多线程和异步编程,以确保程序的高效运行和用户体验。 9. **调试与日志记录**:在开发过程中,调试和日志记录是不可或缺的...
3. **录像与监控**:录像功能可以通过MediaRecorder类来实现,它允许开发者配置视频和音频源、编码参数以及输出文件。监控功能则可能结合摄像头API和网络传输技术,将实时视频流发送到服务器或云端,以便远程查看。...
在安卓平台上,拍照、录像、监控以及屏幕录制是常见的功能,尤其对于开发者而言,理解这些功能的实现原理和代码逻辑至关重要。本压缩包文件“安卓拍照上传录像监控录屏相关-camera应用修改过可以在4.0系统上运行。....
【基于C#的WPF多视频监控...总的来说,【基于C#的WPF多视频监控管理系统】是利用现代软件技术实现的高效视频监控解决方案,它集成了WPF的可视化优势和C#的强大功能,为用户提供了一种灵活、高效的多路视频监控工具。
在IT行业中,视频监控系统是安全领域不可或缺的一部分,特别是在物联网(IoT)和智能家居系统的发展中,其重要性日益凸显。大华作为知名的安防设备制造商,提供了丰富的开发文档,帮助开发者构建基于Web、Android和...
2. **录像监控**:录像功能同样需要利用`Camera API`或`Camera2 API`,但与拍照不同,需要持续采集视频帧并存储为视频文件。在安卓中,可以使用`MediaRecorder`类来处理视频录制,包括设置视频分辨率、帧率、编码...
在实际开发过程中,为了确保流畅的视频显示,可能需要处理一些性能优化问题,如合理设置视频帧率、分辨率,以及使用异步编程避免阻塞UI线程。另外,考虑到多路视频同时播放可能会消耗大量系统资源,还可以考虑使用...
DVR是一种用于录制和播放视频的硬件设备,而DVS则是一种软件解决方案,可以将模拟视频信号转换为数字格式并进行网络传输。 要实现SWT与DVR-DVS的连接,我们需要遵循以下步骤: 1. **导入相关库**:首先,确保你的...
该压缩包文件涉及的知识点主要集中在Android客户端与电脑服务器之间的实时通信,以及视频录制、监控和屏幕分享功能的实现。以下是对这些知识点的详细说明: 1. **Android客户端开发**: - **Socket通信**:Android...
在安卓平台上,拍照、录像、监控以及录屏是常见的功能,尤其在开发移动应用时,这些功能往往不可或缺。本示例“安卓拍照上传录像监控录屏相关-网页调相机拍照并将图片显示到网页Demo.rar”提供了如何在网页环境中...
4. 录像功能模块:按需回放录像,支持多路同步或异步回放,具备帧控制和图像储存功能。 四、系统优势 1. 远程监控:利用网络实现远程监控,适应未来数字化、网络化的趋势。 2. 集中管理:通过CSVISION视频管理系统...
标题"**c++ 社区视频监控系统带使用录像.zip**"指出这是一个基于C++编程语言开发的视频监控系统项目,且包含了使用录像,这意味着它不仅提供了软件代码,还提供了如何操作和使用该系统的视频教程。这个项目可能是一...
本项目聚焦于使用C#编程语言实现调用视频摄像头进行录像和抓拍功能,这在安全监控、远程协作、家庭自动化等多个场景中都有广泛的应用。 首先,我们要了解C#如何操作硬件资源。在.NET框架中,Microsoft提供了`System...
在IT行业中,视频监控系统是安全防护的重要组成部分,海康威视作为该领域的知名品牌,提供了丰富的设备和服务。本文将深入探讨如何使用VC6.0编程环境,结合SQL Server数据库,从海康录像机中下载特定时间段的视频...
雄迈SDK是专为开发者设计的一套工具包,包含了丰富的API接口,能够帮助开发者快速构建视频监控、录像回放、云台控制、报警处理等功能的应用程序。 在这个项目中,开发者可能使用了以下关键知识点: 1. **C#基础**...
《构建基于Web的视频监控系统:深入探讨Visual C++与Web技术的融合应用》 视频监控系统在现代社会中扮演着至关重要的角色,广泛应用于安全防范、交通管理、商业运营等多个领域。随着网络技术的发展,基于Web的视频...