Amazon Kinesis Video WebRTC Storage 2018-05-10
- Client: Aws\KinesisVideoWebRTCStorage\KinesisVideoWebRTCStorageClient
- Service ID: kinesis-video-webrtc-storage
- Version: 2018-05-10
This page describes the parameters and results for the operations of the Amazon Kinesis Video WebRTC Storage (2018-05-10), and shows how to use the Aws\KinesisVideoWebRTCStorage\KinesisVideoWebRTCStorageClient object to call the described operations. This documentation is specific to the 2018-05-10 API version of the service.
Operation Summary
Each of the following operations can be created from a client using
$client->getCommand('CommandName')
, where "CommandName" is the
name of one of the following operations. Note: a command is a value that
encapsulates an operation and the parameters used to create an HTTP request.
You can also create and send a command immediately using the magic methods
available on a client object: $client->commandName(/* parameters */)
.
You can send the command asynchronously (returning a promise) by appending the
word "Async" to the operation name: $client->commandNameAsync(/* parameters */)
.
- JoinStorageSession ( array $params = [] )
- Before using this API, you must call the GetSignalingChannelEndpoint API to request the WEBRTC endpoint.
- JoinStorageSessionAsViewer ( array $params = [] )
- Join the ongoing one way-video and/or multi-way audio WebRTC session as a viewer for an input channel.
Operations
JoinStorageSession
$result = $client->joinStorageSession
([/* ... */]); $promise = $client->joinStorageSessionAsync
([/* ... */]);
Before using this API, you must call the GetSignalingChannelEndpoint
API to request the WEBRTC endpoint. You then specify the endpoint and region in your JoinStorageSession
API request.
Join the ongoing one way-video and/or multi-way audio WebRTC session as a video producing device for an input channel. If there’s no existing session for the channel, a new streaming session needs to be created, and the Amazon Resource Name (ARN) of the signaling channel must be provided.
Currently for the SINGLE_MASTER
type, a video producing device is able to ingest both audio and video media into a stream. Only video producing devices can join the session and record media.
Both audio and video tracks are currently required for WebRTC ingestion.
Current requirements:
-
Video track: H.264
-
Audio track: Opus
The resulting ingested video in the Kinesis video stream will have the following parameters: H.264 video and AAC audio.
Once a master participant has negotiated a connection through WebRTC, the ingested media session will be stored in the Kinesis video stream. Multiple viewers are then able to play back real-time media through our Playback APIs.
You can also use existing Kinesis Video Streams features like HLS
or DASH
playback, image generation via GetImages, and more with ingested WebRTC media.
S3 image delivery and notifications are not currently supported.
Assume that only one video producing device client can be associated with a session for the channel. If more than one client joins the session of a specific channel as a video producing device, the most recent client request takes precedence.
Additional information
-
Idempotent - This API is not idempotent.
-
Retry behavior - This is counted as a new API call.
-
Concurrent calls - Concurrent calls are allowed. An offer is sent once per each call.
Parameter Syntax
$result = $client->joinStorageSession([ 'channelArn' => '<string>', // REQUIRED ]);
Parameter Details
Members
- channelArn
-
- Required: Yes
- Type: string
The Amazon Resource Name (ARN) of the signaling channel.
Result Syntax
[]
Result Details
Errors
- ClientLimitExceededException:
Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.
- InvalidArgumentException:
The value for this input parameter is invalid.
- AccessDeniedException:
You do not have required permissions to perform this operation.
- ResourceNotFoundException:
The specified resource is not found.
JoinStorageSessionAsViewer
$result = $client->joinStorageSessionAsViewer
([/* ... */]); $promise = $client->joinStorageSessionAsViewerAsync
([/* ... */]);
Join the ongoing one way-video and/or multi-way audio WebRTC session as a viewer for an input channel. If there’s no existing session for the channel, create a new streaming session and provide the Amazon Resource Name (ARN) of the signaling channel (channelArn
) and client id (clientId
).
Currently for SINGLE_MASTER
type, a video producing device is able to ingest both audio and video media into a stream, while viewers can only ingest audio. Both a video producing device and viewers can join a session first and wait for other participants. While participants are having peer to peer conversations through WebRTC, the ingested media session will be stored into the Kinesis Video Stream. Multiple viewers are able to playback real-time media.
Customers can also use existing Kinesis Video Streams features like HLS
or DASH
playback, Image generation, and more with ingested WebRTC media. If there’s an existing session with the same clientId
that's found in the join session request, the new request takes precedence.
Parameter Syntax
$result = $client->joinStorageSessionAsViewer([ 'channelArn' => '<string>', // REQUIRED 'clientId' => '<string>', // REQUIRED ]);
Parameter Details
Members
- channelArn
-
- Required: Yes
- Type: string
The Amazon Resource Name (ARN) of the signaling channel.
- clientId
-
- Required: Yes
- Type: string
The unique identifier for the sender client.
Result Syntax
[]
Result Details
Errors
- ClientLimitExceededException:
Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.
- InvalidArgumentException:
The value for this input parameter is invalid.
- AccessDeniedException:
You do not have required permissions to perform this operation.
- ResourceNotFoundException:
The specified resource is not found.
Shapes
AccessDeniedException
Description
You do not have required permissions to perform this operation.
Members
- message
-
- Type: string
ClientLimitExceededException
Description
Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client calls. Try making the call later.
Members
- message
-
- Type: string
InvalidArgumentException
Description
The value for this input parameter is invalid.
Members
- message
-
- Type: string
ResourceNotFoundException
Description
The specified resource is not found.
Members
- message
-
- Type: string