3

現在の iOS SDK ではビデオから圧縮フレームを取得する方法がないため、Skype のようにライブ ストリーミングを実装するにはどうすればよいでしょうか? 私が今見る唯一の方法は次のとおりです。

  1. AVCaptureVideoDataOutput から非圧縮フレームを取得する
  2. サードパーティのライブラリを使用してこれらのフレームを圧縮します
  3. フレームをサーバーに送信する

このタスクを達成する他の方法はありますか? 圧縮に使用できるライブラリは何ですか?また、それらはアプリストアと互換性がありますか? 前もって感謝します

4

1 に答える 1

3

私もこれに苦労しています。ffmpeg ライブラリは圧縮のために機能するように見えますが、ライセンスはソース コードをリリースする必要があることを意味します。

オブジェクトを AVCaptureVideoDataOutput からのデリゲートとして設定し、このコールバックをディスパッチ キューに実装できます。

  • (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)接続;

次に、uiimage または jpeg に処理できる圧縮されていないビデオを取得します (Apple にはこのためのコード サンプルがあります) が、ハードウェアで圧縮された H264 フレームを取得する方法はありません。これは、ffmpeg のようなライブラリを実装して、ビデオを H264 などに圧縮できる場所です。

現在、AVAssetWriterファイル出力を解釈してストリームにリダイレクトできるかどうかを確認しようとしています(ハードウェア圧縮されたビデオを書き込むことができます)が、Appleは何らかの理由でこれを難しくしているようです.

うまくいくものを見つけたら教えてください。

于 2011-11-28T21:52:41.030 に答える