【发布时间】:2012-06-25 06:52:32
【问题描述】:
在我的本地线程中,我让 FFMpeg 获取和解码帧,然后将它们放入队列中。
在 Java 方面,我有一个 GLSurfaceView 和 Renderer.onDrawFrame 我正在调用传递位图的本机代码(该位图我只创建一次,然后每次都传递它)。
在本机代码中,我获得了队列的头部,使用AndroidBitmap_xxx 函数将数据复制到 java 位图,然后在 Java 端将该位图渲染为纹理。
我想知道有没有更快的方法来渲染视频?我应该完全在本机代码中完成吗,如果是,为什么它会更快?
编辑:我现在不将 RGB 帧像素复制到锁定的位图像素,而是将 YUV 帧直接解码为锁定的位图像素。这使得渲染速度明显更快(因为不再需要不需要的 memcpy)仍然存在问题。
【问题讨论】:
-
有没有办法直接使用FFMpegs帧输出作为纹理数据上传,不需要中间的Bitmap步骤?
-
我如何在android中使用FFMpeg ??你能给我任何参考吗?我实际上想使用位图帧渲染视频。
标签: android opengl-es bitmap ffmpeg rendering