android - outputBuffers 返回空指针,尽管帧在屏幕上呈现,在 Android 中使用 MediaCodec

标签 android media bytebuffer encoder android-mediacodec

我正在使用 MediaCodec 类使用此 link 中给出的代码解码 .mp4 视频.

我能够在屏幕上获得呈现的输出,但是当我尝试访问 outputBuffers[outIndex] 时,出现空指针错误。我不知道如何访问帧缓冲区以对其进行一些处理。

最佳答案

这是预期的(尽管未记录)行为。您可以将输出发送到 ByteBufferSurface,但不能同时发送。

一些可能感兴趣的其他示例可用 here .如果解码为 SurfaceTexture,则可以渲染纹理两次,一次为 View,一次为 pbuffer 表面。您可以使用 glReadPixels 获取数据并对其进行处理,或者在 GLES 着色器中进行处理。

如果您提取到 ByteBuffer,您必须自己解释数据,这在使用专有输出格式的设备上很困难。您会从缓冲区到缓冲区 CTS 测试中注意到,由于格式未知,因此未检查某些设备。

关于android - outputBuffers 返回空指针,尽管帧在屏幕上呈现,在 Android 中使用 MediaCodec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18776776/

相关文章:

android - 如何在 Google map 自定义信息窗口中仅显示标题和 fragment ?

java - 如何从只有 1 个剩余字节的 ByteBuffer 中获取 Int (Java NIO)

Java:直接 IntBuffer 的大小限制?

android - 设备在 DDMS 中不断消失

android - avc : denied { connectto } when using uds on Android 10

css - 在CSS中使用@media隐藏div类

css - 媒体查询不适用于我的 WordPress 主题的网站 Logo

python - 无法在数据库的 html 页面上显示图像

java - java中使用非阻塞I/O发送消息(NIO API)

java - Apache 的 Base64.encodeBase64 和 Android 的 Base64.encode 与 Base64.Default 标志之间有什么区别吗?