MediaCodec和OMXCodec之间的区别

时间:2014-11-06 12:12:09

标签: android stagefright

我刚刚开始使用Android多媒体框架(Stagefright),并对使用AwesomePlayer的{​​{1}}中本地回放的工作原理有了基本了解。

我一直使用OMXCodec状态图来映射我的理解 http://developer.android.com/reference/android/media/MediaPlayer.html到目前为止它已经相当不错了。我已经能够将我的理解映射到代码中。

但是我看一下MediaPlayer模块(可能用于流媒体ACodecrtsp等)我发现很难。 我无法理解HLS是如何形成的。

我查看了这篇文章Android: MPEG4Writer fails to start when using OMXCodec as MediaSource,但仍无法与MediaCodec达成协议。

  1. Streaming vs Local Playback的流程图是否不同。
  2. MediaCodecMediaCodec
  3. 的区别

    我知道本地播放时的引擎很棒,在流式传输时会被OMXCodec取代。

1 个答案:

答案 0 :(得分:2)

从架构角度来看,OMXCodecACodec是底层OMX组件的最低抽象。 OMXCodec是第一个被引入的ACodecNuPlayerOMX相关。

这两个实体都可以使用基础audio组件,并且可以同时支持videoMiracast个编解码器。但是,ACodec仅通过以下原因支持自适应播放MediaCodec等新功能。

NDK是本机(Java)和SDKMediaExtractor)级别接口,为最终用户提供实例化独立编解码器。 Android一直在公开MediaMuxerMediaCodec等构建模块,以便为应用程序开发人员提供更好的灵活性。 MediaCodec就是这样一个界面。

内部ACodec实例化OMXCodec实例,因此在架构上高于Miracast。所有新功能(如MediaCodec自适应回放)仅反映在ACodec中,因此相应的相关更改仅在{{1}}中显示。