【问题标题】:Android: Creating an OMX component for a video decoderAndroid:为视频解码器创建 OMX 组件
【发布时间】:2014-03-20 20:04:00
【问题描述】:

我有一项新任务,要将解码器 (HEVC) 从 FFMPEG 集成到 Android 的 Stagefright。为此,我首先需要创建一个OMX 组件,我接下来要做的是在media_codecs.xml 中注册我的编解码器,然后在OMXCore 中注册OMX 组件。

是否有任何指南或步骤可以为视频解码器创建 OMX 组件?其次,这个解码器只播放基本流(.bin.h265 文件),所以这里没有容器格式。

在为视频编解码器创建 OMX 组件时,谁能提供一些要遵循的步骤或指南。任何形式的指针都会对我很有帮助。

提前致谢。

【问题讨论】:

    标签: android ffmpeg stagefright video-codecs openmax


    【解决方案1】:

    一般来说,您可以按照steps pointed in this question 将解码器集成到OMX 核心中。

    HEVC 还不是OMX IL 规范的一部分。因此,您必须在注册media_codecs.xml 时为您的组件引入一个新的role,例如video_decoder.hevc。请检查您的OMX 核心是否可以支持这个新的role

    如果您尝试仅播放基本流,可以考虑修改stagefright command line utility 以读取基本流数据并馈送到解码器。

    另一种选择是修改当前的recordVideo utility 以读取帧数据并创建decoder 而不是encoder。有了这些,我想你应该能够从命令行播放你的解码器。

    编辑:如果您希望构建一个新的OMX 组件,我建议您参考Bellagio Component Writers Guide,它应该提供有关如何构建 OMX 组件的良好信息。这为构建新组件提供了非常全面的指南。请确保您能够识别 Bellagio 实现和您的核心实现的依赖关系。

    此外,您可以查看其他公共域 OMX 实现,如下所示: http://androidxref.com/4.4.2_r1/xref/hardware/ti/omap4xxx/domx/ http://androidxref.com/4.4.2_r1/xref/hardware/qcom/media/mm-video-v4l2/vidc/

    如果您之前没有构建 OMX 组件,我觉得 Bellagio 可以作为一个很好的入门参考。 Bellagio 的资源可在Sourceforge 获得。

    【讨论】:

    • 感谢您的回答。我有两个疑问,一个是上面链接中给出的步骤是注册 omx 组件还是开发 omx 组件?其次,我认为我可以使用 stagefright 命令行实用程序,但是以这种方式集成,它会播放画廊中的视频吗?
    • @Zax.. 所描述的步骤用于注册和集成OMX 组件。我想你已经有一个OMX 组件,因此,我没有回答同样的问题。如果您想直接从图库中播放视频,则需要进行大量更改,因为您的输入只是一个基本流。您必须专门为此文件创建一个MediaExtractor,该文件必须被集成和注册。如果您想让文件可以从图库中播放,还有很多工作要做。
    • 感谢您的解释。我认为我可以在 ffmpeg 中使用 hevc_parser 的媒体提取器。不,我没有 OMX 组件。实际上,这只是关于“为视频解码器创建 OMX 组件”的问题,尤其是尚不支持的问题。请提供一些关于此的指示。
    • @Zax.. 你熟悉OMX IL 规范吗?这个问题范围很广,我想微调我的答案。如果需要,我们甚至可以在SO 上聊天讨论。
    • 感谢您提供的材料。如果我在阅读组件开发人员指南后有任何疑问,我会回复你
    猜你喜欢
    • 2012-01-24
    • 2017-06-28
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 2012-11-14
    • 1970-01-01
    相关资源
    最近更新 更多