在android中为MPEG 2 TS创建一个解复用器

时间:2013-11-11 10:30:07

标签: android ffmpeg http-live-streaming mpeg2-ts stagefright

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

我已经探索了以下选项:

libstagefright和OpenMax :Google从Android 2.0实施的播放引擎。 它有一个MediaExtractor负责从底层文件系统或http流中检索跟踪数据和相应的元数据。但根据这篇文章Adding video codec to Android,我需要建立自己的固件或我自己的媒体播放器。我希望我不必走这条路。有关stagefright和openMax的更多信息,请访问:

An overview of Stagefright player

Android’s Stagefright Media Player Architecture

Custom Wrapper Codec Integration into Android

How to integrate a decoder to multimedia framework

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

FFmpeg - Extracting video and audio from transport stream file (.ts)

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

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

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

甚至可以从头开始创建一个可以在android上运行的解复用器吗?

如果可能的话,怎么去呢?

我错过了哪些选项?

我是新手。任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:1)

android中,支持提取ID3标记。有关详细信息,请参阅ID3 module

可以找到ID3MP3提取器的集成here

通过快速检查,我发现从ID3开始支持Froyo