【问题标题】: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 在其框架中内置了所有必需的功能,可以从nativeJava 层访问。下面的所有组件名称都有一个Java 抽象和Native 实现,您可以考虑在您的项目中相应地使用它们。对于您的问题,

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

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

    2)如果您希望使用FFMPEG 中的demuxer,则必须将其集成到系统支持的MediaExtractors 列表中。由于您的主要兴趣是MP4AVI,两者都受支持,我觉得您可以避免这种努力。如果您仍然对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
      相关资源
      最近更新 更多