【问题标题】:Does MediaCodec truncate incoming packets for decoding?MediaCodec 会截断传入的数据包以进行解码吗?
【发布时间】:2013-09-21 07:23:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: android ffmpeg stagefright android-mediacodec


    【解决方案1】:

    我发现了问题所在。我必须增加传入的套接字缓冲区才能接收所有数据包数据。由于我使用的是 Live 555 RTSP 客户端,因此我使用了 increaseReceiveBufferTo() 函数。

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2020-12-08
      • 2017-01-26
      • 1970-01-01
      • 2019-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      相关资源
      最近更新 更多