手机视频画面显示问题

peterb 2009-06-03 09:46:26
最近老大安排我做一个手机视频监控项目,我对手机开发不熟悉,毕业之后一直主要从事Java/.net方面的Web开发;这个是我第一次尝试手机开发,到现在才1个多月,很多地方不懂,还好现在是网络时代,不少有用的资料都可以在网上找到,拿一些代码进行借鉴,程序开发起来,容易不少;项目平台是vs 2005 + WM 5.0 SDK(Pocket PC),语言采用Win32(直接是C + SDK API),现在模拟器下测试发现画面显示有一些问题,中心手机流媒体转发前端监控设备DVR/DVS的子码流(QCIF图像画面质量)视频数据给手机客户端解码播放,主要存在以下问题:

1.手机上画面有时给人感觉显示比较慢(看画面上时间戳)

2.时间显示不连贯,有时隔2s,有时隔5-6s才显示,比如现在9:41:15,再显示的是到9:41:47了,没有1s,1s这样显示,感觉视频画面不够流畅

3.画面出现突变花屏(这种情况比较少发生)

分析了一下了原因:

1.手机上的解码库效率问题,对接受到的视频数据处理不够来

2.网络传输问题,丢包了,导致视频的I帧(关键帧丢失),我们采用TCP进行视频数据传输,每个视频包一般不大于1500字节

3.其它未知原因

希望有做过手机视频开发方面的xdjm指点一下,谢谢大家了,因为项目在这个月中旬要完成.
...全文
117 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
peterb 2009-06-07
谢谢大家的关注,问题前几天已找到原因,自己范了思维定向,测试所用的监控设备是早几年的产品,手机流媒体通过厂商的SDK回调取其子码流数据转发给客户端,经测试发现,在手机客户端分析接收到数据,居然高达1M/bps,完全不是QCIF图像画面质量该具有的数据量而是HD1,手机毕竟不是PC,不管解码库效率如何高,也处理不够来;后发现该设备居然不支持子码流输出,回调其子码流上来的也是主码流数据;
因为一直使用的新近设备,是支持主子码流输出的,所以想当然以为旧设备也是这样的,测试也发现传输大量数据时确实存在丢包现象,需采用缓冲机制来处理丢包,对回调上来的数据先进入缓冲区,开启一个线程专门进行处理转发视频数据操作;画面大小对图像的清晰度是会有影响
回复
lius1984 2009-06-06
有没有缓冲机制来处理丢包? 你可以放到真机试试,效果应该比模拟器的好。解码器你用的是哪个开源库? 如果是ffmpeg的话 可以做到在EDGE网络 qcif 15-20帧, cif 5-10帧。 我之前做过类似项目,mobile和symbian平台。采用UDP传输。 http://blog.csdn.net/lius1984/archive/2009/04/28/4131393.aspx
回复
chxy85 2009-06-05
帮顶了,关注中
回复
liangls1982 2009-06-04
是不是分辨率设置的太大了?用 144×176的实施看?
回复
nihao38 2009-06-04
回复
世外涛缘 2009-06-04
不了解,帮顶。
关注。
回复
jinlingzwp 2009-06-03
1500字节小了点吧,I桢比它大
回复
对于2,TCP的窗口是否可以调整,以满足视频包的帧大小
回复
ppc_2008 2009-06-03
学习,帮顶
回复
88csdn 2009-06-03
1、看一下各耗时操作需要多少时间,找一下哪个是瓶颈吧
回复
发动态
发帖子
Windows客户端开发
创建于2007-08-27

7520

社区成员

Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
申请成为版主
社区公告
暂无公告