4

我想在我的屏幕上解码和显示 h264 帧。现在我想做的就是使用 omx 编解码器来解码我的帧,因为它在硬件中解码,这有助于实现高分辨率的 fps。到目前为止,我所知道的是有不同的方式来访问硬件解码器。我遇到了一些名字,比如 stagefright、omxcodec、openmax。所有这些都是不同的东西。我想逐帧解码。据我所知,android 库只接受媒体的文件路径或 url。但在这里我的要求是不同的。我需要逐帧解码。那么有人能告诉我从哪里开始挖掘吗?我知道在最新版本的android中,他们已经发布了api来解码。但我想支持所有版本的android。因此,任何建议或指导都会很棒。

谢谢。

4

1 回答 1

3

你是对的,确实在顶层 libstagefright 库有一个“流”接口。也就是说,您创建音频或视频源,配置编解码器,然后开始编码或解码过程。

但是,使用 OMXCodec 接口,您可以获得对各个帧的访问。不幸的是,我不知道任何官方 OMXCodec 文档的来源。

唯一来源 - 这些是 Android 存储库中的代码示例。

如果您想了解更多关于如何使用 OMXCodec,可以查看 AwesomePlayer.cpp 文件(http://gitorious.org/rowboat/frameworks-base/blobs/rowboat-ics/media/libstagefright/AwesomePlayer.cpp

从 StagefrightRecorder.cpp(在同一个存储库中)中可以清楚地看到使用库 libstagefright

这里还有关于 OMXCodec 架构的有用信息

PS 请记住,OMXCodec API 不稳定,可能因版本而异...

于 2013-05-24T17:25:30.323 回答