【问题标题】:How to use MediaCodec class to decode H.264 streams如何使用 MediaCodec 类解码 H.264 流
【发布时间】:2013-04-07 08:09:20
【问题描述】:

我被要求在 android 中显示视频流(流不是来自 HTTP),流是原始 H.264,在 PC 中录制和编码,我通过 WIFI 获取。

当我得到流时,可以使用MediaCodec解码器将流解码并显示吗?

【问题讨论】:

    标签: android video h.264 decoder


    【解决方案1】:

    是的。将 MediaCodec 配置为“video/avc”解码器,并将输出 Surface 传递给 configure() 调用。

    MediaCodec API 非常低级,并且没有很多可用的示例代码。改用MediaPlayer 可能更容易。

    更新: 现在有一堆示例代码here。其中大部分使用 Android 4.3 (API 18) 功能,但如果您不需要 MediaMuxer 或 Surface 输入到 MediaCodec,它将在 API 16 上运行。

    【讨论】:

    • 但是,我找不到用 MediaPlayer 处理 H.264 流的方法。有什么理想吗?
    • 让我后退一步。格式到底是什么——基本流、PES……? MediaCodec 接受基本流数据,但不接受它是流;它需要一系列“访问单元”,因此如果它是基本流,则需要保留或恢复“数据包”边界。您还需要确保传入的第一个缓冲区具有所需的编解码器信息,目前没有记录。您最好的选择可能是将 PC 端的流转换为 MediaPlayer 可以处理的内容。
    【解决方案2】:

    请参阅视频编码建议here

    【讨论】:

      猜你喜欢
      • 2015-12-04
      • 2015-02-24
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 2012-11-07
      • 2012-06-22
      • 1970-01-01
      相关资源
      最近更新 更多