我正在尝试使用 mediaCodec 从 openGl ES 表面创建 mp4 视频。我有一个 eglSurface,该 eglSurface 的源表面是 MediaCodec 输入表面。

我可以为 eglSurface 设置不同的尺寸,当一个尺寸(宽度或高度)太大时:例如宽度 = 5000 和高度 = 512,MediaCodec 崩溃。

这是一个崩溃日志

android.media.MediaCodec$CodecException: Error 0xfffffc0e
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:588)

....

在某些设备(Galaxy s7 edge)上,它不会崩溃,但生成 videoView 后不会播放视频。

对于小尺寸(例如屏幕尺寸),它在所有设备上都能正常工作

最佳答案

您的纹理宽度太大。
AFAIK,最大纹理大小为 4096x4096。根据设备的不同,它可能会低于该值。

检查这个答案:
https://stackoverflow.com/a/4528043/1353758

关于Android MediaCodec 配置错误,崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39775843/

10-12 01:50