例: API を使用した PutMedia Kinesis Video Streams へのデータの送信 - Amazon Kinesis Video Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

例: API を使用した PutMedia Kinesis Video Streams へのデータの送信

この例では、 PutMedia API の使用方法を示します。既にコンテナ形式 (MKV) になっているデータを送信する方法を示します。送信する前にデータをコンテナ形式にアセンブルする必要がある場合 (カメラビデオデータをフレームにアセンブルする場合など) は、「」を参照してくださいKinesis Video Streams プロデューサーライブラリ

注記

PutMedia オペレーションは C++ および Java SDKs でのみ使用できます。これは、接続、データフロー、および確認の完全二重管理によるものです。他の言語ではサポートされていません。

ステップ 1: コードをダウンロードして設定する

手順に従って、Java サンプルコードをダウンロードし、プロジェクトを Java IDE にインポートし、ライブラリの場所を設定し、認証情報を使用する AWS ようにコードを設定します。

  1. ディレクトリを作成し、リポジトリからサンプルソースコードの GitHubクローンを作成します。PutMedia の例は、Java プロデューサーライブラリ の一部です。

    git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
  2. 使用している Java IDE (Eclipse IntelliJ IDEA など) を開き、ダウンロードした Apache Maven プロジェクトをインポートします。

    • Eclipse では: [ファイル]、[インポート]、[Maven]、[Existing Maven Projects (既存の Maven プロジェクト)] を選択し、ダウンロードしたパッケージのルートに移動します。pom.xml ファイルを選択します。

    • IntelliJ Idea では: [インポート] を選択します。ダウンロードしたパッケージのルートに含まれる pom.xml ファイルに移動します。

    詳細については、関連する IDE ドキュメントを参照してください。

  3. インポートしたライブラリのロケーションが IDE で見つかるようにするため、プロジェクトを更新します。

    • IntelliJ IDEA の場合は以下を実行します。

      1. プロジェクトの lib ディレクトリのコンテキスト (右クリック) メニューを開き、[Add as library] を選択します。

      2. ファイル を選択し、プロジェクト構造 を選択します。

      3. [Project Settings] で [Modules] を選択します。

      4. [Sources] タブで Language Level7 以上に設定します。

    • Eclipse の場合は以下を実行します。

      1. プロジェクトのコンテキスト (右クリック) メニューを開き、[プロパティ]、[Java Build Path]、[ソース] の順に選択します。次に、以下の操作を実行します。

        1. [Source] タブで、[Native library location] をダブルクリックします。

        2. [Native Library Folder Configuration] ウィザードで [Workspace] を選択します。

        3. [Native Library Folder] の選択肢からプロジェクトの lib ディレクトリを選択します。

      2. プロジェクトのコンテキスト (右クリック) メニューを開き、[プロパティ] を選択します。次に、以下の操作を実行します。

        1. [Libraries] タブで、[Add Jars] を選択します。

        2. [JAR selection (JAR 選択)] ウィザードで、プロジェクトの lib ディレクトリ内のすべての .jar を選択します。

ステップ 2: コードを記述して調べる

PutMedia API の例 () は、次のコーディングパターンを示しています。PutMediaDemo

このセクションのコード例は、PutMediaDemo クラスのものです。

を作成する PutMediaClient

PutMediaClient オブジェクトを作成するには、次のパラメータが必要です。

  • PutMedia エンドポイントの URI。

  • ストリーミングする MKV ファイルを指す InputStream

  • ストリーム名。この例では、Java プロデューサーライブラリを使用する (my-stream) で作成されたものと同じストリームを使用します。別のストリームを使用するには、以下のパラメーターを変更します。

    private static final String STREAM_NAME="my-stream";
    注記

    PutMedia API の例では、ストリームは作成されません。、Kinesis Video Streams コンソールJava プロデューサーライブラリを使用する、または のテストアプリケーションを使用してストリームを作成する必要があります AWS CLI。

  • 現在のタイムスタンプ。

  • タイムコードのタイプ。この例では RELATIVE が使用されます。これは、タイムスタンプがコンテナの開始を基準にしていることを示します。

  • 受信したパケットが承認済の送信者から送信されたことを確認する AWSKinesisVideoV4Signer オブジェクト。

  • 最大アップストリーム帯域幅 (Kbps)

  • パケットの送達確認を受け取る AckConsumer オブジェクト。

PutMediaClient オブジェクトは以下のコードを作成します。

/* actually URI to send PutMedia request */ final URI uri = URI.create(KINESIS_VIDEO_DATA_ENDPOINT + PUT_MEDIA_API); /* input stream for sample MKV file */ final InputStream inputStream = new FileInputStream(MKV_FILE_PATH); /* use a latch for main thread to wait for response to complete */ final CountDownLatch latch = new CountDownLatch(1); /* a consumer for PutMedia ACK events */ final AckConsumer ackConsumer = new AckConsumer(latch); /* client configuration used for AWS SigV4 signer */ final ClientConfiguration configuration = getClientConfiguration(uri); /* PutMedia client */ final PutMediaClient client = PutMediaClient.builder() .putMediaDestinationUri(uri) .mkvStream(inputStream) .streamName(STREAM_NAME) .timestamp(System.currentTimeMillis()) .fragmentTimeCodeType("RELATIVE") .signWith(getKinesisVideoSigner(configuration)) .upstreamKbps(MAX_BANDWIDTH_KBPS) .receiveAcks(ackConsumer) .build();

メディアをストリーミングしてスレッドを一時停止する

クライアントが作成されると、サンプルが putMediaInBackground との同時ストリーミングを開始します。AckConsumer が返されるまでメインスレッドは latch.await で一時停止し、この時点でクライアントは切断されます。

/* start streaming video in a background thread */ client.putMediaInBackground(); /* wait for request/response to complete */ latch.await(); /* close the client */ client.close();

ステップ 3: コードを実行して検証する

PutMedia API の例を実行するには、以下を実行します。

  1. Kinesis Video Streams コンソールで、または AWS CLIを使用して my-stream という名前のストリームを作成します。

  2. 作業ディレクトリを Java プロデューサー SDK ディレクトリに変更します。

    cd /<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-java/
  3. Java SDK およびデモアプリケーションをコンパイルします。

    mvn package
  4. /tmp ディレクトリに一時ファイル名を作成します。

    jar_files=$(mktemp)
  5. ローカルリポジトリからファイルへの依存関係のクラスパス文字列を作成します。

    mvn -Dmdep.outputFile=$jar_files dependency:build-classpath
  6. LD_LIBRARY_PATH 環境変数の値を次のように設定します。

    export LD_LIBRARY_PATH=/<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH $ classpath_values=$(cat $jar_files)
  7. 認証情報を指定して、コマンドラインからデモを次のように実行します AWS 。

    java -classpath target/kinesisvideo-java-demo-1.0-SNAPSHOT.jar:$classpath_values -Daws.accessKeyId=${ACCESS_KEY} -Daws.secretKey=${SECRET_KEY} -Djava.library.path=/opt/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build com.amazonaws.kinesisvideo.demoapp.DemoAppMain
  8. Kinesis Video Streams コンソール を開き、ストリームの管理ページでストリームを選択します。動画が [Video Preview] ペインで再生されます。