我有一个要求,我需要从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上运行的解复用器吗?
如果可能的话,怎么去呢?
我错过了哪些选项?
我是新手。任何帮助将不胜感激。谢谢
答案 0 :(得分:1)