4

私は現在、Swift の iOS 用 AppRTC アプリで着信 WebRTC ビデオ ストリームにいくつかの変更を加えようとしています (これは、このObjective-C バージョンに基づいています)。そのためには、クラス RTCI420Frame (libWebRTC の Objective-C 実装の基本クラス) のフレーム オブジェクトに格納されているデータにアクセスする必要があります特に、 [UInt8]とフレームのサイズのバイト配列が必要です。このデータは、さらなる処理といくつかのフィルターの追加に使用されます。

問題は、 RTCVideoTrack / RTCEAGLVideoView に対するすべての操作が、事前にコンパイルされたlibWebRTC.aのフードの下で行われることです。これは、上記のリンクにある公式の WebRTC リポジトリからコンパイルされ、カスタム ビルドを取得するのはかなり複雑です。サンプル iOS プロジェクトで利用可能なビルドを使用することを好みます。私の理解では、利用可能なすべての機能が含まれているはずです。

私は RTCVideoChatViewController クラス、特にremoteView / remoteVideoTrackを調べていましたが、フレーム自体へのアクセスに成功せず、公式レポで libWebRTC ソースの調査に多くの時間を費やしましたが、それでもアクセスの問題に頭を悩ませることはできません。独自の操作のためにデータをフレーム化します。どんな助けでもうれしいです!

4

1 に答える 1

4

質問を投稿した直後に、ひそかなデータを見つけることができました。

次のプロパティを RTCEAGLVideoView.h ファイルに追加する必要があります。

@property(atomic, strong) RTCI420Frame* i420Frame;

元の実装ファイルにはi420Frameプロパティがありますが、クラスの iOS プロジェクトのヘッダー ファイルには公開されていません。プロパティを追加すると、ビューの現在のフレームを取得できます。

remoteView の内容を調べる必要なく、ストリーム データを直接取得するよりエレガントな方法をまだ探しています。見つかったら回答を更新します。

于 2016-08-25T00:04:16.787 に答える