新人初来咋到,请大伙不吝赐教,谢谢~
大神们 鄙人现在在搞android视频监控的开发,碰到问题了:
1、现在应用层使用的是surfaceview + bmp 的方案,i9100的手机测试只有14fps左右,卡顿感明显,再加上以后想扩展为同时显示多个视频窗口,肯定吃不消的,所以现在想办法提高帧速。
底层c是用的h264编解码方案,请问大伙有什么好的方案?
2、现在是我的bytearray不包含头信息~从图片的原始数据bytearray到bmp只有decodeByteArray么?可不可以不写头信息?有没有更高效的?
能描述下你的这个数据流程吗?
数据是放在图片里?bytearray到bmp又是什么意思?
bytearray就是原始的RGB565啊~
是这样的 我整个解码过程是:
接收h264(raw) ——> YUV420p ——> RGB565 ——> .bmp ——> 显示
但是这个方法过于费时,cpu占用量太大,解高清根本行不通啊,即使后来我把创建完整bmp图片下放到底层也没有太大改善。
不过最近我在iOS上实现了OpenGL SE渲染YUV数据,不用创建位图了,这个效率高太多了,准备移植到Android,至于目前的Android实现还是旧办法,大神你 如若有想法还是欢迎 赐教 *^_^*
@LinZh107: 我的想法也是直接输出yuv的数据,我们做camera preview的时候,一般就是直接用surfaceTexture去输出yuv的,用cpu去转换太费时,在android上做图像这方面的处理务必用opengl来做,skia做的效率都不行,而且用surfaceTexture后面做多窗口的显示也方便一些。