OpenGL ES利用纹理绘制实时视频的关键步骤
来源:互联网 发布:羽绒被 蚕丝被 知乎 编辑:程序博客网 时间:2024/04/19 15:59
基于协议保密的原因,不能具体介绍情况,只是说说注意的地方。
首先视频数据能基本解码成功了,采用OpenGL ES技术是想在原来的基础上提升性能。我试验的结果是性能没有什么变化;从执行时间来说还慢了10倍(之前是0.01秒的处理时间,加了OpenGL ES后还要0.1秒了)。
在成功解码视频数据后加入以下代码:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // 1
[EAGLContext setCurrentContext:_context]; // 2
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],GLKTextureLoaderOriginBottomLeft, nil]; // 3
GLKTextureInfo *texttureInfo = [GLKTextureLoader textureWithContentsOfData:UIImageJPEGRepresentation(image, 1.0) options:options error:nil]; // 4
self.effect.texture2d0.name = texttureInfo.name; // 5
});
1.我采用了GCD技术来缩短执行时间,确实加了GCD后平均能缩短0.02左右的时间。
2.OpenGL 的选择当前设备上下文(context)。(不设置的话就不会显示处理)
3.作为opengl的视频旋转处理。不然视频是倒立的。
4.生成纹理,做贴图用,在openGL es中叫纹理了。类似UIImageView。(这个要注意,要使用jpg格式的,我开始做成PNG格式的老是黑屏)。
5.绘图并显示图片。
以下是OpenGL ES的相关资源
http://mississi.blog.163.com/blog/static/10248920120127136451896/
http://www.1000phone.net/forum.php?mod=viewthread&tid=6270&highlight=OpenGL%2BES
http://down.51cto.com/zt/6229
- OpenGL ES利用纹理绘制实时视频的关键步骤
- android opengl es绘制三角形+纹理
- Android OpenGL ES 2.0绘图:绘制纹理
- OpenGL ES绘制3D纹理贴图
- Android OpenGL ES 2.0绘图:绘制纹理
- 解读OpenGL ES 2.0绘制一个三角形的步骤
- Android OpenGL ES绘制透明纹理立方体(未解决)
- android opengl es添加纹理,绘制立方体纹理,立方体使用不同纹理
- iPhone OpenGL ES加载纹理的方法
- OpenGL ES 纹理阵列的实现
- opengl es 纹理无法显示的问题
- OpenGL ES纹理管理
- OpenGL ES纹理
- OpenGL ES纹理贴图
- Opengl es 纹理映射
- OpenGL ES纹理映射
- opengl es 纹理压缩
- OpenGL ES纹理贴图
- 类的赋值运算符=的重载,以及深拷贝和浅拷贝 详解
- CDataExchange说明
- JSTL标签库
- JVM时间
- Android emulator 的控制按钮不能使用并显示 "hardware buttons not enabled in avd"
- OpenGL ES利用纹理绘制实时视频的关键步骤
- URAL 1513. Lemon Tale 好多大数
- pthread_mutex_t的使用
- MongoDB基本命令用
- ccombox说明
- WildFly LDAP设置
- java中值传递和引用传递辨析
- 第19条:接口只用于定义类型
- Eclipse NDK 配置