4

我有一个要求,我需要从 MPEG2 TS(HLS STREAM) 中提取 ID3 标签。MPEG2 在播放文件方面对 android 的支持有限。但我关心的是提取 ID3 标签(不需要播放文件)。因此我不关心编解码器(编码和解码)。

我探索了以下选项:

libstagefright 和 OpenMax:由 Google 从 Android 2.0 实现的播放引擎。它有一个MediaExtractor负责从底层文件系统或 http 流中检索轨道数据和相应的元数据。但是根据这篇向Android添加视频编解码器的帖子,我需要构建自己的固件或自己的​​媒体播放器。我希望我不必走那条路。更多关于 stagefright 和 openMax 的信息可以在这里找到:

Stagefright 播放器概述

Android 的 Stagefright 媒体播放器架构

自定义包装编解码器集成到 Android

如何将解码器集成到多媒体框架

编译和使用 FFMPEG:一个完整​​的跨平台解决方案,用于录制、转换和流式传输音频和视频。我们可以使用这里提到的这个库解复用 ts 文件:

FFmpeg - 从传输流文件 (.ts) 中提取视频和音频

但我不确定是否能够从 HLS 流中提取 ID3 标签。libavformat可能能够做到这一点,但我仍然需要想出一种机制来将读取的元数据发送给我的应用程序。

为 android 编译 vlc:我已经 为 android 编译了 vlc,并在 demux 组件的传输模块中进行了一些修改以提取标签,但它无法播放我提供给它的所有流。

在浏览了这些选项之后,我仍然在解决如何实现这一点。我不想创建媒体播放器,因为我不会播放文件,也不想构建自己的固件。使用 ffmpeg 似乎是最可行的选择,但我想在不使用任何第三方或开源库的情况下尝试这个。我的问题是:

是否有可能从头开始创建一个可以在 android 上运行的解复用器?

如果可能的话,该怎么做呢?

我错过了什么选项?

我是新来的。任何帮助将不胜感激..谢谢

4

1 回答 1

1

android中,支持提取ID3标签。请参阅ID3模块以获取更多详细信息。

可以在这里找到集成ID3到提取器中。MP3

通过快速检查,我发现ID3Froyo开始就支持它。

于 2013-11-11T14:54:06.330 回答