我MediaCodec
用来解码用 ffmpeg 编码的 h264 数据包。当我使用 ffmpeg 解码时,帧显示正常。但是,当我使用MediaCodec
硬件解码器进行解码时,有时会在帧中间出现黑条。仅当编码比特率设置得足够高(例如超过 4000000)以使任何给定AVPacket
大小都高于 95000 左右时,才会发生这种情况。似乎MediaCodec
(或底层解码器)正在截断帧。不幸的是,我需要质量,所以比特率不能被拒绝。我已经验证帧没有在其他地方被截断,并且我尝试设置MediaFormat.KEY_MAX_INPUT_SIZE
为更高的值。
有没有人遇到过这个问题或知道我可以解决它的方法?
我附上了我在 OpenGL 中渲染然后在我的 Galaxy S4 上解码的随机像素图像。