翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例: を使用して Kinesis Video Streams にデータを送信する PutMedia API
この例では、 PutMedia の使用方法を示しますAPI。既にコンテナ形式 () のデータを送信する方法を示しますMKV。送信前にデータをコンテナ形式にアセンブルする必要がある場合 (カメラのビデオデータをフレームにアセンブルする場合など) は、「」を参照してくださいKinesis Video Streams へのアップロード。
注記
PutMedia
オペレーションは C++ および Java でのみ使用できますSDKs。これは、接続、データフロー、確認応答の全二重管理によるものです。他の言語ではサポートされていません。
この例には以下のステップが含まれます。
コードをダウンロードして設定する
手順に従って、Java サンプルコードをダウンロードし、プロジェクトを Java にインポートしてIDE、ライブラリの場所を設定し、認証情報を使用する AWS ようにコードを設定します。
-
ディレクトリを作成し、リポジトリからサンプルソースコードをクローンします GitHub。
PutMedia
の例は、Java の一部です。git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
-
IDE 使用している Java (Eclipse
や IntelliJ IDEA など) を開き、ダウンロードした Apache Maven プロジェクトをインポートします。 -
Eclipse では: [ファイル]、[インポート]、[Maven]、[Existing Maven Projects (既存の Maven プロジェクト)] を選択し、ダウンロードしたパッケージのルートに移動します。
pom.xml
ファイルを選択します。 -
IntelliJ Idea では: [インポート] を選択します。ダウンロードしたパッケージのルートに含まれる
pom.xml
ファイルに移動します。
詳細については、関連IDEドキュメントを参照してください。
-
-
プロジェクトを更新して、インポートしたライブラリを が見つけIDEられるようにします。
-
IntelliJ の場合はIDEA、次の操作を行います。
-
プロジェクトの lib ディレクトリのコンテキスト (右クリック) メニューを開き、[Add as library] を選択します。
-
ファイルを選択し、プロジェクト構造を選択します。
-
[Project Settings] で [Modules] を選択します。
-
[Sources] タブで Language Level を
7
以上に設定します。
-
-
Eclipse の場合は以下を実行します。
-
プロジェクトのコンテキスト (右クリック) メニューを開き、[プロパティ]、[Java Build Path]、[ソース] の順に選択します。次に、以下の操作を実行します。
-
[Source] タブで、[Native library location] をダブルクリックします。
-
[Native Library Folder Configuration] ウィザードで [Workspace] を選択します。
-
[Native Library Folder] の選択肢からプロジェクトの lib ディレクトリを選択します。
-
-
プロジェクトのコンテキスト (右クリック) メニューを開き、[プロパティ] を選択します。次に、以下の操作を実行します。
-
[Libraries] タブで、[Add Jars] を選択します。
-
JAR 選択ウィザードで、プロジェクトの
lib
ディレクトリ内のすべての .jars を選択します。
-
-
-
コードを記述して調べる
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();
コードを実行して検証する
このPutMedia
API例を実行するには、次の操作を行います。
-
Kinesis Video Streams コンソールで、または AWS CLIを使用して
my-stream
という名前のストリームを作成します。 -
作業ディレクトリを Java プロデューサーSDKディレクトリに変更します。
cd /<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-java/
-
Java SDKとデモアプリケーションをコンパイルします。
mvn package
-
/tmp
ディレクトリに一時ファイル名を作成します。jar_files=$(mktemp)
-
ローカルリポジトリからファイルへの依存関係のクラスパス文字列を作成します。
mvn -Dmdep.outputFile=$jar_files dependency:build-classpath
-
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)
-
次のようにコマンドラインからデモを実行し、認証情報を指定します 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
-
Kinesis Video Streams コンソール
を開き、ストリームの管理ページでストリームを選択します。動画が [Video Preview] ペインで再生されます。