Kotlin

ミラービデオキャプチャーの作成

を作成する必要がある。 MirrorVideoCapturerその仕事とは

  • カメラを開き、設定する、
  • カメラからフレームを取得する、
  • フレームを水平にミラーリングする、
  • これらのフレームをパブリッシャービデオとしてVonage SDKにプッシュします。
  1. MirrorVideoCapturerで別のkotlinファイルを作成する。

ファイルがかなり大きいので MirrorVideoCapturer.kt をプロジェクトに追加します。このチュートリアルでは、次のステップでカスタムビデオキャプチャーの重要な側面に焦点を当てます。

  1. キャプチャーの設定の公開方法

SDKは、キャプチャーがどのようなビデオストリームを提供しようとしているかを知る必要がある。これは getCaptureSettings() をカスタムキャプチャに追加した:

    @Synchronized
    override fun getCaptureSettings(): CaptureSettings {
        val settings = CaptureSettings()
        settings.fps = desiredFps
        settings.width = cameraFrame?.width ?: -1
        settings.height = cameraFrame?.height ?: -1
        settings.format = NV21
        settings.expectedDelay = 0
        settings.mirrorInLocalRender = frameMirrorX

        return settings
    }

ここでの設定は、以下のようにキャプチャを構成している:

fps1秒間に何フレーム送れるか。 そして 高さフレームの解像度(実際のカメラ出力または設定したキャプチャサイズから求めることができる)。 フォーマットSDKに提供するピクセル・フォーマット(例えばNV21)。 予想遅延時間フレームをキャプチャしてから配信するまでにかかる時間の見積もり(単位:ミリ秒)。

これらの設定は、MirrorVideoCapturerを介してVonage SDKに通知されます。これらが設定されると、SDKは以下を知ることができます: バッファの割り当て方法 フレームのエンコード方法 そしてネットワーク/エンコード動作をキャプチャ・プロファイルに適応させる方法です。