【发布时间】:2013-10-15 22:07:48
【问题描述】:
已经演示了如何像 CameraPreview 一样 feed MediaCodec with Surface input,但是在提交到 MediaCodec 之前是否有缓冲此输入的实用方法?
在我的experiments 中,Galaxy Nexus 在使用CameraToMpegTest.java 中的直接同步编码方法生成音频/视频流时遇到了无法接受的问题
将MediaCodec 与byte[] 或ByteBuffer 输入一起使用时,我们可以将未编码的数据提交到ExecutorService 或类似的队列进行处理,以确保没有丢帧,即使设备出现CPU 使用率高峰我们的应用程序的控制。但是,由于需要执行color format conversion between Android's Camera and MediaCodec,这种方法对于高分辨率的实时视频是不现实的。
想法:
有没有办法将使用
EGL14.eglCopyBuffers(EGLDisplay d, EGLSurface s, NativePixmapType p)创建的NativePixmapType提供给MediaCodec?Android 的任何人都可以评论一下协调相机和 MediaCodec 之间的 ByteBuffer 格式是否在路线图上?
【问题讨论】:
-
那么,在将帧传递到 MediaCodec 的输入时,您是否找到了解决问题的方法?就我而言,我在将 MediaCodec 的输出提供给 MediaMuxer 时对其进行缓冲。但是在调用 swapBuffers() 来提供 MediaMuxer 的输入时,我遇到了问题。
标签: android android-mediacodec