Windows で C++ プロデューサー SDK を使用する - Amazon Kinesis Video Streams

Windows で C++ プロデューサー SDK を使用する

このチュートリアルでは、Microsoft Windows で プロデューサーライブラリ をビルドおよび実行する方法について説明します。その後、ウェブカメラ、USB カメラ、または RTSP (Real Time Streaming Protocol) カメラなどのソースから Kinesis ビデオストリーム へビデオをストリーミングすることができます。メディアソースから Kinesis ビデオストリーム へストリーミングを開始する際、Kinesis ビデオストリーム コンソールでビデオを表示できます。また、Kinesis ビデオストリーム で使用可能なストリーミングビデオで動作するアプリケーションを構築することができます。

プロデューサー SDK のビルドと実行: Minimalist GNU for Windows (MinGW)

Minimalist GNU for Windows (MinGW) はネイティブ Windows アプリケーションを開発するためのオープンソースのプログラミングツールチェーンです。MinGW を使用して Windows 用 Kinesis ビデオストリーム プロデューサー SDK をビルドすることができます。次に、ストリーミングビデオを開始するサンプルアプリケーションのいずれかを実行します。

このセクションでは、MinGW コンパイラを使用して Amazon Kinesis ビデオストリーム プロデューサー SDK をビルドするために必要な前提条件とステップについて説明します。

前提条件

作業を開始する前に、次の項目が揃っていることを確認してください。

  • 指定の Windows プラットフォームにあわせた MSYS2 バージョンをダウンロードしてインストールします。MSYS2 は MinGW ツールチェーンを使用して、ネイティブ Windows アプリケーションをビルドするために必要なすべてのツールを提供します。

MinGW を使用したプロデューサー SDK のビルド

Windows で Kinesis ビデオストリーム プロデューサー SDK をコンパイルするための MinGW ランタイム環境を使用するには、以下のステップを実行します。

  1. C:\msys32 または C:\msys64 ディレクトリから MinGW シェル (mingw64.exe) を起動します。MSYS2 アプリケーションではなく、プラットフォームに基づき mingw64.exe または mingw32.exe が開かれていることを確認します。MSYS2 アプリケーションは、MSYS2 のインストール終了後に、デフォルトで開かれるアプリケーションです。

  2. MinGW シェルで次のコマンドを実行して Git をインストールします。

    pacman -S git
  3. GitHub から Kinesis ビデオストリーム プロデューサー SDK をダウンロードします。

    git clone --recursive https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
  4. 次のコマンドを実行して、ダウンロードした SDKbuild ディレクトリを作成し、そこから cmake を実行します。

    mkdir -p amazon-kinesis-video-streams-producer-c/build; cd amazon-kinesis-video-streams-producer-c/build; cmake ..

    次のオプションを cmake .. に渡すことができます。

    • -DBUILD_DEPENDENCIES - ソースから依存ライブラリを構築するかどうか

    • -DBUILD_TEST=TRUE - ユニット/統合テストを構築します。お使いのデバイスのサポートを確認するのに役立ちます。

      ./tst/webrtc_client_test

    • -DCODE_COVERAGE - カバレッジレポートを有効にします

    • -DCOMPILER_WARNINGS - すべてのコンパイラの警告を有効にします

    • -DADDRESS_SANITIZER - AddressSanitizer を使用して構築します

    • -DMEMORY_SANITIZER - MemorySanitizer を使用して構築します

    • -DTHREAD_SANITIZER - ThreadSanitizer を使用して構築します

    • -DUNDEFINED_BEHAVIOR_SANITIZER - UndefinedBehaviorSanitizer を使用して構築します

    • -DALIGNED_MEMORY_MODEL - アライメントされたメモリモデルのみのデバイス用に構築します。デフォルトは OFF です。

  5. 上記のステップで作成した build ディレクトリに移動し、nmake を実行して SDK とその提供サンプルを構築します。

    nmake

プロデューサー SDK を実行して Kinesis ビデオストリーム にビデオを送信する

MinGW を使用して Kinesis ビデオストリーム プロデューサー SDK をコンパイルしたら、次のステップに従って実行します。

ステップ 1: 環境変数を設定する

  • MinGW シェルで次の環境変数を設定します。

    export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY export GST_PLUGIN_PATH=$PWD
    注記

    YOUR_ACCESS_KEY および YOUR_SECRET_ACCESS_KEY は AWS アカウントのアクセスキーで、AWS へのプログラムによるリクエストの署名に使用されます。詳細については、「IAM ユーザーのアクセスキーの管理」を参照してください。

ステップ 2: メディアソースのサンプルアプリケーションを実行する

  1. PC ウェブカメラからビデオをストリーミングするには、次のコマンドを使用して samples フォルダからサンプルアプリケーションを実行します。

    kinesis_video_gstreamer_sample_app.exe my-stream-name
  2. 特定のビットレートや解像度など、カスタム設定を使用して PC ウェブカメラからビデオをストリーミングするには、次の gst-launch-1.0 コマンドを使用して Kinesis ビデオストリーム プロデューサー SDK GStreamer プラグインを実行します。

    gst-launch-1.0 ksvideosrc do-timestamp=TRUE ! video/x-raw,width=640,height=480,framerate=30/1 ! videoconvert ! x264enc bframes=0 key-int-max=45 bitrate=512 ! video/x-h264,profile=baseline,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1 ! kvssink stream-name="your-stream-name" access-key=your_accesskey_id secret-key=your_secret_access_key

    gst-launch-1.0 コマンドのパラメータの詳細については、「GStreamer エレメントパラメータのリファレンス」 を参照してください。

    注記

    アクセスキーおよびシークレットキーの代わりに IoT 認証情報を認証に使用している場合は、gst-launch-1.0 コマンドに IoT 認証情報をパラメータとして渡すことができます。

    次の例では、IoT パラメータを使用して RTSP カメラからビデオをストリーミングする方法が示されています。

    gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="your-iot-stream" iot-certificate="iot-certificate,endpoint=endpoint,cert-path=/path/to/certificate,key-path=/path/to/private/key,ca-path=/path/to/ca-cert,role-aliases=role-aliases"
  3. RTSP (ネットワーク) カメラからビデオをストリーミングするには、次のコマンドを使用して samples フォルダからサンプルアプリケーションを実行します。

    kinesis_video_gstreamer_sample_rtsp_app.exe RTSP-camera-URL my-test-rtsp-stream

プロデューサー SDK のビルドと実行: Microsoft Visual C++ Compiler (MSVC)

Microsoft Visual C++ Compiler (MSVC) は Microsoft Visual Studio 向けのコンパイラです。次のセクションには、MSVC を使用して Kinesis ビデオストリーム プロデューサー SDK をビルドするために必要な前提条件とステップが含まれています。

前提条件

作業を開始する前に、次の項目が揃っていることを確認してください。

  • Microsoft Windows バージョン 7 以降。

  • Microsoft .NET Framework バージョン 4.6.1 以降。

  • Windows PowerShell バージョン 5.1 (Windows 10 に含まれる)。Windows 7 の場合は、Windows PowerShell をアップデートします

  • Git。インストールの [Adjusting your PATH environment] ステップで、[Use Git from the Windows Command Prompt] を選択します。

MSVC を使用したプロデューサー SDK のビルド

Windows で MSVC を使用してプロデューサー SDK をコンパイルするには、以下のステップを実行します。

注記

MinGW を使用した Windows 用プロデューサー SDK がすでにインストールされている場合は、MSVC を使用してプロデューサー SDK をビルドする前に、次の手順に従ってクリーンアップステップを実行します。

  • kinesis-video-native-build/downloads ディレクトリ内のファイルを削除します。

  • CMakeFiles ディレクトリ、および kinesis-video-native-build ディレクトリの CMakeCachedList.txt ファイルを削除します。

  1. 管理者として Windows コマンドプロンプトを開きます。

  2. プロデューサー SDK をダウンロードします。

    git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
  3. ダウンロードが完了したら、ダウンロードしたプロジェクト内で kinesis-video-native-build ディレクトリに移動します。

  4. Visual Studio ビルドツールインストールスクリプトを実行します。

    vs-buildtools-install.bat
  5. Windows 10 または Windows 7 を使用している場合は、インストールスクリプトが完了したらコンピュータを再起動します。再度、管理者として Windows コマンドプロンプトを開きます。

  6. kinesis-video-native-build ディレクトリで、システムのビット幅 (32 または 64) を指定して windows-install.bat を実行します。

    windows-install.bat 32 or windows-install.bat 64
    注記

    このスクリプトは以下のコンポーネントをビルドします。

プロデューサー SDK を実行して Kinesis ビデオストリーム にビデオを送信する

MSVC を使用して Kinesis ビデオストリーム プロデューサー SDK をコンパイルしたら、次のステップに従って GStreamer プラグインとして実行します。

SDK を開始するにはいくつかのオプションがあります。kinesis-video-native-build/start ディレクトリにある利用可能なサンプル実行可能ファイルを使用して、GStreamer​ を実行することをお勧めします。

  1. 以下のディレクトリをパスに追加します (プロデューサー SDK の場所を、ドライブ名を含めて指定します)。

    set PATH=%PATH%;install directory\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads\gstreamer\1.0\x86_64\bin;
  2. 以下の環境変数を設定します (インストールディレクトリを、ドライブ名を含めたプロデューサー SDK の場所に変更します)。

    set GST_PLUGIN_PATH=install directory\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\Release set GST_PLUGIN_SYSTEM_PATH=install directory\amazon-kinesis-video-streams-producer-sdk-cpp\kinesis-video-native-build\downloads\gstreamer\1.0\x86_64\lib\gstreamer-1.0
  3. gst-launch-1.0 コマンドを使用して、PC のウェブカメラから Kinesis ビデオストリーム サービスにビデオをストリームします。

    gst-launch-1.0 ksvideosrc do-timestamp=TRUE ! video/x-raw,width=640,height=480,framerate=30/1 ! videoconvert ! x264enc bframes=0 key-int-max=45 bitrate=512 ! video/x-h264,profile=baseline,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1 ! kvssink stream-name="your-stream-name" access-key=your_accesskey_id secret-key=your_secret_access_key

    gst-launch-1.0 コマンドのパラメータの詳細については、「GStreamer エレメントパラメータのリファレンス」 を参照してください。

    注記

    アクセスキーおよびシークレットキーの代わりに IoT 認証情報を使用している場合は、gst-launch-1.0 コマンドにパラメータとして渡すことができます。次の例では、IoT パラメータを使用して RTSP カメラからビデオをストリーミングする方法が示されています。

    gst-launch-1.0 rtspsrc location=rtsp://YourCameraRtspUrl short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="your-iot-stream" iot-certificate="iot-certificate,endpoint=endpoint,cert-path=/path/to/certificate,key-path=/path/to/private/key,ca-path=/path/to/ca-cert,role-aliases=role-aliases"
  4. または、次の環境変数を設定して事前に構築されたサンプルアプリケーションのいずれかを利用できます。

    export AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
  5. PC ウェブカメラからビデオをストリーミングするには、次のコマンドを使用して kinesis-video-native-build\Release ディレクトリからサンプルアプリケーションを実行します。

    kinesis_video_gstreamer_sample_app.exe my-stream-name
  6. RTSP (ネットワーク) カメラからビデオをストリーミングするには、次のコマンドを使用して kinesis-video-native-build\Release ディレクトリからサンプルアプリケーションを実行します。

    kinesis_video_gstreamer_sample_rtsp_app.exe RTSP-camera-URL my-test-rtsp-stream