【问题标题】:Issues encoding audio with Mediacodec and Motorola mobile使用 Mediacodec 和摩托罗拉移动编码音频的问题
【发布时间】:2016-05-07 10:01:03
【问题描述】:

我已经能够实现视频/音频解码器和编码器。在我的三星 S3 上,一切正常。然后我部署到三星,我已经修复了一些旋转问题,但最终编码的视频没有音频。 当我停止 mediamuxer 时,我得到以下日志:

01-29 12:35:26.372 I/MPEG4Writer(23222): Received total/0-length (27/0) buffers and encoded 27 frames. - video
01-29 12:35:26.374 D/MPEG4Writer(23222): Stopping Audio track
01-29 12:35:26.376 I/MPEG4Writer(23222): Received total/0-length (4/82) buffers and encoded 4 frames. - audio
01-29 12:35:26.376 I/MPEG4Writer(23222): Audio track drift time: 0 us
01-29 12:35:26.377 D/MPEG4Writer(23222): Stopping Audio track source
01-29 12:35:26.377 D/MPEG4Writer(23222): Audio track stopped
01-29 12:35:26.377 D/MPEG4Writer(23222): Stopping Video track
01-29 12:35:26.377 D/MPEG4Writer(23222): Stopping Video track source
01-29 12:35:26.377 D/MPEG4Writer(23222): Video track stopped
01-29 12:35:26.378 D/MPEG4Writer(23222): Stopping Audio track
01-29 12:35:26.378 D/MPEG4Writer(23222): Duration from tracks range is [80000, 1772500] us
01-29 12:35:26.378 D/MPEG4Writer(23222): Stopping writer thread
01-29 12:35:26.379 D/MPEG4Writer(23222): 1 chunks are written in the last batch
01-29 12:35:26.380 D/MPEG4Writer(23222): Writer thread stopped
01-29 12:35:30.212 D/MPEG4Writer(23222): Stopping Video track
01-29 12:35:30.212 D/MPEG4Writer(23222): Stopping Audio track

我猜这与 4/82 缓冲区有关,只有 4 帧编码。我已将我从解码器获得的所有缓冲区写入多路复用器,我认为其中有 82 个缓冲区。 PresentationTime 和标志与我从解码器获得的相同。 正如我所说,此代码适用于我的三星 S3。你有什么想法会是我的问题吗?可能是比特率吗? 谢谢。

【问题讨论】:

    标签: android audio android-mediacodec mediamuxer


    【解决方案1】:

    我发现在某些情况下 byteBuffers 使用 Position=Limit,因此,我必须设置 Position(info.Offset)、Limit(info.Offset+info.Size),就像在许多示例中一样(例如涂鸦)。正因为如此,我一直在编码 0 长度的缓冲区,但只有 4 个带有数据。没有它,这在我的三星上运行良好,但在摩托罗拉手机上却不行。 谢谢

    【讨论】:

    • 但是为什么 position=limit 呢?如何解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 2016-04-28
    • 2015-04-09
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    相关资源
    最近更新 更多