UseInYourTool - HexagramNM/NM_WindowCaptureVirtualCamera GitHub Wiki

別のツールの開発にNM_WindowCaptureVirutalCameraを使用する

NM_WindowCaptureVirutalCameraに含まれるコードは別ツールの開発にも使えるようにしています。 以下の手順で組み込んでください。(Visual Studioで開発されていることを想定しています。)

  1. 必要なコードのコピー

    setupRepository.batを実行し、あらかじめDirectShowのライブラリをビルドしておきます。 その後、以下のフォルダやファイルを開発しているツールのフォルダにコピーしてください。

    • External
    • NM_WCVCam_DS
    • NM_WCVCam_MF
    • NM_WindowCapture
    • global_config.h
  2. プロジェクトの組み込み

    開発ツールのソリューションファイルに以下のプロジェクトを追加してください。

    • NM_WCVCam_DS/NM_WCVCam_DS.vcxproj
    • NM_WCVCam_DS/NM_WCVCam_DS_32.vcxproj (32bit用のDirectShow仮想カメラを作るプロジェクトです。)
    • NM_WCVCam_MF/NM_WCVCam_MF.vcxproj
    • NM_WindowCapture/NM_WindowCapture.vcxproj

    ビルドで生成されたdllをコピーするためにビルド後のイベントを設定していますので、必要に応じて設定を変更してください。

  3. 仮想カメラのプロパティ変更

    このままだと、元々の仮想カメラとこれから作る仮想カメラが競合するので、global_config.h内のパラメタを変更して下さい。

    パラメタ名 内容
    VCAM_VIDEO_WIDTH 仮想カメラの解像度の幅
    VCAM_VIDEO_HEIGHT 仮想カメラの解像度の高さ
    SHARED_CAPTURE_WINDOW_TEXTURE_PATH 共有テクスチャのパス。末尾のNM_WCVCam_Captured_Windowを別の名前にする必要があります
    CLSID_NM_WCVCam_DS DirectShow仮想カメラのGUID。必ず変更してください
    NAME_NM_WCVCam_DS DirectShow仮想カメラの表示名
    CLSID_NM_WCVCam_MF MediaFoundation仮想カメラのGUID。必ず変更し、CLSID_TEXT_NM_WCVCam_MFも同じになるように修正してください
    NAME_NM_WCVCam_MF MediaFoundation仮想カメラの表示名
  4. (C#でツールを開発する場合)NM_WindowCapture.csの組み込み

    ツールのGUIをC#で作っている場合は、そのGUIのプロジェクトフォルダにNM_WindowCaptureVirutalCamera/NM_WindowCapture.csをコピーし、NM_WindowCapture.csにある関数を使って、ウィンドウキャプチャやトリミングの制御処理を実装してください。NM_WindowCapture.dllのAPIについてはこちらをご覧ください。

  5. ビルド

    Visual Studioでソリューションをビルドします。ビルド後、開発しているツールのexeファイルと同じフォルダに、NM_WindowCapture.dllが存在するようにしてください。

  6. 仮想カメラの登録

    ビルドにより生成された、以下の仮想カメラのdllファイルを、regsvr32でレジストリに登録してください。

    • NM_WCVCam_DS_64.dll
    • NM_WCVCam_DS_32.dll
    • NM_WCVCam_MF.dll

    レジストリへの登録は以下のコマンドからできます。登録を解除する場合は以下のコマンドに/uの引数を追加してください。

    regsvr32 <登録するdllファイルのパス>
    
  7. MediaFoundation仮想カメラの権限設定

    NM_WCVCam_MF.dllについては、以下のコマンドでセッション0からアクセスできるように、以下のコマンドで権限を設定します。

    icacls NM_WCVCam_MF.dll /grant BUILTIN\Users:RX
    

    元に戻す場合は以下のコマンドを呼んでください。

    icacls NM_WCVCam_MF.dll /remove:g BUILTIN\Users
    

戻る