自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 2011-09-11

linux :tar zxvf bztar jxvf bz2将头文件做个符号链接,即:ln -s /usr/local/include/boost /usr/include/boostubuntu apt-get bulid-essentialJRE:sudo chmod 755 /opt/java/32/jre-6u16-linux-i586.bi

2012-09-11 11:15:43 263

原创 2012-06-30

这个月就这样的过去了,打个简单的总结,ok的就不写了,只写一下心里还没底的东西:1- P2P ,原理是用UDP打洞来解决,但毕竟没有测试过,NAT的类型又是多种多样,不能保证所有的CONNET都能进行P2P通信2- UDP,UDP在传递大数据量时候有个弊端就是由于客观原因,很容易出现数据掉包的情况,A/V数据流掉包就没办法搞了,所以方案只能做数据的手工切片和重组,而且要切为500多个字节为

2012-06-30 20:18:55 534 1

原创 2012-06-29

今天开始搭建界面了,虽然录文件的模块还没做,不过从上往下做要容易一些,另外SERVER数据模块也封装完毕,但还没有跑过,也没那么多时间去写模块的测试程序了。回顾了一下CAMVIEW的UI,又牵扯到了MFC的自绘控件(想要UI看得,这个也是没办法的),总之意思就是UI编辑器是基本上废了,全部用代码实现控件的创建,绘制,数据交互等等,实现起来比较耗时间的说。另外UI的布局也比比较费事的,不想搞

2012-06-29 19:23:57 275

原创 2010-06-28

这两天主要把UPNP的功能模块完善和整合1-主要流程是发送discover 消息到内网多播端口,并接受反馈2-根据反馈查询描述文件地址(192.168.1.90:49152/iftcdevicedesc.xml)3-根据ip ,port,filename下载xml4-解析xml,获取描述字段(presentationURL>http://192.168.1.90/presentat

2012-06-28 16:16:02 316

原创 2012-06-26

开始正式搭建程序构架, 基本的功能代码已经梳理通...1- 网络模块,包括tcp/udp的消息的收发, 事件回调 (udp还需要修改协议,确保验证A/V数据包完整性,切分数据报文到512 bytes/per ,保证底层不对数据切片 )2- 数据模块,8k/16K/6M 定长内存池, 多线程池3- 解码模块,video - h264, audio - g711a/u4- 视频绘图,G

2012-06-27 00:03:12 1064

原创 2012-06-23

“热烈感谢屈原同志用自己的生命为我们换来的一天假期....” 这个太厉害了这两天把udp通信搞了一下,以前用udp的时候几乎没有,所以看了一些资料,已经编码一些基础的功能,需要考虑的问题是:在做UDP并发广播的时候,不知是udp的缓存池是否是线程安全的,同时往缓存里面扔数据,会报错么?另外,说在做大数据包发送的时候,需要将数据分切成小数据包(mtu:1400)的长度来发送,如果一个数据

2012-06-23 15:14:53 824

原创 2012-06-21

昨天又忘记写日志,哎,健忘啊....主要把网络模块TCP的事件回调机制完成了,由于通用采用异步机制,所以回调是很必要的1- 当remote连接上,主要使用在异步投递待连接套接字,初始化为2000个2- 当主动连接超时,主要考虑到如果连接IPC,server失效等3- 当主动连接成功,主要使用在连接到IPC,server的事件通知,请求等4- 当接收到数据,主要划分数据的解析,这

2012-06-22 09:54:35 293

原创 2012-06-20

今天把播放音频的功能测试了一下,更改IPC配置,测试了 ADPCM  和 G711A 两种格式 ,可以放出声音,并且是连续的,这就足够了,应该对这块要求不是那么高吧 要注意的有两点:一是在播放音频的时候可能需要做缓存播放,虽然可能这个缓存很小二是在播放音频的时候,音频数据的缓存需要一直保存,直到wave播放结束,需检测播放事件回调函数 今天开会的结论,CLIENT的UI需参

2012-06-20 21:23:39 526

原创 2012-06-19

以前遗留了一个问题,这两天把它补上,就是音频数据的播放,以前的认知只是停留在播放MP3和WAV文件上,算是更深入的了解音频数据的播放。思路基本上是:IPC传递过来的A_FRAME指定类型有三种,分别为ADPCM,G771A,G711U,通过解码为wav输出,看到wav就比较亲切了.... MCI 也忘记得差不多了,以前用来搞过麦克风的录音和回放的,还要翻一下MSDN才清楚,起码要写控制接口

2012-06-19 22:33:56 1233

原创 2012-06-18

昨天了解到一个自己不知道的东西,毕竟游戏没有这种应用场景,所以看看资料,UDP如何实现打洞实现P2P?关键词:UDP, NAT应用场景:第一种场景,我们假设两个客户端都处于不同的NAT之后;第二种场景,我们假设两个客户端都处于同一个NAT之后,但是它们彼此都不知道(他们在同一个NAT中)。NAT的类型:1 -Full Cone ,这种NAT内部的机器A连接过外网机器C后

2012-06-18 09:43:02 650

原创 2012-06-16

写个完整的网络引擎还是比较废时间,现在需要处理多套通信流协议,更是麻烦,由于基础协议不统一,程序只好把数据流按规则分开,本来想把不同协议的连接独立进程完全划分开,又考虑到两端资源需要相互调用,要做一个很大的泛型程序模型才能容纳这些内容。通信模块的代码下周三一定要完,最多耽搁一天,不然后面就有点紧了。 另外,备注记录两点是:一.在做跨资源域访问的时候,很多资源模块看起来都是singl

2012-06-17 00:01:54 267

原创 2012-06-15

昨天忘记写了,搞的脑壳昏,把csdn的密码忘记了.... 才发现CSDN也屈服了,可以绑定第三方账号(腾讯等),看来腾讯这个用户数据库还是蛮值钱的啊。主要搞线程工作,总觉得开那么多线程不合适,因为这套东西很可能放在家用PC上,不象服务器有那么多CPU,线程开多了的话效率反而会降低,动态分配线程来完成业务也是比较复杂的事情,而且多线程工作的话,一是要考虑共享数据资源的安全,二是要竟可能让资源独立

2012-06-16 09:03:42 235

原创 2012-06-14

更新了《NVR总体设计》,主要是UI方面的设计,主要考虑的是功能的实现,这个方案很可能变动另外开始搭建程序主框架,依然按模块开发,以前为了开发速度,所以很多东西考虑都不完全,这次把这些东西都封装好,所以做的速度也比较慢,有些头文件很接口声明也多考虑了一下,一是为了独立性,二是为了通用性,有些接口设计还是使用TEMPLATE比较好,虽然说代码很不好看,但也是为了扩展功能的考虑作为通信模块是很

2012-06-14 22:04:11 274

原创 2012-06-13

上午把 NVR  SERVER 和 IPC的通信写搞了, 一切从简,尽量减少交互的信息和次数有一点比较麻烦,不管是IPC 还是 CLIENT,都需要预设 NVR SERVER的IP 之后才能工作,IPC那边不清楚, CLIENT在登录时会有IP CONTROL来填写 NVR的地址,同时也会写入本地配置文件1- 存储依然放在服务器端,回放的时候还是只能在服务器调度文件, C/S 之间传递视频

2012-06-13 23:08:03 258

原创 2012-06-12

今天参加了于上海公司的网上会议,LAN NVR 是不用考虑做了系统目标是微客户群,面向小区或者企业用户,估计设备也就50个以内了吧,以前做游戏通信那套东西还是要搬出来重新来一次,真后面没把自己的代码COPY一份。客户端和摄像机 对于服务器来说都是一样的,不同是的 摄像机只是一路数据通信, 客户端则是多路数据同时发送,做TCP数据转发的时候应该考虑效率的问题。瓶颈在于带宽的问题,也就是服

2012-06-12 22:04:46 310

原创 2012-06-11

在IPv4环境,当需要使用多播方式传送相关消息的时候,SSDP一般使用多播地址239.255.255.250和UDP端口号1900。 UPNP功能不做了... 由IPCAM直连NVR。需求更改: 软件拆分为 SERVER / CLIENT,又是要搞一套通信协议出来,改的东西多哦。 记录今天修改的几个bug:1- FFMpeg在初始化avcodec_open的时候,这个函数不是线

2012-06-11 16:50:31 289

原创 2012-06-08

今天终于把LIVE VIEW调通了,几经周折,遇到的问题还是记录下吧1- ffmpeg在做yub2rgb的时候,会出现画面倒立(这个比较容易理解),另外在做非等比缩放的时候,会出现一些画面的上的问题,我想如果缩放RBG应该不会出现这样的问题吧,以前没处理yuv数据,这方面没什么经验2- 在绘制DIB数据的时候,有的时候总觉得画面有延迟,使用ipcam上的AX来播放,还是延迟,这样看来觉得是

2012-06-08 21:20:29 340

原创 2012-06-07

今天拿到了老徐的反馈,终于找到了有点价值的信息EMAIL原文:先接收的64字节为AV_FRAME结构接下来的数据为buffer另外下边的代码注意字节顺序:h264_header.length = ntohs(data_size); 其实我也关注过这个变量,鬼才知道做网络发送之前会颠倒字节序,我勒个去,不加密就这么搞....有木有实际上经过测试,客户端指定userdata

2012-06-07 14:01:21 398

原创 2012-06-06

把界面重新code了一下,主要把绘制RGB的窗口的代码搞了一下。记录几个要注意的地方:1- 子窗口以父窗口的CWnd创建以后,其ClientRect是以自身的rect为基准,不再是绝对的坐标或者上级窗口的坐标,为此耽误了起码2个钟头,子窗口的rect始终无法按要求动态布局到最大铺满rect也是这个原因2- 在绘制CSTATIC CONTROL的时候,采用DRAWDIB API,这样可以

2012-06-06 22:29:22 215

原创 2012-06-05

今天把UI简单搞了一下,MFC好久没碰了,CONTROL的使用也是生疏了,当然做起来也不是很吃力,微软这套东西虽然很经典,内部确实做的太麻烦了,真要把MFC搞很的很懂,估计要个一年半载的了。NVR的设计先考虑用DLG模块化,主要是封装监控和回放的两个对话框,先试做了monitor的dlg,根据客户端PC的分辨率自适应最大化,多窗口动态分布,可指定监控窗口的数量,根据摄像机的个数指定,以便保证用

2012-06-05 22:24:08 233

原创 2012-06-04

协议层的代码卡住了,收到的数据包解析有问题,也无法导入fflemg解码, 看AX的代码, 不知道是程序员偷懒还是对数据长度认识不足, 在很多地方用了sizeof(struct)类似的东西来指定长度做内存拷贝, 其实struct的长度不见的是内部元素的长度之和,很有可能会大于实际长度,这是c++的内部数据对齐规则,如:struct s{int n; char c;}其实 sizeof(s) =

2012-06-04 23:55:53 206

原创 2012-06-03

我勒个去,这是神马协议,好不容易把每帧数据分开,都还没搞清楚每个PACK为什么会多4个字节先开始解析buffer的数据,直接崩溃了 Decode: 08 e0 ba 49 00 00 30  00 //从第56个字节开始解析 为 FRAME.Buffer谁能告诉我这8个字节是怎么来的,是什么东西 00 00 00 01 // H264_USER_DATA_HEADER.

2012-06-04 00:19:21 188

原创 2012-06-01

儿童节快乐!!ParseBuffer: save video buffer, f=75323---------------frame data start-----------size:40channel:0frametype:10framewidth:140frameheight:f0framesize:28c0codectype:34363248,H264

2012-06-01 17:21:24 230

原创 2012-05-31

搞了半天终于找到BUG了,不知道VC10内部机制修改了还是怎么的,在做数据结构的内存寻址上出现了问题:貌似是做了chunk对齐还是怎么的,数据对象内存寻址的时候有时候会自动偏移偶数个字节,自然得到的数据就不对了,读取一个整形数据,吓了一跳呢,什么数据包要800多M,看来这个懒还是偷不得, 老老实实的用c那一套吧,背功误时的。哎....这周这个模块一定要搞定,不然赶不上计划了... 希望给后面的

2012-06-01 00:15:22 212

原创 2012-05-30

忙乎了一整天,通信终于是调好了,数据模块测试比较良好,IPCam的数据能很正常的放到内存里,并且按帧存放协议解析的模块觉得有点冗余,不过分开有分开的好处,方便维护一点,三个模块独立工作有独立工作的好处,虽然工作量大了点,不过还是值得CON:在未处理的视频数据会源源不断的存放到内存中,而且数据量并不小,特别是在多设备的情况下,甚至会达到10多个设备,那么内存的开销会不会成问题呢?虽然说考

2012-05-30 20:41:04 277

原创 2012-05-29

今天踏踏实实的把代码封装了一次,刚把test的代码写完,这样看来数据模块的东西差不多了,把比较重要的Debuger 的 log代码也加上去了,明天连接到IPCAM上测试一下数据的接收.... PS://IPCAM会先返回 “VIDEO”的字符串 作为确认, parse buffer的时候应该注意需要单独处理这条指令, 这个小功能还没加上,还有其他的指令返回,也需要解析,明天添上这一小段

2012-05-29 18:18:09 196

原创 2012-05-28

继续完善网络通信方面的代码,把功能模块分开,确认多连接没有问题。同时开始做了一点协议层代码的简单搭建,由于开始协议很简单,封装一CLASS应该就可以了,以后肯定要扩展的。看了一下需求,还真是繁琐,写文档的时候发现工作量很大,按阶段来做是必要的,时间真的很紧,感觉整个东西做完,换一下皮肤,改一下界面,就是“幼儿园系统”了。如此大的一个系统,一个人做,吃紧的厉害哦.... 跨平台的需求:

2012-05-28 15:08:24 244

原创 2012-05-27

这两天把网络库封装了一下,介于以前写的代码片段进行编码(在上家公司上班的时候做过一个完整的库,忘记copy了,只有从新改一个出来)基本功能测试了端口连接,数据收发,这些应该不是啥大问题。 //TODO:数据处理模块还有待完善(搞个简单的内存交换池吧)通信协议模块还没搞(通信协议比较简单,为了效率着想,模块能不做就不做了)只能边做边测了....

2012-05-27 16:36:34 911

原创 2012-05-25

AX的代码已经看的差不多了,有些细节也来不及全部照顾到,总结一下:LIVE VIEW的功能总体分为三大模块1.网络数据收发模块,由TCP协议进行通信,关于SOCKET的代码可以自行先封装一个简单的,由于是多路摄像机的集中监控,需要封装多个connection并管理数据2.视频数据解码模块,由于ipcam那端采用h264编码,client端采用lib_ffmpeg来解码,看代码可以dec

2012-05-25 14:10:52 602

原创 2012-05-24

研究了httprecv相关的代码,主要是网络接收TCP的流媒体数据1,视频和音频数据是分包传递,检查了收到的数据包,貌似只有视频数据。2,网络SOCKET模块采用SELECT模型,如果面对多个连接,效率会跟的上么,不过这不是服务器,应该够用了吧3,逻辑很混乱,模块没有划分开,好多功能都是一个函数执行到底,看的脑壳都大了,线程管理也是没有一个集中的方案,到处都在开线程。4,程序指定的

2012-05-24 20:39:05 213

原创 2012-05-23

昨天拿到了IPCAM的AX代码,关键的注释...一行都木有啊,这是神马代码规范...TCP连接6002port,几乎完全不是一次就成功,ipcam那边会自动T掉连接?测试了N次都是需要CLOSE_SOCKET_HANDLE 2-3次才能正常连接然后发送"PLAY /video?ch=1 user=admin password=admin”指令开始接收live view数据...记录3个

2012-05-23 11:51:07 482

原创 2012-05-22

昨天拿到了IPCAM,用配套AX控件测试无误,不过不知道通信协议是怎样的,等代码发过来看一下。LIVE VIEW的控件是单独写的,setting中的配置信息估计也是从ax到应用服务器的,还有视频和音频都是走不同的端口传输。 先把AS的数据流ByteArrayt封装了一次,虽然AS在这方面做的比较全了,有几个问题值得记录一下1.AS的字节序统一采用BIG_ENDIAN, 在x86计算

2012-05-22 12:33:05 200

原创 2012-05-21

封装flash.net.socket,此socket为异步事件的socket,在使用的时候应该注意和以前处理异步socket时候的问题类似。同时在监听到SOCKET_DATA事件以后,解析函数需要处理各个解析类的映射函数。记录以前遇到的flash安全沙箱问题,由于flash自身的约定,不能跨域访问资源,所以server端要开放默认flash安全验证端口843,返回一段xml作为安全策略的验

2012-05-21 08:58:40 176

原创 2012-05-18

说实话真的很郁闷,高级语言的优点很多,缺点就是什么东西都给你定制封装的很好,接口也很简单,使开发人员无需关心底层的代码。FLEX的VDIEODISPLAY是一个专业的网络媒体播放器,指定服务器的URL就可以开始播放媒体数据。查了一下提到的关联DynamicStreamingVideoSource也是一个封装好的网络数据对象,控制起来完全没有意义。flash.media.video也是一个让C程序员

2012-05-18 11:40:24 597

原创 2012-05-17

IPCAM 不支持HTTP 或者 RTMP 的直播流, 搞的FLEX这边很被动。现阶段确定的方案可能是用TCP 直接传递直播流。1.FLEX这边需要对H264进行解码,然后让播放器播放直播流2.TCP传递大数据量显然是不可取的,特别是放到公网上,服务器会DOWN3.这种方法肯定不是最终的方案,需要独立出RTMP SERVER 来做为 流媒体服务器 (RED5 or RTMPD)

2012-05-17 10:44:39 215

原创 2012-05-16

Flash Player 9.0.115.0以上版本支持开始支持H.264(MPEG-4 part 10)+ HE-AAC(MPEG-4 part 3)的流媒体,封装格式支持MP4、MPEG-4、3GPP、M4V和F4V,在MediaCodec 0.6.1.4045中可以选择MP4和3GPP两种封装格式.如今的版本是 FP 11.X的了,开始支持GPU加速,所有 FLASH 3D 才开始有搞头

2012-05-16 01:02:11 400 1

原创 2012-05-15

调整多播放窗口到舞台固定GROUP中可设置播放器数量,间隔值,长宽比(暂时使用的16:10)等参数CON://由于用户显示设备的分辨率或者其他原因,如(PC,IPAD,MOBILE),整个舞台的大小需要做自适应。需要根据实时视频的图像大小做调整,不能引起画面变形或者严重拉伸。

2012-05-15 11:44:22 239

原创 2010-05-14

三大功能由TAB控件分页做为测试DEMO的主框架控件A.搭建后台多窗口监控界面。1. 动态创建多窗口播放器, 编写播放器集合等代码2.解决PLAYER 放置到GROUP的问题3.封装类代码(WndVideoPlayer )4.测试使用相同的URL进行播放,实现多窗口播放视频流 TODO://不定数量多窗口动态适应充满舞台,调整播放器RECT参数,放置到新的STAGE

2012-05-15 00:05:32 208

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除