予備的な注意: 私は VLC for iOS の開発者であるため、次の内容は偏っている可能性があります。
MobileVLCKit for iOS には、2 つの異なるオーディオ出力モジュールが含まれています。それらの 1 つは AudioQueue に基づく高レベルのモジュールで、かなり複雑ではありますが少し遅いです。もう 1 つは、CoreAudio の低レベル フレームワークである AudioUnit に基づいており、かなり複雑ですが、はるかに高速です。現在の経験に応じて、どちらのモジュールも開始するのに適しています。
すべてのコーデックをサポートする 1 つのライブラリについて: 基本的に、同じライブラリの 2 つのフォークがあります: libav と FFmpeg です。VLC はフレーバーをサポートし、複雑さと絶え間なく変化する API を抽象化します (これらのライブラリの複数のリリースにわたってアプリを維持し続ける場合、これは非常に困難です)。さらに、シェーダーを使用してクロマ通信を行う、非常に優れたパフォーマンスの OpenGL ES 2 ビデオ出力モジュールが含まれています。必要なのは、UIView を埋め込むことだけです。MobileVLCKit が残りを処理します。
MobileVLCKit といえば、これは libvlc の上にある薄い ObjC レイヤーであり、最も一般的に使用される機能を抽象化することにより、サードパーティ アプリケーションでのこのライブラリの使用を簡素化します。
HalR が暗に述べているように、libvlc は iOS でハードウェア アクセラレーションによるデコードをまだ使用していません。libav の開発者と一緒に一般的なアプローチに取り組んでいますが、まだ完全には達成されていません。したがって、CPU ですべてのデコードを行う必要があります。これにより、熱が発生しますが、デフォルトの高速化された API を使用して、H264/MP4 の代わりに事実上何でも再生できます。