Android开发与iphone开发如何获取视频数据单元

 在服务器端连接云台以及摄像头等设备,当客户端发起请求后,服务器端创建player对象,调用API中的CaptureDeviceManagergetDeviceListe0方法获得本地的多媒体设备。判断编码方式后调用CreateDateSoure(Iocator)方法创建数据源以及可以复制的数据源避免进程间死锁,由javaxmediacontr01FrameGrabblingControll81取得对player的控制。最后由grabFrame()方法将原始视频数据写入缓存,调用creatlmageO得到每帧数据。这些数据经过压缩编码,发送到远程手机端,手机端完成对每帧数据的还原,最终达到视频

流实时的远程播放效果。视频图像的捕捉过程所示。系统所用的半球云台使用PELCOP协议控制,通过RS485121,向云台发送16进制的控制字,调整并控制云台n的转动。PELCO-P协议的数据格式为:l位起始位,8位数据位,1位停止位,无效验位且波特率为9 600 bits,命令格式如图4所示。在协议中所有数值都为十六进制数,STX始终为AOH

地址码为摄像头的逻辑地址号,地址范围为00HIFH;指令码表示对应的不同动作;数据码1、数据码2分别表示水平、垂直方向速度(00-3FH),在有关预制点的操作时,数据码2表示预制点值;ETX始终为AFH;校验码(XOR sum of Bytes26)=字节2“字节3 n字节4一字节5“字节6。在服务器端,程序通过Java API以及commjar控制计算机端口。由outputStreamwrite()方法将数据写入串口,参数为byte型。云台的控制协议中所有数值为十六进制数,地址码为摄像机的逻辑地址号,地址范围:00H1FH;因此,iphone开发需要将云台的控制字转化为对应的byte型数组。例如,控制协议字{0xa00x01,0x000x080x000x300xaf0x39}表示云台向上转动,转化为byte数组是{-96l08048,一8l57)。服务器程序接收到客户发出的控制请求后解析此数组并发往串El,使云台做出相应动作。控制单元的工作流程如图5所示。整个设计过程可以大体分为2个部分,一部分为视频数据的远程播放单元,另一部分为云台的远程网络控制单元,完成这2个单元的数据通信,需要传送视频数据和控制信息。在测试阶段,采用无线路由器建立的局域网络进行数据的传输,实验证明了设计的可操作性,测试环境的网络结构本程序的开发采用Android 16的版本的SDK,在建立连接的无线}9络中,将程序在手机模拟器上运行,输入服务器的IP地址,便可建立服务器与客户端的连接。通过5Button(上、下、停止、左、右)按键连接云台控制协议,将相应的控制命令通过socket发送给云台,则用户呵根据需要点击按钮改变观看视频的角度,完成对远程视频的播放和控制。客户端运行界面

 

你可能感兴趣的:(Android开发,iPhone开发)