经过一段时间的努力手机 3G 应用流媒体播放器项目终于接近尾声了。回想整
个过程历经坎坷阿!一共开发了两个平台的应用,首先是 windows mobile 平台,
相对 symbian 来说资源多一些,所以先拿它下手阿。
说一下实现思路,刚开始考虑使用 directshow,经过验证没达到预期目的
(水平差阿,不懂 directshow),接着研究 tcpmp,寻思开发一个 rtsp 流插件,
再加上 mpeg4 的插件不就行了吗!一段时间之后发现 tcpmp 太牛了,没看懂!
(没注释、没文档),在快要跳楼的时候决定改为比较最原始的实现方式,
步骤如下:
1、读取网络数据。
2、交给解码器解码。
3、转换格式。
4、显示绘制。
首先 mobile 平台有很多 wince 和开源的东西可以拿过来用,例子有很多不
过大多都是播放本地文件。在这里有两个例子初学者可以看看。
赛安软件工作室提供的一个 mpeg4 解码例子很不错可以研究一下。它用自
己的解码器,可以播放 15 分钟,可以为自己所用的是他的写屏和 yuvtorgb 等。
另外一个就是使用 ffmpeg 和 sdl 的例子,可以参考一下他使用 ffmpeg 的方
法。ffmpeg 在 mobile 平台下的代码我这有,网上也有!具体下载位置不说了,
在 google 里搜索 ffmpeg4mobile 有很多个下载点。
有了上面两个例子开始搞自己的东西吧。首先是 rtsp 读取网络流,这个东东网
上也有,可以直接拿过用,我用的是开源的 live55,不过需要移植一下。效率
还可以!有了网络数据就要解码了,解码模块可以使用 ffmpeg,但是效率不高,
就考虑使用 xvid,xvid 这个解码器效率不错,并且也是开源的。有了网络数据
和解码器其余的都是小问题了,解码器输出的 yuv420,需要把它转换为 rgb。
这步转换网上很多,没有搜不到,只有想不到啊!最后参考第一个例子的绘制
部分就可以搞定!
附图: