在Symbian平台上实现H264的RTSP流的播放
来源:互联网 发布:阿里云服务器远程控制 编辑:程序博客网 时间:2024/05/17 03:37
随着目前手机监控市场的快速发展,手机监控因其可以实现真正的“AnyTime、AnyWhere、AnyDevice”(任何时间、任何地点)而收到越来越多安防企业的重视。目前的智能手机操作系统主要被Symbian、Wince和Linux占有。要真正实现手机监控的”AnyDevice”( 任何设备),最少要支持上述三种的手机操作系统。由于Wince和 Window开发平台的相似性,目前Wince平台上的H264的解码库有很多开源的代码可以参考, 网上可以参考的代码主要有ffmpeg、JM、T264,x264等。我在网上搜索了Symbian上的H264的解码库,发现根本没有开源的项目可以参考,所以本文主要关注在Symbian平台下实现上述功能。
系统的结构如下图所示:
视频服务器实现了双码流,这样即可以保证普通监控的要求,又可以保证满足手机监控等特殊需求。考虑到实际网络的带宽,解码能力等因素,手机上推荐使用CIF或者QCIF的分辨率,帧率最好控制在15帧以下。 软件的框架如下图所示: Net Engine模块主要负责向视频服务器获取数据, 实现了一个RTSP协议, 将控制信息和音视频的数据分别从RTSP包和RTP包中取出,送往视频流队列当中。具体的RTSP协议的协商可以参考RFC的文档。 Stream Data Queue模块主要用于负责存储音视频的数据, 没有什么需要详细说明的。 H264 video decoder模块主要负责视频数据的解码。解码库采用的是移植过的ffmpeg, 这是这个程序当中花费时间最长的部分, 对ffmpeg的移植最主要要主要内存对齐,并且有些在PC上可以用的参数在Symbian平台下需要进行断点调试修改后才可以使用。 AMR audio decoder和AAC audio decoder可以在网上寻找纯C的代码,稍加移植即可使用。建议可以先在Window平台下面调试通过在移植到symbian平台上面。 在Symbain中,RGB颜色的实际存储方式实际上是BRG顺序。如红色实际上保存为0x0000FF而非0x00FF0000。所以如果有其他平台用到Symbian中的颜色的话,请注意转换。Ffmpeg解码输出鱼yuv420,在PC上可以转换成RGB565显示, 在Symbian上需要转换成BGR565。 转换的部分可以参考MobiFLV项目的YUVToRGB.h和YUVToRGB.cpp两个文件, 作者对转换的过程采用了查表优化,效率很不错,另外该类支持按比例对视频进行缩放,效果不错。 视频显示可以使用 播放的效果如下图所示, 竖屏 横屏 以上的程序连接的rtsp地址为rtsp://88.107.126.1:3838/live.3gp,图像质量为CIF ,5FP/S,32KB。该视频服务器位于英国,有兴趣的朋友可以试试看。该程序还实现了对远端的云台控制,控制镜头的移动和缩放,丰富了手机监控的功能。 程序在E71,N81,N95上面测试通过。 缺点 : 当接入点选择cmwap时,无法连接视频流, 因为服务器端没有做RTSP流代理功能,客户端需要做移动网关的穿透。考虑到cmwap的速度很慢和未来网络的发展,实现的意义并不是很大,所以放弃了该部分的工作。 有兴趣的朋友可以联系我,一起交流学习。 ppnext@163.com。CFbsBitmap
进行贴图显示,但这样的效率不是最高。使用CDirectScreenAccess类直接写屏,可以得到更高是效率。音频直接调用系统的
CMdaAudioOutputStream 类进行播放即可。
- 在Symbian平台上实现H264的RTSP流的播放
- 在Symbian平台上实现H264的RTSP流的播放
- 在Symbian系统上实现H264的RTSP流的播放
- android平台下可以播放h264格式的rtsp,rtmp流的播放器
- 如何在Ophone平台上实现rtsp流媒体播放
- 如何在Ophone平台上实现rtsp流媒体播放
- 如何在OPhone平台上实现rtsp流媒体播放
- 如何在Ophone平台上实现rtsp流媒体播放
- Symbian上播放H264文件
- Symbian上播放H264文件
- symbian s60平台的H264编解码
- live555实现ffmpeg解码H264的rtsp流
- live555实现ffmpeg解码H264的rtsp流
- live555实现ffmpeg解码H264的rtsp流
- live555实现ffmpeg解码H264的rtsp流
- 在Android平台上实现H264解码
- qt5.0+mingw+qtav实现windows上播放rtsp流的过程整理
- windows mobile和symbian平台下rtsp流媒体播放器实现方法
- c#利用反射轻松遍历类获取其所有属性及属性值
- 程序员10层楼
- sql server where 中添加判断
- STL 之 容器
- C#打开文件对话框(OpenFileDialog)
- 在Symbian平台上实现H264的RTSP流的播放
- 最大流
- 在 ASP.NET 環境下使用 Memcached 快速上手指南
- 《深入Java虚拟机》导读之三: 安全
- Jersey 传递大数据量的数据【有长度限制】
- javascript正则表达式
- 在OPhone上实现视频监控
- 用Jquery改变复选框的状态
- Win 7 下一种IE首页恶意篡改的解决(go2000.com/?XX)