【问题标题】:Demux .mp4 file using openmax and android stagefright使用 openmax 和 android stagefright 解复用 .mp4 文件
【发布时间】:2013-12-02 15:00:48
【问题描述】:

如何解复用 .mp4 文件并分离音频/视频,然后使用 openmax 和 android stagefright 单独渲染。

1.如果我必须实现jni文件中的所有功能。

2.如果我使用 ffmpeg 进行解复用,它如何与 android stagefright 集成(如果我必须构建 ffmpeg demuxer 作为组件并使用 openmax il 将其与 android 链接或在 android jni 中编写整个代码(在那情况下我必须将 ffmpeg 与 android stagefright 链接))。

3.由于android ndk不支持stagefright,如何整合两者。

问候 马扬克

【问题讨论】:

    标签: android stagefright


    【解决方案1】:

    一般来说,Android 在其框架中内置了所有必需的功能,可以从native 和Java 层访问。下面的所有组件名称都有一个Java 抽象和Native 实现,您可以考虑在您的项目中相应地使用它们。对于您的问题,

    1) 我建议您可以直接使用MediaPlayer,就像在这个JNI 实现中找到的那样,其实际实现可以在here 中找到。

    但是,如果您需要构建自己的管道,我建议您使用可用的块,例如 MediaExtractor 进行解复用并提供单独的轨道,OMXCodec 用于编解码器,我认为您将管理 audio 路由和Surface 在您的实施中处理视频。 SimplePlayer 示例实现对您来说是一个很好的参考。

    2)如果您希望使用FFMPEG 中的demuxer,则必须将其集成到系统支持的MediaExtractors 列表中。由于您的主要兴趣是MP4 和AVI,两者都受支持,我觉得您可以避免这种努力。如果您仍然对FFMPEG 集成感兴趣,请提出单独的查询,因为答案非常详尽。

    3) 我觉得这个说法可能并不完全正确。 NDK 可以支持 stagefright 如果需要,但这里的理念不同。对于播放,NDK 支持 OpenMAX AL 播放器应用程序,如在此 html 文件中找到的,以及示例 here。但请注意,OpenMAX AL 实现仅支持 MPEG-2 TS,这可能不符合您的要求。

    【讨论】:

      猜你喜欢
      • 2015-12-23
      • 2014-03-21
      • 2014-03-02
      • 1970-01-01
      • 2012-12-06
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多