视频程序出了些问题,会的帮帮我吧,找了好些天找不到原因,55555
平台:PC + XP + VS2005 + MFC
程序:网络视频
传输协议:TCP
问题:
我没有调整画面的大小,仍然是标准的 177*144 大小
但,画出来的图片,在上半部分是很清晰的,下半部分画不出来
当我用手在摄像头前晃了晃时,由于关键桢的变动,画面有时就完整了,但一会又有马赛克了
我反复的跟踪,终于发现,问题就出现在关键桢上
抓包抓到的关键桢数据大致如下:
------------------------------------------
-> 收到数据:1440字节
24 00 05 B0 80 60 B2 A8 00........
-> 收到数据:1440字节
3B 76 D5 C1 C8 05.............
-> 收到数据:221字节
28 9B 4E 15 5B 11 76 ......
-------------------------------------------
这3个包,是连续收到的关键桢数据,总共3101字节(我举个例子)
这3个数据包一共3101字节,按照正常桢的话,可以认为包含3个关键桢(根据包含几个标志性头:24 00 来确定),如果这样将每一桢数据单独进行解码的话,会出现画面不全,根据程序日志分析,发现,这样做的话,第2桢肯定是解码失败!!!这就是为什么下半部分画的有问题的原因!!!
后来我想,既然是一起发过来的连续关键桢数据,我何不把他们合并为一个桢来解码呢?于是我将3个包合在一起,并去掉了除第一个外的 24 00 标志,最后调整了纪录包大小的05 B0 两个字节
认为这下解码器会认为这是桢大约有近3000字节的数据,该不会出现不全了吧
结果.......还是那样
谁能帮帮我,究竟是哪里出了问题???
5555555555555555555555555555555555
[解决办法]
关键桢 数据包过长所以需要发送多次,
接收的时候需要合并起来再解码,
你再看解码是否成功, 知道才能确定原因
[解决办法]
你的低存通讯不是很好,
合并就是你说的这样, 你看再看包的解码是否OK??
[解决办法]
那就是你包合并的数据不对了, 仔细查看数据包吧,
[解决办法]
我最近也要搞一个关于视频传输的,可我现在还不知道怎么做呢!方案还没写...