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个参数设置:(ch:频道 )(user:用户名) (password:密码)

RETURN:

VIDEO(估计这是标示指令验证成功),不用另外提交申请,ipcam直接发送数据

MAX USER(估计这是说已经最大连接数)

NO VIDEO:User Account Error!(用户验证错误)

 

接下来还需要了解每个数据包是什么意义,貌似会收到统一长度的数据包 ,估计格式是一样的吧

PS: IPCAM会先返回512 bytes, 与媒体数据无关,必须剔除掉这些数据.

 

下面是列出的结构体,用于分析每帧的数据,很繁琐

// basic Video Frame Header
struct FRAME {
 WORD  Size;    // version control  -- 版本号 2 bytes
 WORD  Channel;   // channel id --频道 2 bytes
 WORD  FrameType;   // I-frame / P-Frame / Audio-Frame -- 指定A/V 的数据 2 bytes
 WORD  FrameWidth; // --宽 2 bytes
 WORD  FrameHeight;// -- 高 2 bytes
 DWORD  FrameSize; // -- 帧的长度 4 bytes
 DWORD  CodecType;   // codec type -- 编码类型id 4 bytes
 DWORD  SequenceNumber;  // continous sequence number (indexed when buffering)// -- 帧自然序列号

 DATETIME RecordTime;   // time stamp -- 时间 8bytes
 STATUS  Status; // 4 bytes 的一个 struct

 DWORD       Freqence;           //audio sampling frequency --音频自然序列 4bytes

 unsigned char  ChannelNum;      //the channel number of audio -- 频道id 1byte

 unsigned char  RecordingMode;  // server recording mode --录制类型 1 byts
 unsigned int   VideoSequence;  // Video Sequence only for client -- V 序列 4bytes
 unsigned int   AudioSequence;  // Audio Sequence only for client -- A 序列 4bytes
 char     Reserved[8];  // pack it to 64 bytes -- 什么意思 预留8 bytes 又打包到64bytes ,难道是写错了 是64bit?

 // parameter field
 char*  Buffer; //-- what?
 int   Max; //-- what?
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值