MPEG2 TS (HLS STREAM) から ID3 タグを抽出する必要があるという要件があります。ファイルの再生に関して、Android では MPEG2 のサポートが制限されています。しかし、私の懸念は ID3 タグを抽出することです (ファイルを再生する必要はありません)。したがって、コーデック(エンコードとデコード)には関心がありません。
次のオプションを検討しました。
libstagefright と OpenMax : Google が Android 2.0 から実装した再生エンジン。MediaExtractorは、基になるファイル システムまたは http ストリームからトラック データと対応するメタ データを取得します。しかし、この投稿によるとAndroidにビデオコーデックを追加する 私は独自のファームウェアまたは独自のメディアプレーヤーを構築する必要があります.私はその道をたどる必要がないことを望んでいます. stagefright と openMax の詳細については、次を参照してください。
Android の Stagefright メディア プレーヤー アーキテクチャ
FFMPEG のコンパイルと使用: オーディオとビデオを記録、変換、およびストリーミングするための完全なクロスプラットフォーム ソリューション。ここで説明されているように、このライブラリを使用して ts ファイルを逆多重化できます。
FFmpeg - トランスポート ストリーム ファイル (.ts) からのビデオとオーディオの抽出。
しかし、HLS ストリームから ID3 タグを抽出できるかどうかはわかりません。libavformatはこれを実行できるかもしれませんが、読み取りメタデータをアプリケーションに通知するメカニズムを考え出す必要があります。
vlc for android のコンパイル: android 用の vlc をコンパイルし、demux コンポーネントのトランスポート モジュール内でタグを抽出するためにいくつかの変更を加えましたが、提供しているすべてのストリームを再生することはできません。
これらのオプションを調べた後、これを実現する方法をまだ修正していません。ファイルを再生したり、独自のファームウェアを構築したりしたくないので、メディアプレーヤーを作成したくありません。ffmpeg を使用するのが最も実行可能なオプションのようですが、サードパーティまたはオープン ソース ライブラリを使用せずにこれを試してみたいと思います。私の質問は次のとおりです。
Androidで動作するデマルチプレクサをゼロから作成することさえ可能ですか?
可能であれば、どうすればいいですか?
見逃したオプションはありますか?
私はこれが初めてです。どんな助けでも大歓迎です..ありがとう