AckEventType ackEventType
Long fragmentTimecode
String fragmentNumber
AckErrorCode errorCode
Integer errorId
String channelName
The name of the signaling channel.
String channelARN
The ARN of the signaling channel.
String channelType
The type of the signaling channel.
String channelStatus
Current status of the signaling channel.
Date creationTime
The time at which the signaling channel was created.
SingleMasterConfiguration singleMasterConfiguration
A structure that contains the configuration for the SINGLE_MASTER
channel type.
String version
The current version of the signaling channel.
String channelName
A name for the signaling channel that you are creating. It must be unique for each account and region.
String channelType
A type of the signaling channel that you are creating. Currently, SINGLE_MASTER
is the only
supported channel type.
SingleMasterConfiguration singleMasterConfiguration
A structure containing the configuration for the SINGLE_MASTER
channel type.
List<E> tags
A set of tags (key/value pairs) that you want to associate with this channel.
String channelARN
The ARN of the created channel.
String deviceName
The name of the device that is writing to the stream.
In the current implementation, Kinesis Video Streams does not use this name.
String streamName
A name for the stream that you are creating.
The stream name is an identifier for the stream, and must be unique for each account and region.
String mediaType
The media type of the stream. Consumers of the stream can use this information when processing the stream. For
more information about media types, see Media Types. If you choose to specify
the MediaType
, see Naming Requirements
for guidelines.
Example valid values include "video/h264" and "video/h264,audio/aac".
This parameter is optional; the default value is null
(or empty in JSON).
String kmsKeyId
The ID of the AWS Key Management Service (AWS KMS) key that you want Kinesis Video Streams to use to encrypt stream data.
If no key ID is specified, the default, Kinesis Video-managed key (aws/kinesisvideo
) is used.
For more information, see DescribeKey.
Integer dataRetentionInHours
The number of hours that you want to retain the data in the stream. Kinesis Video Streams retains the data in a data store that is associated with the stream.
The default value is 0, indicating that the stream does not persist data.
When the DataRetentionInHours
value is 0, consumers can still consume the fragments that remain in
the service host buffer, which has a retention time limit of 5 minutes and a retention memory limit of 200 MB.
Fragments are removed from the buffer when either limit is reached.
Map<K,V> tags
A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).
String streamARN
The Amazon Resource Name (ARN) of the stream.
String fragmentSelectorType
The source of the timestamps for the requested media.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetDASHStreamingSessionURLInput$PlaybackMode is ON_DEMAND
or LIVE_REPLAY
, the
first fragment ingested with a producer timestamp within the specified FragmentSelector$TimestampRange is
included in the media playlist. In addition, the fragments with producer timestamps within the
TimestampRange
ingested immediately following the first fragment (up to the
GetDASHStreamingSessionURLInput$MaxManifestFragmentResults value) are included.
Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the MPEG-DASH manifest will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetDASHStreamingSessionURLInput$PlaybackMode is LIVE
, the producer timestamps are used in the
MP4 fragments and for deduplication. But the most recently ingested fragments based on server timestamps are
included in the MPEG-DASH manifest. This means that even if fragments ingested in the past have producer
timestamps with values now, they are not included in the HLS media playlist.
The default is SERVER_TIMESTAMP
.
DASHTimestampRange timestampRange
The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
Date startTimestamp
The start of the timestamp range for the requested media.
If the DASHTimestampRange
value is specified, the StartTimestamp
value is required.
This value is inclusive. Fragments that start before the StartTimestamp
and continue past it are
included in the session. If FragmentSelectorType
is SERVER_TIMESTAMP
, the
StartTimestamp
must be later than the stream head.
Date endTimestamp
The end of the timestamp range for the requested media. This value must be within 3 hours of the specified
StartTimestamp
, and it must be later than the StartTimestamp
value.
If FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this value must be in the
past.
The EndTimestamp
value is required for ON_DEMAND
mode, but optional for
LIVE_REPLAY
mode. If the EndTimestamp
is not set for LIVE_REPLAY
mode then
the session will continue to include newly ingested fragments until the session expires.
This value is inclusive. The EndTimestamp
is compared to the (starting) timestamp of the fragment.
Fragments that start before the EndTimestamp
value and continue past it are included in the session.
String channelARN
The ARN of the signaling channel that you want to delete.
String currentVersion
The current version of the signaling channel that you want to delete. You can obtain the current version by
invoking the DescribeSignalingChannel
or ListSignalingChannels
APIs.
String streamARN
The Amazon Resource Name (ARN) of the stream that you want to delete.
String currentVersion
Optional: The version of the stream that you want to delete.
Specify the version as a safeguard to ensure that your are deleting the correct stream. To get the stream
version, use the DescribeStream
API.
If not specified, only the CreationTime
is checked before deleting the stream.
ChannelInfo channelInfo
A structure that encapsulates the specified signaling channel's metadata and properties.
StreamInfo streamInfo
An object that describes the stream.
String fragmentNumber
The unique identifier of the fragment. This value monotonically increases based on the ingestion order.
Long fragmentSizeInBytes
The total fragment size, including information about the fragment and contained media data.
Date producerTimestamp
The timestamp from the producer corresponding to the fragment.
Date serverTimestamp
The timestamp from the AWS server corresponding to the fragment.
Long fragmentLengthInMilliseconds
The playback duration or other time value associated with the fragment.
String fragmentSelectorType
The origin of the timestamps to use (Server or Producer).
TimestampRange timestampRange
The range of timestamps to return.
String streamName
The name of the stream for which to retrieve the MPEG-DASH manifest URL.
You must specify either the StreamName
or the StreamARN
.
String streamARN
The Amazon Resource Name (ARN) of the stream for which to retrieve the MPEG-DASH manifest URL.
You must specify either the StreamName
or the StreamARN
.
String playbackMode
Whether to retrieve live, live replay, or archived, on-demand data.
Features of the three types of sessions include the following:
LIVE
: For sessions of this type, the MPEG-DASH manifest is continually updated with the
latest fragments as they become available. We recommend that the media player retrieve a new manifest on a
one-second interval. When this type of session is played in a media player, the user interface typically displays
a "live" notification, with no scrubber control for choosing the position in the playback window to display.
In LIVE
mode, the newest available fragments are included in an MPEG-DASH manifest, even if there is
a gap between fragments (that is, if a fragment is missing). A gap like this might cause a media player to halt
or cause a jump in playback. In this mode, fragments are not added to the MPEG-DASH manifest if they are older
than the newest fragment in the playlist. If the missing fragment becomes available after a subsequent fragment
is added to the manifest, the older fragment is not added, and the gap is not filled.
LIVE_REPLAY
: For sessions of this type, the MPEG-DASH manifest is updated similarly to how
it is updated for LIVE
mode except that it starts by including fragments from a given start time.
Instead of fragments being added as they are ingested, fragments are added as the duration of the next fragment
elapses. For example, if the fragments in the session are two seconds long, then a new fragment is added to the
manifest every two seconds. This mode is useful to be able to start playback from when an event is detected and
continue live streaming media that has not yet been ingested as of the time of the session creation. This mode is
also useful to stream previously archived media without being limited by the 1,000 fragment limit in the
ON_DEMAND
mode.
ON_DEMAND
: For sessions of this type, the MPEG-DASH manifest contains all the fragments for
the session, up to the number that is specified in MaxMediaPlaylistFragmentResults
. The manifest
must be retrieved only once for each session. When this type of session is played in a media player, the user
interface typically displays a scrubber control for choosing the position in the playback window to display.
In all playback modes, if FragmentSelectorType
is PRODUCER_TIMESTAMP
, and if there are
multiple fragments with the same start timestamp, the fragment that has the larger fragment number (that is, the
newer fragment) is included in the MPEG-DASH manifest. The other fragments are not included. Fragments that have
different timestamps but have overlapping durations are still included in the MPEG-DASH manifest. This can lead
to unexpected behavior in the media player.
The default is LIVE
.
String displayFragmentTimestamp
Per the MPEG-DASH specification, the wall-clock time of fragments in the manifest file can be derived using
attributes in the manifest itself. However, typically, MPEG-DASH compatible media players do not properly handle
gaps in the media timeline. Kinesis Video Streams adjusts the media timeline in the manifest file to enable
playback of media with discontinuities. Therefore, the wall-clock time derived from the manifest file may be
inaccurate. If DisplayFragmentTimestamp is set to ALWAYS
, the accurate fragment timestamp is added
to each S element in the manifest file with the attribute name “kvs:ts”. A custom MPEG-DASH media player is
necessary to leverage this custom attribute.
The default value is NEVER
. When DASHFragmentSelector is SERVER_TIMESTAMP
, the
timestamps will be the server start timestamps. Similarly, when DASHFragmentSelector is
PRODUCER_TIMESTAMP
, the timestamps will be the producer start timestamps.
String displayFragmentNumber
Fragments are identified in the manifest file based on their sequence number in the session. If
DisplayFragmentNumber is set to ALWAYS
, the Kinesis Video Streams fragment number is added to each S
element in the manifest file with the attribute name “kvs:fn”. These fragment numbers can be used for logging or
for use with other APIs (e.g. GetMedia
and GetMediaForFragmentList
). A custom MPEG-DASH
media player is necessary to leverage these this custom attribute.
The default value is NEVER
.
DASHFragmentSelector dASHFragmentSelector
The time range of the requested fragment and the source of the timestamps.
This parameter is required if PlaybackMode
is ON_DEMAND
or LIVE_REPLAY
.
This parameter is optional if PlaybackMode is
LIVE
. If PlaybackMode
is
LIVE
, the FragmentSelectorType
can be set, but the TimestampRange
should
not be set. If PlaybackMode
is ON_DEMAND
or LIVE_REPLAY
, both
FragmentSelectorType
and TimestampRange
must be set.
Integer expires
The time in seconds until the requested session expires. This value can be between 300 (5 minutes) and 43200 (12 hours).
When a session expires, no new calls to GetDashManifest
, GetMP4InitFragment
, or
GetMP4MediaFragment
can be made for that session.
The default is 300 (5 minutes).
Long maxManifestFragmentResults
The maximum number of fragments that are returned in the MPEG-DASH manifest.
When the PlaybackMode
is LIVE
, the most recent fragments are returned up to this value.
When the PlaybackMode
is ON_DEMAND
, the oldest fragments are returned, up to this
maximum number.
When there are a higher number of fragments available in a live MPEG-DASH manifest, video players often buffer content before starting playback. Increasing the buffer size increases the playback latency, but it decreases the likelihood that rebuffering will occur during playback. We recommend that a live MPEG-DASH manifest have a minimum of 3 fragments and a maximum of 10 fragments.
The default is 5 fragments if PlaybackMode
is LIVE
or LIVE_REPLAY
, and
1,000 if PlaybackMode
is ON_DEMAND
.
The maximum value of 1,000 fragments corresponds to more than 16 minutes of video on streams with 1-second fragments, and more than 2 1/2 hours of video on streams with 10-second fragments.
String dASHStreamingSessionURL
The URL (containing the session token) that a media player can use to retrieve the MPEG-DASH manifest.
String streamName
The name of the stream that you want to get the endpoint for. You must specify either this parameter or a
StreamARN
in the request.
String streamARN
The Amazon Resource Name (ARN) of the stream that you want to get the endpoint for. You must specify either this
parameter or a StreamName
in the request.
String aPIName
The name of the API action for which to get an endpoint.
String dataEndpoint
The endpoint value. To read data from the stream or to write data to it, specify this endpoint in your application.
String streamName
The name of the stream for which to retrieve the HLS master playlist URL.
You must specify either the StreamName
or the StreamARN
.
String streamARN
The Amazon Resource Name (ARN) of the stream for which to retrieve the HLS master playlist URL.
You must specify either the StreamName
or the StreamARN
.
String playbackMode
Whether to retrieve live, live replay, or archived, on-demand data.
Features of the three types of sessions include the following:
LIVE
: For sessions of this type, the HLS media playlist is continually updated with the
latest fragments as they become available. We recommend that the media player retrieve a new playlist on a
one-second interval. When this type of session is played in a media player, the user interface typically displays
a "live" notification, with no scrubber control for choosing the position in the playback window to display.
In LIVE
mode, the newest available fragments are included in an HLS media playlist, even if there is
a gap between fragments (that is, if a fragment is missing). A gap like this might cause a media player to halt
or cause a jump in playback. In this mode, fragments are not added to the HLS media playlist if they are older
than the newest fragment in the playlist. If the missing fragment becomes available after a subsequent fragment
is added to the playlist, the older fragment is not added, and the gap is not filled.
LIVE_REPLAY
: For sessions of this type, the HLS media playlist is updated similarly to how
it is updated for LIVE
mode except that it starts by including fragments from a given start time.
Instead of fragments being added as they are ingested, fragments are added as the duration of the next fragment
elapses. For example, if the fragments in the session are two seconds long, then a new fragment is added to the
media playlist every two seconds. This mode is useful to be able to start playback from when an event is detected
and continue live streaming media that has not yet been ingested as of the time of the session creation. This
mode is also useful to stream previously archived media without being limited by the 1,000 fragment limit in the
ON_DEMAND
mode.
ON_DEMAND
: For sessions of this type, the HLS media playlist contains all the fragments for
the session, up to the number that is specified in MaxMediaPlaylistFragmentResults
. The playlist
must be retrieved only once for each session. When this type of session is played in a media player, the user
interface typically displays a scrubber control for choosing the position in the playback window to display.
In all playback modes, if FragmentSelectorType
is PRODUCER_TIMESTAMP
, and if there are
multiple fragments with the same start timestamp, the fragment that has the larger fragment number (that is, the
newer fragment) is included in the HLS media playlist. The other fragments are not included. Fragments that have
different timestamps but have overlapping durations are still included in the HLS media playlist. This can lead
to unexpected behavior in the media player.
The default is LIVE
.
HLSFragmentSelector hLSFragmentSelector
The time range of the requested fragment and the source of the timestamps.
This parameter is required if PlaybackMode
is ON_DEMAND
or LIVE_REPLAY
.
This parameter is optional if PlaybackMode is
LIVE
. If PlaybackMode
is
LIVE
, the FragmentSelectorType
can be set, but the TimestampRange
should
not be set. If PlaybackMode
is ON_DEMAND
or LIVE_REPLAY
, both
FragmentSelectorType
and TimestampRange
must be set.
String containerFormat
Specifies which format should be used for packaging the media. Specifying the FRAGMENTED_MP4
container format packages the media into MP4 fragments (fMP4 or CMAF). This is the recommended packaging because
there is minimal packaging overhead. The other container format option is MPEG_TS
. HLS has supported
MPEG TS chunks since it was released and is sometimes the only supported packaging on older HLS players. MPEG TS
typically has a 5-25 percent packaging overhead. This means MPEG TS typically requires 5-25 percent more
bandwidth and cost than fMP4.
The default is FRAGMENTED_MP4
.
String discontinuityMode
Specifies when flags marking discontinuities between fragments are added to the media playlists.
Media players typically build a timeline of media content to play, based on the timestamps of each fragment. This
means that if there is any overlap or gap between fragments (as is typical if HLSFragmentSelector is set
to SERVER_TIMESTAMP
), the media player timeline will also have small gaps between fragments in some
places, and will overwrite frames in other places. Gaps in the media player timeline can cause playback to stall
and overlaps can cause playback to be jittery. When there are discontinuity flags between fragments, the media
player is expected to reset the timeline, resulting in the next fragment being played immediately after the
previous fragment.
The following modes are supported:
ALWAYS
: a discontinuity marker is placed between every fragment in the HLS media playlist. It is
recommended to use a value of ALWAYS
if the fragment timestamps are not accurate.
NEVER
: no discontinuity markers are placed anywhere. It is recommended to use a value of
NEVER
to ensure the media player timeline most accurately maps to the producer timestamps.
ON_DISCONTIUNITY
: a discontinuity marker is placed between fragments that have a gap or overlap of
more than 50 milliseconds. For most playback scenarios, it is recommended to use a value of
ON_DISCONTINUITY
so that the media player timeline is only reset when there is a significant issue
with the media timeline (e.g. a missing fragment).
The default is ALWAYS
when HLSFragmentSelector is set to SERVER_TIMESTAMP
, and
NEVER
when it is set to PRODUCER_TIMESTAMP
.
String displayFragmentTimestamp
Specifies when the fragment start timestamps should be included in the HLS media playlist. Typically, media players report the playhead position as a time relative to the start of the first fragment in the playback session. However, when the start timestamps are included in the HLS media playlist, some media players might report the current playhead as an absolute time based on the fragment timestamps. This can be useful for creating a playback experience that shows viewers the wall-clock time of the media.
The default is NEVER
. When HLSFragmentSelector is SERVER_TIMESTAMP
, the
timestamps will be the server start timestamps. Similarly, when HLSFragmentSelector is
PRODUCER_TIMESTAMP
, the timestamps will be the producer start timestamps.
Integer expires
The time in seconds until the requested session expires. This value can be between 300 (5 minutes) and 43200 (12 hours).
When a session expires, no new calls to GetHLSMasterPlaylist
, GetHLSMediaPlaylist
,
GetMP4InitFragment
, GetMP4MediaFragment
, or GetTSFragment
can be made for
that session.
The default is 300 (5 minutes).
Long maxMediaPlaylistFragmentResults
The maximum number of fragments that are returned in the HLS media playlists.
When the PlaybackMode
is LIVE
, the most recent fragments are returned up to this value.
When the PlaybackMode
is ON_DEMAND
, the oldest fragments are returned, up to this
maximum number.
When there are a higher number of fragments available in a live HLS media playlist, video players often buffer content before starting playback. Increasing the buffer size increases the playback latency, but it decreases the likelihood that rebuffering will occur during playback. We recommend that a live HLS media playlist have a minimum of 3 fragments and a maximum of 10 fragments.
The default is 5 fragments if PlaybackMode
is LIVE
or LIVE_REPLAY
, and
1,000 if PlaybackMode
is ON_DEMAND
.
The maximum value of 1,000 fragments corresponds to more than 16 minutes of video on streams with 1-second fragments, and more than 2 1/2 hours of video on streams with 10-second fragments.
String hLSStreamingSessionURL
The URL (containing the session token) that a media player can use to retrieve the HLS master playlist.
String streamName
The name of the stream from which to retrieve fragment media.
List<E> fragments
A list of the numbers of fragments for which to retrieve media. You retrieve these values with ListFragments.
String contentType
The content type of the requested media.
InputStream payload
The payload that Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information
about the chunks, see PutMedia. The
chunks that Kinesis Video Streams returns in the GetMediaForFragmentList
call also include the
following additional Matroska (MKV) tags:
AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk.
AWS_KINESISVIDEO_SERVER_SIDE_TIMESTAMP - Server-side timestamp of the fragment.
AWS_KINESISVIDEO_PRODUCER_SIDE_TIMESTAMP - Producer-side timestamp of the fragment.
The following tags will be included if an exception occurs:
AWS_KINESISVIDEO_FRAGMENT_NUMBER - The number of the fragment that threw the exception
AWS_KINESISVIDEO_EXCEPTION_ERROR_CODE - The integer code of the exception
AWS_KINESISVIDEO_EXCEPTION_MESSAGE - A text description of the exception
String streamName
The Kinesis video stream name from where you want to get the media content. If you don't specify the
streamName
, you must specify the streamARN
.
String streamARN
The ARN of the stream from where you want to get the media content. If you don't specify the
streamARN
, you must specify the streamName
.
StartSelector startSelector
Identifies the starting chunk to get from the specified stream.
String contentType
The content type of the requested media.
InputStream payload
The payload Kinesis Video Streams returns is a sequence of chunks from the specified stream. For information
about the chunks, see . The chunks that Kinesis Video Streams returns in the GetMedia
call also
include the following additional Matroska (MKV) tags:
AWS_KINESISVIDEO_CONTINUATION_TOKEN (UTF-8 string) - In the event your GetMedia
call terminates, you
can use this continuation token in your next request to get the next chunk where the last request terminated.
AWS_KINESISVIDEO_MILLIS_BEHIND_NOW (UTF-8 string) - Client applications can use this tag value to determine how far behind the chunk returned in the response is from the latest chunk on the stream.
AWS_KINESISVIDEO_FRAGMENT_NUMBER - Fragment number returned in the chunk.
AWS_KINESISVIDEO_SERVER_TIMESTAMP - Server timestamp of the fragment.
AWS_KINESISVIDEO_PRODUCER_TIMESTAMP - Producer timestamp of the fragment.
The following tags will be present if an error occurs:
AWS_KINESISVIDEO_ERROR_CODE - String description of an error that caused GetMedia to stop.
AWS_KINESISVIDEO_ERROR_ID: Integer code of the error.
The error codes are as follows:
3002 - Error writing to the stream
4000 - Requested fragment is not found
4500 - Access denied for the stream's KMS key
4501 - Stream's KMS key is disabled
4502 - Validation error on the stream's KMS key
4503 - KMS key specified in the stream is unavailable
4504 - Invalid usage of the KMS key specified in the stream
4505 - Invalid state of the KMS key specified in the stream
4506 - Unable to find the KMS key specified in the stream
5000 - Internal error
String channelARN
The ARN of the signalling channel for which you want to get an endpoint.
SingleMasterChannelEndpointConfiguration singleMasterChannelEndpointConfiguration
A structure containing the endpoint configuration for the SINGLE_MASTER
channel type.
String fragmentSelectorType
The source of the timestamps for the requested media.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetHLSStreamingSessionURLInput$PlaybackMode is ON_DEMAND
or LIVE_REPLAY
, the
first fragment ingested with a producer timestamp within the specified FragmentSelector$TimestampRange is
included in the media playlist. In addition, the fragments with producer timestamps within the
TimestampRange
ingested immediately following the first fragment (up to the
GetHLSStreamingSessionURLInput$MaxMediaPlaylistFragmentResults value) are included.
Fragments that have duplicate producer timestamps are deduplicated. This means that if producers are producing a stream of fragments with producer timestamps that are approximately equal to the true clock time, the HLS media playlists will contain all of the fragments within the requested timestamp range. If some fragments are ingested within the same time range and very different points in time, only the oldest ingested collection of fragments are returned.
When FragmentSelectorType
is set to PRODUCER_TIMESTAMP
and
GetHLSStreamingSessionURLInput$PlaybackMode is LIVE
, the producer timestamps are used in the
MP4 fragments and for deduplication. But the most recently ingested fragments based on server timestamps are
included in the HLS media playlist. This means that even if fragments ingested in the past have producer
timestamps with values now, they are not included in the HLS media playlist.
The default is SERVER_TIMESTAMP
.
HLSTimestampRange timestampRange
The start and end of the timestamp range for the requested media.
This value should not be present if PlaybackType
is LIVE
.
Date startTimestamp
The start of the timestamp range for the requested media.
If the HLSTimestampRange
value is specified, the StartTimestamp
value is required.
This value is inclusive. Fragments that start before the StartTimestamp
and continue past it are
included in the session. If FragmentSelectorType
is SERVER_TIMESTAMP
, the
StartTimestamp
must be later than the stream head.
Date endTimestamp
The end of the timestamp range for the requested media. This value must be within 3 hours of the specified
StartTimestamp
, and it must be later than the StartTimestamp
value.
If FragmentSelectorType
for the request is SERVER_TIMESTAMP
, this value must be in the
past.
The EndTimestamp
value is required for ON_DEMAND
mode, but optional for
LIVE_REPLAY
mode. If the EndTimestamp
is not set for LIVE_REPLAY
mode then
the session will continue to include newly ingested fragments until the session expires.
This value is inclusive. The EndTimestamp
is compared to the (starting) timestamp of the fragment.
Fragments that start before the EndTimestamp
value and continue past it are included in the session.
String streamName
The name of the stream from which to retrieve a fragment list.
Long maxResults
The total number of fragments to return. If the total number of fragments available is more than the value
specified in max-results
, then a ListFragmentsOutput$NextToken is provided in the output that
you can use to resume pagination.
String nextToken
A token to specify where to start paginating. This is the ListFragmentsOutput$NextToken from a previously truncated response.
FragmentSelector fragmentSelector
Describes the timestamp range and timestamp origin for the range of fragments to return.
List<E> fragments
A list of archived Fragment objects from the stream that meet the selector criteria. Results are in no specific order, even across pages.
String nextToken
If the returned list is truncated, the operation returns this token to use to retrieve the next page of results.
This value is null
when there are no more results to return.
Integer maxResults
The maximum number of channels to return in the response. The default is 500.
String nextToken
If you specify this parameter, when the result of a ListSignalingChannels
operation is truncated,
the call returns the NextToken
in the response. To get another batch of channels, provide this token
in your next request.
ChannelNameCondition channelNameCondition
Optional: Returns only the channels that satisfy a specific condition.
Integer maxResults
The maximum number of streams to return in the response. The default is 10,000.
String nextToken
If you specify this parameter, when the result of a ListStreams
operation is truncated, the call
returns the NextToken
in the response. To get another batch of streams, provide this token in your
next request.
StreamNameCondition streamNameCondition
Optional: Returns only streams that satisfy a specific condition. Currently, you can specify only the prefix of a stream name as a condition.
String nextToken
If you specify this parameter and the result of a ListTagsForResource call is truncated, the response includes a token that you can use in the next request to fetch the next batch of tags.
String resourceARN
The ARN of the signaling channel for which you want to list tags.
String nextToken
If you specify this parameter and the result of a ListTagsForResource call is truncated, the response includes a token that you can use in the next request to fetch the next set of tags.
Map<K,V> tags
A map of tag keys and values associated with the specified signaling channel.
String nextToken
If you specify this parameter and the result of a ListTagsForStream
call is truncated, the response
includes a token that you can use in the next request to fetch the next batch of tags.
String streamARN
The Amazon Resource Name (ARN) of the stream that you want to list tags for.
String streamName
The name of the stream that you want to list tags for.
String streamName
You pass this value as the x-amzn-stream-name
HTTP header.
Name of the Kinesis video stream where you want to write the media content. If you don't specify the
streamName
, you must specify the streamARN
.
String streamARN
You pass this value as the x-amzn-stream-arn
HTTP header.
Amazon Resource Name (ARN) of the Kinesis video stream where you want to write the media content. If you don't
specify the streamARN
, you must specify the streamName
.
String fragmentTimecodeType
You pass this value as the x-amzn-fragment-timecode-type
HTTP header.
Indicates whether timecodes in the fragments (payload, HTTP request body) are absolute or relative to
producerStartTimestamp
. Kinesis Video Streams uses this information to compute the
producer_timestamp
for the fragment received in the request, as described in the API overview.
Date producerStartTimestamp
You pass this value as the x-amzn-producer-start-timestamp
HTTP header.
This is the producer time stamp at which the producer started recording the media (not the time stamp of the specific fragments in the request).
InputStream payload
The media content to write to the Kinesis video stream. In the current implementation, Kinesis Video Streams supports only the Matroska (MKV) container format with a single MKV segment. A segment can contain one or more clusters.
Each MKV cluster maps to a Kinesis video stream fragment. Whatever cluster duration you choose becomes the fragment duration.
InputStream payload
After Kinesis Video Streams successfully receives a PutMedia
request, the service validates the
request headers. The service then starts reading the payload and first sends an HTTP 200 response.
The service then returns a stream containing a series of JSON objects (Acknowledgement
objects)
separated by newlines. The acknowledgements are received on the same connection on which the media data is sent.
There can be many acknowledgements for a PutMedia
request. Each Acknowledgement
consists of the following key-value pairs:
AckEventType
- Event type the acknowledgement represents.
Buffering: Kinesis Video Streams has started receiving the fragment. Kinesis Video Streams sends the first Buffering acknowledgement when the first byte of fragment data is received.
Received: Kinesis Video Streams received the entire fragment. If you did not configure the stream to persist the data, the producer can stop buffering the fragment upon receiving this acknowledgement.
Persisted: Kinesis Video Streams has persisted the fragment (for example, to Amazon S3). You get this acknowledgement if you configured the stream to persist the data. After you receive this acknowledgement, the producer can stop buffering the fragment.
Error: Kinesis Video Streams ran into an error while processing the fragment. You can review the error code and determine the next course of action.
Idle: The PutMedia
session is in-progress. However, Kinesis Video Streams is currently not
receiving data. Kinesis Video Streams sends this acknowledgement periodically for up to 30 seconds after the last
received data. If no data is received within the 30 seconds, Kinesis Video Streams closes the request.
This acknowledgement can help a producer determine if the PutMedia
connection is alive, even if it
is not sending any data.
FragmentTimeCode
- Fragment timecode for which acknowledgement is sent.
The element can be missing if the AckEventType
is Idle.
FragmentNumber
- Kinesis Video Streams-generated fragment number for which the acknowledgement is
sent.
ErrorId
and ErrorCode
- If the AckEventType
is ErrorId, this field
provides corresponding error code. The following is the list of error codes:
4000 - Error reading the data stream.
4001 - Fragment size is greater than maximum limit, 50 MB, allowed.
4002 - Fragment duration is greater than maximum limit, 10 seconds, allowed.
4003 - Connection duration is greater than maximum allowed threshold.
4004 - Fragment timecode is less than the timecode previous time code (within a PutMedia
call, you
cannot send fragments out of order).
4005 - More than one track is found in MKV.
4006 - Failed to parse the input stream as valid MKV format.
4007 - Invalid producer timestamp.
4008 - Stream no longer exists (deleted).
4500 - Access to the stream's specified KMS key is denied.
4501 - The stream's specified KMS key is disabled.
4502 - The stream's specified KMS key failed validation.
4503 - The stream's specified KMS key is unavailable.
4504 - Invalid usage of the stream's specified KMS key.
4505 - The stream's specified KMS key is in an invalid state.
4506 - The stream's specified KMS key is not found.
5000 - Internal service error
5001 - Kinesis Video Streams failed to persist fragments to the data store.
The producer, while sending the payload for a long running PutMedia
request, should read the
response for acknowledgements. A producer might receive chunks of acknowledgements at the same time, due to
buffering on an intermediate proxy server. A producer that wants to receive timely acknowledgements can send
fewer fragments in each PutMedia
request.
List<E> protocols
This property is used to determine the nature of communication over this SINGLE_MASTER
signaling
channel. If WSS
is specified, this API returns a websocket endpoint. If HTTPS
is
specified, this API returns an HTTPS
endpoint.
String role
This property is used to determine messaging permissions in this SINGLE_MASTER
signaling channel. If
MASTER
is specified, this API returns an endpoint that a client can use to receive offers from and
send answers to any of the viewers on this signaling channel. If VIEWER
is specified, this API
returns an endpoint that a client can use only to send offers to another MASTER
client on this
signaling channel.
Integer messageTtlSeconds
The period of time a signaling channel retains underlivered messages before they are discarded.
String startSelectorType
Identifies the fragment on the Kinesis video stream where you want to start getting the data from.
NOW - Start with the latest chunk on the stream.
EARLIEST - Start with earliest available chunk on the stream.
FRAGMENT_NUMBER - Start with the chunk after a specific fragment. You must also specify the
AfterFragmentNumber
parameter.
PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment with the specified producer
or server timestamp. You specify the timestamp by adding StartTimestamp
.
CONTINUATION_TOKEN - Read using the specified continuation token.
If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the startSelectorType
, you don't provide
any additional information in the startSelector
.
String afterFragmentNumber
Specifies the fragment number from where you want the GetMedia
API to start returning the fragments.
Date startTimestamp
A timestamp value. This value is required if you choose the PRODUCER_TIMESTAMP or the SERVER_TIMESTAMP as the
startSelectorType
. The GetMedia
API then starts with the chunk containing the fragment
that has the specified timestamp.
String continuationToken
Continuation token that Kinesis Video Streams returned in the previous GetMedia
response. The
GetMedia
API then starts with the chunk identified by the continuation token.
String deviceName
The name of the device that is associated with the stream.
String streamName
The name of the stream.
String streamARN
The Amazon Resource Name (ARN) of the stream.
String mediaType
The MediaType
of the stream.
String kmsKeyId
The ID of the AWS Key Management Service (AWS KMS) key that Kinesis Video Streams uses to encrypt data on the stream.
String version
The version of the stream.
String status
The status of the stream.
Date creationTime
A time stamp that indicates when the stream was created.
Integer dataRetentionInHours
How long the stream retains data, in hours.
String streamARN
The Amazon Resource Name (ARN) of the resource that you want to add the tag or tags to.
String streamName
The name of the stream that you want to add the tag or tags to.
Map<K,V> tags
A list of tags to associate with the specified stream. Each tag is a key-value pair (the value is optional).
String streamName
The name of the stream whose retention period you want to change.
String streamARN
The Amazon Resource Name (ARN) of the stream whose retention period you want to change.
String currentVersion
The version of the stream whose retention period you want to change. To get the version, call either the
DescribeStream
or the ListStreams
API.
String operation
Indicates whether you want to increase or decrease the retention period.
Integer dataRetentionChangeInHours
The retention period, in hours. The value you specify replaces the current value. The maximum value for this parameter is 87600 (ten years).
String channelARN
The ARN of the signaling channel that you want to update.
String currentVersion
The current version of the signaling channel that you want to update.
SingleMasterConfiguration singleMasterConfiguration
The structure containing the configuration for the SINGLE_MASTER
type of the signaling channel that
you want to update.
String streamName
The name of the stream whose metadata you want to update.
The stream name is an identifier for the stream, and must be unique for each account and region.
String streamARN
The ARN of the stream whose metadata you want to update.
String currentVersion
The version of the stream whose metadata you want to update.
String deviceName
The name of the device that is writing to the stream.
In the current implementation, Kinesis Video Streams does not use this name.
String mediaType
The stream's media type. Use MediaType
to specify the type of content that the stream contains to
the consumers of the stream. For more information about media types, see Media Types. If you choose to specify
the MediaType
, see Naming
Requirements.
To play video on the console, you must specify the correct video type. For example, if the video in the stream is
H.264, specify video/h264
as the MediaType
.
Copyright © 2020. All rights reserved.