最近、私は iPhone ストリーミング (MMS プロトコルに基づく) のソフトウェア アーキテクチャを研究していました。
ご存知のように、MMS オーディオ ストリームを再生するには、libMMS を呼び出してリモート メディア サーバーから wma ストリーム データを読み取り、次に FFmpeg を呼び出してストリーム データを wma 形式から PCM データ バッファーにデコードし、最後に PCM データをエンキューする必要があります。 iPhone の audioqueue にバッファリングして、実際のサウンドを生成します。
上記の紹介は、iPhone ストリーミングの作業プロセスを説明しただけです。この単純な機能を実装するだけであれば、それは難しくありません。上記の紹介に従って、libMMS、FFMpeg、および audioqueue を段階的に呼び出すだけで、ストリーミング機能を実現できます。実際、私は先週コードを実装しました。
しかし、私が必要としているのは単純なストリーミング機能だけではありません! ローカルファイルシステムにアクセスするのと同じように、FFmpeg が libMMS にアクセスできるようにするソフトウェアアーキテクチャが必要です!
mms_read/mms_seek のような libMMS インターフェイスを av_read_frame/av_seek_frame のような FFmpeg ファイルシステム インターフェイスにフックする方法を知っている人はいますか?