MediaCodec是否会截断传入的数据包进行解码?

时间:2013-09-17 01:37:04

标签: android ffmpeg stagefright mediacodec

我正在使用MediaCodec解码用ffmpeg编码的h264数据包。当我用ffmpeg解码时,帧显示正常。但是,当我用MediaCodec硬件解码器解码时,我有时会在帧的中间出现黑条。只有在编码比特率设置得足够高(例如4000000以上)时才会发生这种情况,这样任何给定的AVPacket大小都会超过95000左右。似乎MediaCodec(或底层解码器)正在截断帧。不幸的是,我需要质量,所以不能拒绝比特率。我已经确认这些框架没有在其他地方被截断,我尝试将MediaFormat.KEY_MAX_INPUT_SIZE设置为更高的值。

有没有人遇到过这个问题,或者知道我可以解决这个问题的方法吗?

我附加了一个随机像素的图像,我在OpenGL中渲染,然后在我的Galaxy S4上解码。

a busy cat

1 个答案:

答案 0 :(得分:1)

我弄清楚问题是什么。我不得不增加一个传入的套接字缓冲区,以便接收所有的数据包数据。由于我使用的是Live 555 RTSP客户端,因此我使用了increaseReceiveBufferTo()功能。