aws-sdk-kinesisvideoarchivedmedia 1.14.0 → 1.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5d1fb4dcd8eba2145412823f223ae86bcdd40516
4
- data.tar.gz: 96c7071dbf91419d48367c2351c9fc7a1e51fe00
3
+ metadata.gz: 2c63f8222ba081bf804fcf84b7d3ec9c9cda98a9
4
+ data.tar.gz: b6041842d2005028573c9d1e78609fcd604ba80d
5
5
  SHA512:
6
- metadata.gz: 3b41161765d8becc45a9adfa4ce7326060bce5695aae79dc3534766cbaec763dad925798c58f5de48eeb5e4b16bbf14a5be3ec63910df48fbaa9172caece7711
7
- data.tar.gz: a0b935d0a89bef7a7cf741c3bb059bd056497257ce9792bf134dee0b1273a98420daf6acce280ae130b20a8d2b90b1e915aec10e2408585005d5a2b04c9837c5
6
+ metadata.gz: cfffcf4f8beafff1a36a07d6e6ddb428bea95508e6bb7175674d274e9ab3cf9072f44a94b8c99b21a72f3d0f2328c756b111939eb3f7fb7ad8f40dd38e70cab6
7
+ data.tar.gz: 1beac9db327d3cf993bfba4d66645b69c4e0534b393aed67589cbda55f3a3def6c00830dee2b6342c2e7ba25e3509276c897d84fceb4757d092a5d4c93a9a419
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-kinesisvideoarchivedmedia/customizations'
42
42
  # @service
43
43
  module Aws::KinesisVideoArchivedMedia
44
44
 
45
- GEM_VERSION = '1.14.0'
45
+ GEM_VERSION = '1.19.0'
46
46
 
47
47
  end
@@ -116,6 +116,10 @@ module Aws::KinesisVideoArchivedMedia
116
116
  # Allows you to provide an identifier for this client which will be attached to
117
117
  # all generated client side metrics. Defaults to an empty string.
118
118
  #
119
+ # @option options [String] :client_side_monitoring_host ("127.0.0.1")
120
+ # Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
121
+ # side monitoring agent is running on, where client metrics will be published via UDP.
122
+ #
119
123
  # @option options [Integer] :client_side_monitoring_port (31000)
120
124
  # Required for publishing client metrics. The port that the client side monitoring
121
125
  # agent is running on, where client metrics will be published via UDP.
@@ -250,36 +254,385 @@ module Aws::KinesisVideoArchivedMedia
250
254
 
251
255
  # @!group API Operations
252
256
 
257
+ # Retrieves an MPEG Dynamic Adaptive Streaming over HTTP (DASH) URL for
258
+ # the stream. You can then open the URL in a media player to view the
259
+ # stream contents.
260
+ #
261
+ # Both the `StreamName` and the `StreamARN` parameters are optional, but
262
+ # you must specify either the `StreamName` or the `StreamARN` when
263
+ # invoking this API operation.
264
+ #
265
+ # An Amazon Kinesis video stream has the following requirements for
266
+ # providing data through MPEG-DASH:
267
+ #
268
+ # * The media must contain h.264 or h.265 encoded video and, optionally,
269
+ # AAC or G.711 encoded audio. Specifically, the codec ID of track 1
270
+ # should be `V_MPEG/ISO/AVC` (for h.264) or V\_MPEGH/ISO/HEVC (for
271
+ # H.265). Optionally, the codec ID of track 2 should be `A_AAC` (for
272
+ # AAC) or A\_MS/ACM (for G.711).
273
+ #
274
+ # * Data retention must be greater than 0.
275
+ #
276
+ # * The video track of each fragment must contain codec private data in
277
+ # the Advanced Video Coding (AVC) for H.264 format and HEVC for H.265
278
+ # format. For more information, see [MPEG-4 specification ISO/IEC
279
+ # 14496-15][1]. For information about adapting stream data to a given
280
+ # format, see [NAL Adaptation Flags][2].
281
+ #
282
+ # * The audio track (if present) of each fragment must contain codec
283
+ # private data in the AAC format ([AAC specification ISO/IEC
284
+ # 13818-7][3]) or the [MS Wave format][4].
285
+ #
286
+ # The following procedure shows how to use MPEG-DASH with Kinesis Video
287
+ # Streams:
288
+ #
289
+ # 1. Get an endpoint using [GetDataEndpoint][5], specifying
290
+ # `GET_DASH_STREAMING_SESSION_URL` for the `APIName` parameter.
291
+ #
292
+ # 2. Retrieve the MPEG-DASH URL using `GetDASHStreamingSessionURL`.
293
+ # Kinesis Video Streams creates an MPEG-DASH streaming session to be
294
+ # used for accessing content in a stream using the MPEG-DASH
295
+ # protocol. `GetDASHStreamingSessionURL` returns an authenticated
296
+ # URL (that includes an encrypted session token) for the session's
297
+ # MPEG-DASH *manifest* (the root resource needed for streaming with
298
+ # MPEG-DASH).
299
+ #
300
+ # <note markdown="1"> Don't share or store this token where an unauthorized entity
301
+ # could access it. The token provides access to the content of the
302
+ # stream. Safeguard the token with the same measures that you would
303
+ # use with your AWS credentials.
304
+ #
305
+ # </note>
306
+ #
307
+ # The media that is made available through the manifest consists
308
+ # only of the requested stream, time range, and format. No other
309
+ # media data (such as frames outside the requested window or
310
+ # alternate bitrates) is made available.
311
+ #
312
+ # 3. Provide the URL (containing the encrypted session token) for the
313
+ # MPEG-DASH manifest to a media player that supports the MPEG-DASH
314
+ # protocol. Kinesis Video Streams makes the initialization fragment
315
+ # and media fragments available through the manifest URL. The
316
+ # initialization fragment contains the codec private data for the
317
+ # stream, and other data needed to set up the video or audio decoder
318
+ # and renderer. The media fragments contain encoded video frames or
319
+ # encoded audio samples.
320
+ #
321
+ # 4. The media player receives the authenticated URL and requests
322
+ # stream metadata and media data normally. When the media player
323
+ # requests data, it calls the following actions:
324
+ #
325
+ # * **GetDASHManifest:** Retrieves an MPEG DASH manifest, which
326
+ # contains the metadata for the media that you want to playback.
327
+ #
328
+ # * **GetMP4InitFragment:** Retrieves the MP4 initialization
329
+ # fragment. The media player typically loads the initialization
330
+ # fragment before loading any media fragments. This fragment
331
+ # contains the "`fytp`" and "`moov`" MP4 atoms, and the child
332
+ # atoms that are needed to initialize the media player decoder.
333
+ #
334
+ # The initialization fragment does not correspond to a fragment in
335
+ # a Kinesis video stream. It contains only the codec private data
336
+ # for the stream and respective track, which the media player
337
+ # needs to decode the media frames.
338
+ #
339
+ # * **GetMP4MediaFragment:** Retrieves MP4 media fragments. These
340
+ # fragments contain the "`moof`" and "`mdat`" MP4 atoms and
341
+ # their child atoms, containing the encoded fragment's media
342
+ # frames and their timestamps.
343
+ #
344
+ # <note markdown="1"> After the first media fragment is made available in a streaming
345
+ # session, any fragments that don't contain the same codec
346
+ # private data cause an error to be returned when those different
347
+ # media fragments are loaded. Therefore, the codec private data
348
+ # should not change between fragments in a session. This also
349
+ # means that the session fails if the fragments in a stream change
350
+ # from having only video to having both audio and video.
351
+ #
352
+ # </note>
353
+ #
354
+ # Data retrieved with this action is billable. See [Pricing][6]
355
+ # for details.
356
+ #
357
+ # <note markdown="1"> The following restrictions apply to MPEG-DASH sessions:
358
+ #
359
+ # * A streaming session URL should not be shared between players. The
360
+ # service might throttle a session if multiple media players are
361
+ # sharing it. For connection limits, see [Kinesis Video Streams
362
+ # Limits][7].
363
+ #
364
+ # * A Kinesis video stream can have a maximum of ten active MPEG-DASH
365
+ # streaming sessions. If a new session is created when the maximum
366
+ # number of sessions is already active, the oldest (earliest created)
367
+ # session is closed. The number of active `GetMedia` connections on a
368
+ # Kinesis video stream does not count against this limit, and the
369
+ # number of active MPEG-DASH sessions does not count against the
370
+ # active `GetMedia` connection limit.
371
+ #
372
+ # <note markdown="1"> The maximum limits for active HLS and MPEG-DASH streaming sessions
373
+ # are independent of each other.
374
+ #
375
+ # </note>
376
+ #
377
+ # </note>
378
+ #
379
+ # You can monitor the amount of data that the media player consumes by
380
+ # monitoring the `GetMP4MediaFragment.OutgoingBytes` Amazon CloudWatch
381
+ # metric. For information about using CloudWatch to monitor Kinesis
382
+ # Video Streams, see [Monitoring Kinesis Video Streams][8]. For pricing
383
+ # information, see [Amazon Kinesis Video Streams Pricing][6] and [AWS
384
+ # Pricing][9]. Charges for both HLS sessions and outgoing AWS data
385
+ # apply.
386
+ #
387
+ # For more information about HLS, see [HTTP Live Streaming][10] on the
388
+ # [Apple Developer site][11].
389
+ #
390
+ # If an error is thrown after invoking a Kinesis Video Streams archived
391
+ # media API, in addition to the HTTP status code and the response body,
392
+ # it includes the following pieces of information:
393
+ #
394
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
395
+ # in addition to what the HTTP status code provides.
396
+ #
397
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
398
+ # AWS, the support team can better diagnose the problem if given the
399
+ # Request Id.
400
+ #
401
+ # Both the HTTP status code and the ErrorType header can be utilized to
402
+ # make programmatic decisions about whether errors are retry-able and
403
+ # under what conditions, as well as provide information on what actions
404
+ # the client programmer might need to take in order to successfully try
405
+ # again.
406
+ #
407
+ # For more information, see the **Errors** section at the bottom of
408
+ # this
409
+ # topic, as well as [Common Errors][12].
410
+ #
411
+ #
412
+ #
413
+ # [1]: https://www.iso.org/standard/55980.html
414
+ # [2]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html
415
+ # [3]: https://www.iso.org/standard/43345.html
416
+ # [4]: http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html
417
+ # [5]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_GetDataEndpoint.html
418
+ # [6]: https://aws.amazon.com/kinesis/video-streams/pricing/
419
+ # [7]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html
420
+ # [8]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html
421
+ # [9]: https://aws.amazon.com/pricing/
422
+ # [10]: https://developer.apple.com/streaming/
423
+ # [11]: https://developer.apple.com
424
+ # [12]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
425
+ #
426
+ # @option params [String] :stream_name
427
+ # The name of the stream for which to retrieve the MPEG-DASH manifest
428
+ # URL.
429
+ #
430
+ # You must specify either the `StreamName` or the `StreamARN`.
431
+ #
432
+ # @option params [String] :stream_arn
433
+ # The Amazon Resource Name (ARN) of the stream for which to retrieve the
434
+ # MPEG-DASH manifest URL.
435
+ #
436
+ # You must specify either the `StreamName` or the `StreamARN`.
437
+ #
438
+ # @option params [String] :playback_mode
439
+ # Whether to retrieve live, live replay, or archived, on-demand data.
440
+ #
441
+ # Features of the three types of sessions include the following:
442
+ #
443
+ # * <b> <code>LIVE</code> </b>\: For sessions of this type, the
444
+ # MPEG-DASH manifest is continually updated with the latest fragments
445
+ # as they become available. We recommend that the media player
446
+ # retrieve a new manifest on a one-second interval. When this type of
447
+ # session is played in a media player, the user interface typically
448
+ # displays a "live" notification, with no scrubber control for
449
+ # choosing the position in the playback window to display.
450
+ #
451
+ # <note markdown="1"> In `LIVE` mode, the newest available fragments are included in an
452
+ # MPEG-DASH manifest, even if there is a gap between fragments (that
453
+ # is, if a fragment is missing). A gap like this might cause a media
454
+ # player to halt or cause a jump in playback. In this mode, fragments
455
+ # are not added to the MPEG-DASH manifest if they are older than the
456
+ # newest fragment in the playlist. If the missing fragment becomes
457
+ # available after a subsequent fragment is added to the manifest, the
458
+ # older fragment is not added, and the gap is not filled.
459
+ #
460
+ # </note>
461
+ #
462
+ # * <b> <code>LIVE_REPLAY</code> </b>\: For sessions of this type, the
463
+ # MPEG-DASH manifest is updated similarly to how it is updated for
464
+ # `LIVE` mode except that it starts by including fragments from a
465
+ # given start time. Instead of fragments being added as they are
466
+ # ingested, fragments are added as the duration of the next fragment
467
+ # elapses. For example, if the fragments in the session are two
468
+ # seconds long, then a new fragment is added to the manifest every two
469
+ # seconds. This mode is useful to be able to start playback from when
470
+ # an event is detected and continue live streaming media that has not
471
+ # yet been ingested as of the time of the session creation. This mode
472
+ # is also useful to stream previously archived media without being
473
+ # limited by the 1,000 fragment limit in the `ON_DEMAND` mode.
474
+ #
475
+ # * <b> <code>ON_DEMAND</code> </b>\: For sessions of this type, the
476
+ # MPEG-DASH manifest contains all the fragments for the session, up to
477
+ # the number that is specified in `MaxMediaPlaylistFragmentResults`.
478
+ # The manifest must be retrieved only once for each session. When this
479
+ # type of session is played in a media player, the user interface
480
+ # typically displays a scrubber control for choosing the position in
481
+ # the playback window to display.
482
+ #
483
+ # In all playback modes, if `FragmentSelectorType` is
484
+ # `PRODUCER_TIMESTAMP`, and if there are multiple fragments with the
485
+ # same start timestamp, the fragment that has the larger fragment number
486
+ # (that is, the newer fragment) is included in the MPEG-DASH manifest.
487
+ # The other fragments are not included. Fragments that have different
488
+ # timestamps but have overlapping durations are still included in the
489
+ # MPEG-DASH manifest. This can lead to unexpected behavior in the media
490
+ # player.
491
+ #
492
+ # The default is `LIVE`.
493
+ #
494
+ # @option params [String] :display_fragment_timestamp
495
+ # Per the MPEG-DASH specification, the wall-clock time of fragments in
496
+ # the manifest file can be derived using attributes in the manifest
497
+ # itself. However, typically, MPEG-DASH compatible media players do not
498
+ # properly handle gaps in the media timeline. Kinesis Video Streams
499
+ # adjusts the media timeline in the manifest file to enable playback of
500
+ # media with discontinuities. Therefore, the wall-clock time derived
501
+ # from the manifest file may be inaccurate. If DisplayFragmentTimestamp
502
+ # is set to `ALWAYS`, the accurate fragment timestamp is added to each S
503
+ # element in the manifest file with the attribute name “kvs:ts”. A
504
+ # custom MPEG-DASH media player is necessary to leverage this custom
505
+ # attribute.
506
+ #
507
+ # The default value is `NEVER`. When DASHFragmentSelector is
508
+ # `SERVER_TIMESTAMP`, the timestamps will be the server start
509
+ # timestamps. Similarly, when DASHFragmentSelector is
510
+ # `PRODUCER_TIMESTAMP`, the timestamps will be the producer start
511
+ # timestamps.
512
+ #
513
+ # @option params [String] :display_fragment_number
514
+ # Fragments are identified in the manifest file based on their sequence
515
+ # number in the session. If DisplayFragmentNumber is set to `ALWAYS`,
516
+ # the Kinesis Video Streams fragment number is added to each S element
517
+ # in the manifest file with the attribute name “kvs:fn”. These fragment
518
+ # numbers can be used for logging or for use with other APIs (e.g.
519
+ # `GetMedia` and `GetMediaForFragmentList`). A custom MPEG-DASH media
520
+ # player is necessary to leverage these this custom attribute.
521
+ #
522
+ # The default value is `NEVER`.
523
+ #
524
+ # @option params [Types::DASHFragmentSelector] :dash_fragment_selector
525
+ # The time range of the requested fragment and the source of the
526
+ # timestamps.
527
+ #
528
+ # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
529
+ # `LIVE_REPLAY`. This parameter is optional if PlaybackMode is` LIVE. If
530
+ # PlaybackMode is LIVE, the FragmentSelectorType can be set, but the
531
+ # TimestampRange should not be set. If PlaybackMode is ON_DEMAND or
532
+ # LIVE_REPLAY, both FragmentSelectorType and TimestampRange must be
533
+ # set.</p>
534
+ # `
535
+ #
536
+ # @option params [Integer] :expires
537
+ # The time in seconds until the requested session expires. This value
538
+ # can be between 300 (5 minutes) and 43200 (12 hours).
539
+ #
540
+ # When a session expires, no new calls to `GetDashManifest`,
541
+ # `GetMP4InitFragment`, or `GetMP4MediaFragment` can be made for that
542
+ # session.
543
+ #
544
+ # The default is 300 (5 minutes).
545
+ #
546
+ # @option params [Integer] :max_manifest_fragment_results
547
+ # The maximum number of fragments that are returned in the MPEG-DASH
548
+ # manifest.
549
+ #
550
+ # When the `PlaybackMode` is `LIVE`, the most recent fragments are
551
+ # returned up to this value. When the `PlaybackMode` is `ON_DEMAND`, the
552
+ # oldest fragments are returned, up to this maximum number.
553
+ #
554
+ # When there are a higher number of fragments available in a live
555
+ # MPEG-DASH manifest, video players often buffer content before starting
556
+ # playback. Increasing the buffer size increases the playback latency,
557
+ # but it decreases the likelihood that rebuffering will occur during
558
+ # playback. We recommend that a live MPEG-DASH manifest have a minimum
559
+ # of 3 fragments and a maximum of 10 fragments.
560
+ #
561
+ # The default is 5 fragments if `PlaybackMode` is `LIVE` or
562
+ # `LIVE_REPLAY`, and 1,000 if `PlaybackMode` is `ON_DEMAND`.
563
+ #
564
+ # The maximum value of 1,000 fragments corresponds to more than 16
565
+ # minutes of video on streams with 1-second fragments, and more than 2
566
+ # 1/2 hours of video on streams with 10-second fragments.
567
+ #
568
+ # @return [Types::GetDASHStreamingSessionURLOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
569
+ #
570
+ # * {Types::GetDASHStreamingSessionURLOutput#dash_streaming_session_url #dash_streaming_session_url} => String
571
+ #
572
+ # @example Request syntax with placeholder values
573
+ #
574
+ # resp = client.get_dash_streaming_session_url({
575
+ # stream_name: "StreamName",
576
+ # stream_arn: "ResourceARN",
577
+ # playback_mode: "LIVE", # accepts LIVE, LIVE_REPLAY, ON_DEMAND
578
+ # display_fragment_timestamp: "ALWAYS", # accepts ALWAYS, NEVER
579
+ # display_fragment_number: "ALWAYS", # accepts ALWAYS, NEVER
580
+ # dash_fragment_selector: {
581
+ # fragment_selector_type: "PRODUCER_TIMESTAMP", # accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
582
+ # timestamp_range: {
583
+ # start_timestamp: Time.now,
584
+ # end_timestamp: Time.now,
585
+ # },
586
+ # },
587
+ # expires: 1,
588
+ # max_manifest_fragment_results: 1,
589
+ # })
590
+ #
591
+ # @example Response structure
592
+ #
593
+ # resp.dash_streaming_session_url #=> String
594
+ #
595
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetDASHStreamingSessionURL AWS API Documentation
596
+ #
597
+ # @overload get_dash_streaming_session_url(params = {})
598
+ # @param [Hash] params ({})
599
+ def get_dash_streaming_session_url(params = {}, options = {})
600
+ req = build_request(:get_dash_streaming_session_url, params)
601
+ req.send_request(options)
602
+ end
603
+
253
604
  # Retrieves an HTTP Live Streaming (HLS) URL for the stream. You can
254
605
  # then open the URL in a browser or media player to view the stream
255
606
  # contents.
256
607
  #
257
- # You must specify either the `StreamName` or the `StreamARN`.
608
+ # Both the `StreamName` and the `StreamARN` parameters are optional, but
609
+ # you must specify either the `StreamName` or the `StreamARN` when
610
+ # invoking this API operation.
258
611
  #
259
612
  # An Amazon Kinesis video stream has the following requirements for
260
613
  # providing data through HLS:
261
614
  #
262
- # * The media must contain h.264 encoded video and, optionally, AAC
263
- # encoded audio. Specifically, the codec id of track 1 should be
264
- # `V_MPEG/ISO/AVC`. Optionally, the codec id of track 2 should be
265
- # `A_AAC`.
615
+ # * The media must contain h.264 or h.265 encoded video and, optionally,
616
+ # AAC encoded audio. Specifically, the codec ID of track 1 should be
617
+ # `V_MPEG/ISO/AVC` (for h.264) or `V_MPEG/ISO/HEVC` (for h.265).
618
+ # Optionally, the codec ID of track 2 should be `A_AAC`.
266
619
  #
267
620
  # * Data retention must be greater than 0.
268
621
  #
269
622
  # * The video track of each fragment must contain codec private data in
270
- # the Advanced Video Coding (AVC) for H.264 format ([MPEG-4
271
- # specification ISO/IEC 14496-15][1]). For information about adapting
272
- # stream data to a given format, see [NAL Adaptation Flags][2].
623
+ # the Advanced Video Coding (AVC) for H.264 format or HEVC for H.265
624
+ # format ([MPEG-4 specification ISO/IEC 14496-15][1]). For information
625
+ # about adapting stream data to a given format, see [NAL Adaptation
626
+ # Flags][2].
273
627
  #
274
628
  # * The audio track (if present) of each fragment must contain codec
275
629
  # private data in the AAC format ([AAC specification ISO/IEC
276
630
  # 13818-7][3]).
277
631
  #
278
632
  # Kinesis Video Streams HLS sessions contain fragments in the fragmented
279
- # MPEG-4 form (also called fMP4 or CMAF), rather than the MPEG-2 form
280
- # (also called TS chunks, which the HLS specification also supports).
281
- # For more information about HLS fragment types, see the [HLS
282
- # specification][4].
633
+ # MPEG-4 form (also called fMP4 or CMAF) or the MPEG-2 form (also called
634
+ # TS chunks, which the HLS specification also supports). For more
635
+ # information about HLS fragment types, see the [HLS specification][4].
283
636
  #
284
637
  # The following procedure shows how to use HLS with Kinesis Video
285
638
  # Streams:
@@ -386,7 +739,7 @@ module Aws::KinesisVideoArchivedMedia
386
739
  # sharing it. For connection limits, see [Kinesis Video Streams
387
740
  # Limits][7].
388
741
  #
389
- # * A Kinesis video stream can have a maximum of five active HLS
742
+ # * A Kinesis video stream can have a maximum of ten active HLS
390
743
  # streaming sessions. If a new session is created when the maximum
391
744
  # number of sessions is already active, the oldest (earliest created)
392
745
  # session is closed. The number of active `GetMedia` connections on a
@@ -394,6 +747,11 @@ module Aws::KinesisVideoArchivedMedia
394
747
  # number of active HLS sessions does not count against the active
395
748
  # `GetMedia` connection limit.
396
749
  #
750
+ # <note markdown="1"> The maximum limits for active HLS and MPEG-DASH streaming sessions
751
+ # are independent of each other.
752
+ #
753
+ # </note>
754
+ #
397
755
  # </note>
398
756
  #
399
757
  # You can monitor the amount of data that the media player consumes by
@@ -407,6 +765,27 @@ module Aws::KinesisVideoArchivedMedia
407
765
  # For more information about HLS, see [HTTP Live Streaming][10] on the
408
766
  # [Apple Developer site][11].
409
767
  #
768
+ # If an error is thrown after invoking a Kinesis Video Streams archived
769
+ # media API, in addition to the HTTP status code and the response body,
770
+ # it includes the following pieces of information:
771
+ #
772
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
773
+ # in addition to what the HTTP status code provides.
774
+ #
775
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
776
+ # AWS, the support team can better diagnose the problem if given the
777
+ # Request Id.
778
+ #
779
+ # Both the HTTP status code and the ErrorType header can be utilized to
780
+ # make programmatic decisions about whether errors are retry-able and
781
+ # under what conditions, as well as provide information on what actions
782
+ # the client programmer might need to take in order to successfully try
783
+ # again.
784
+ #
785
+ # For more information, see the **Errors** section at the bottom of
786
+ # this
787
+ # topic, as well as [Common Errors][12].
788
+ #
410
789
  #
411
790
  #
412
791
  # [1]: https://www.iso.org/standard/55980.html
@@ -420,6 +799,7 @@ module Aws::KinesisVideoArchivedMedia
420
799
  # [9]: https://aws.amazon.com/pricing/
421
800
  # [10]: https://developer.apple.com/streaming/
422
801
  # [11]: https://developer.apple.com
802
+ # [12]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
423
803
  #
424
804
  # @option params [String] :stream_name
425
805
  # The name of the stream for which to retrieve the HLS master playlist
@@ -434,9 +814,9 @@ module Aws::KinesisVideoArchivedMedia
434
814
  # You must specify either the `StreamName` or the `StreamARN`.
435
815
  #
436
816
  # @option params [String] :playback_mode
437
- # Whether to retrieve live or archived, on-demand data.
817
+ # Whether to retrieve live, live replay, or archived, on-demand data.
438
818
  #
439
- # Features of the two types of session include the following:
819
+ # Features of the three types of sessions include the following:
440
820
  #
441
821
  # * <b> <code>LIVE</code> </b>\: For sessions of this type, the HLS
442
822
  # media playlist is continually updated with the latest fragments as
@@ -457,6 +837,20 @@ module Aws::KinesisVideoArchivedMedia
457
837
  #
458
838
  # </note>
459
839
  #
840
+ # * <b> <code>LIVE_REPLAY</code> </b>\: For sessions of this type, the
841
+ # HLS media playlist is updated similarly to how it is updated for
842
+ # `LIVE` mode except that it starts by including fragments from a
843
+ # given start time. Instead of fragments being added as they are
844
+ # ingested, fragments are added as the duration of the next fragment
845
+ # elapses. For example, if the fragments in the session are two
846
+ # seconds long, then a new fragment is added to the media playlist
847
+ # every two seconds. This mode is useful to be able to start playback
848
+ # from when an event is detected and continue live streaming media
849
+ # that has not yet been ingested as of the time of the session
850
+ # creation. This mode is also useful to stream previously archived
851
+ # media without being limited by the 1,000 fragment limit in the
852
+ # `ON_DEMAND` mode.
853
+ #
460
854
  # * <b> <code>ON_DEMAND</code> </b>\: For sessions of this type, the HLS
461
855
  # media playlist contains all the fragments for the session, up to the
462
856
  # number that is specified in `MaxMediaPlaylistFragmentResults`. The
@@ -465,7 +859,7 @@ module Aws::KinesisVideoArchivedMedia
465
859
  # typically displays a scrubber control for choosing the position in
466
860
  # the playback window to display.
467
861
  #
468
- # In both playback modes, if `FragmentSelectorType` is
862
+ # In all playback modes, if `FragmentSelectorType` is
469
863
  # `PRODUCER_TIMESTAMP`, and if there are multiple fragments with the
470
864
  # same start timestamp, the fragment that has the larger fragment number
471
865
  # (that is, the newer fragment) is included in the HLS media playlist.
@@ -477,14 +871,16 @@ module Aws::KinesisVideoArchivedMedia
477
871
  # The default is `LIVE`.
478
872
  #
479
873
  # @option params [Types::HLSFragmentSelector] :hls_fragment_selector
480
- # The time range of the requested fragment, and the source of the
874
+ # The time range of the requested fragment and the source of the
481
875
  # timestamps.
482
876
  #
483
- # This parameter is required if `PlaybackMode` is `ON_DEMAND`. This
484
- # parameter is optional if `PlaybackMode` is `LIVE`. If `PlaybackMode`
485
- # is `LIVE`, the `FragmentSelectorType` can be set, but the
486
- # `TimestampRange` should not be set. If `PlaybackMode` is `ON_DEMAND`,
487
- # both `FragmentSelectorType` and `TimestampRange` must be set.
877
+ # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
878
+ # `LIVE_REPLAY`. This parameter is optional if PlaybackMode is` LIVE. If
879
+ # PlaybackMode is LIVE, the FragmentSelectorType can be set, but the
880
+ # TimestampRange should not be set. If PlaybackMode is ON_DEMAND or
881
+ # LIVE_REPLAY, both FragmentSelectorType and TimestampRange must be
882
+ # set.</p>
883
+ # `
488
884
  #
489
885
  # @option params [String] :container_format
490
886
  # Specifies which format should be used for packaging the media.
@@ -500,23 +896,40 @@ module Aws::KinesisVideoArchivedMedia
500
896
  # The default is `FRAGMENTED_MP4`.
501
897
  #
502
898
  # @option params [String] :discontinuity_mode
503
- # Specifies when flags marking discontinuities between fragments will be
504
- # added to the media playlists. The default is `ALWAYS` when
505
- # HLSFragmentSelector is `SERVER_TIMESTAMP`, and `NEVER` when it is
506
- # `PRODUCER_TIMESTAMP`.
899
+ # Specifies when flags marking discontinuities between fragments are
900
+ # added to the media playlists.
507
901
  #
508
902
  # Media players typically build a timeline of media content to play,
509
903
  # based on the timestamps of each fragment. This means that if there is
510
- # any overlap between fragments (as is typical if HLSFragmentSelector is
511
- # `SERVER_TIMESTAMP`), the media player timeline has small gaps between
512
- # fragments in some places, and overwrites frames in other places. When
513
- # there are discontinuity flags between fragments, the media player is
514
- # expected to reset the timeline, resulting in the fragment being played
515
- # immediately after the previous fragment. We recommend that you always
516
- # have discontinuity flags between fragments if the fragment timestamps
517
- # are not accurate or if fragments might be missing. You should not
518
- # place discontinuity flags between fragments for the player timeline to
519
- # accurately map to the producer timestamps.
904
+ # any overlap or gap between fragments (as is typical if
905
+ # HLSFragmentSelector is set to `SERVER_TIMESTAMP`), the media player
906
+ # timeline will also have small gaps between fragments in some places,
907
+ # and will overwrite frames in other places. Gaps in the media player
908
+ # timeline can cause playback to stall and overlaps can cause playback
909
+ # to be jittery. When there are discontinuity flags between fragments,
910
+ # the media player is expected to reset the timeline, resulting in the
911
+ # next fragment being played immediately after the previous fragment.
912
+ #
913
+ # The following modes are supported:
914
+ #
915
+ # * `ALWAYS`\: a discontinuity marker is placed between every fragment
916
+ # in the HLS media playlist. It is recommended to use a value of
917
+ # `ALWAYS` if the fragment timestamps are not accurate.
918
+ #
919
+ # * `NEVER`\: no discontinuity markers are placed anywhere. It is
920
+ # recommended to use a value of `NEVER` to ensure the media player
921
+ # timeline most accurately maps to the producer timestamps.
922
+ #
923
+ # * `ON_DISCONTIUNITY`\: a discontinuity marker is placed between
924
+ # fragments that have a gap or overlap of more than 50 milliseconds.
925
+ # For most playback scenarios, it is recommended to use a value of
926
+ # `ON_DISCONTINUITY` so that the media player timeline is only reset
927
+ # when there is a significant issue with the media timeline (e.g. a
928
+ # missing fragment).
929
+ #
930
+ # The default is `ALWAYS` when HLSFragmentSelector is set to
931
+ # `SERVER_TIMESTAMP`, and `NEVER` when it is set to
932
+ # `PRODUCER_TIMESTAMP`.
520
933
  #
521
934
  # @option params [String] :display_fragment_timestamp
522
935
  # Specifies when the fragment start timestamps should be included in the
@@ -539,8 +952,8 @@ module Aws::KinesisVideoArchivedMedia
539
952
  # can be between 300 (5 minutes) and 43200 (12 hours).
540
953
  #
541
954
  # When a session expires, no new calls to `GetHLSMasterPlaylist`,
542
- # `GetHLSMediaPlaylist`, `GetMP4InitFragment`, or `GetMP4MediaFragment`
543
- # can be made for that session.
955
+ # `GetHLSMediaPlaylist`, `GetMP4InitFragment`, `GetMP4MediaFragment`, or
956
+ # `GetTSFragment` can be made for that session.
544
957
  #
545
958
  # The default is 300 (5 minutes).
546
959
  #
@@ -559,8 +972,8 @@ module Aws::KinesisVideoArchivedMedia
559
972
  # playback. We recommend that a live HLS media playlist have a minimum
560
973
  # of 3 fragments and a maximum of 10 fragments.
561
974
  #
562
- # The default is 5 fragments if `PlaybackMode` is `LIVE`, and 1,000 if
563
- # `PlaybackMode` is `ON_DEMAND`.
975
+ # The default is 5 fragments if `PlaybackMode` is `LIVE` or
976
+ # `LIVE_REPLAY`, and 1,000 if `PlaybackMode` is `ON_DEMAND`.
564
977
  #
565
978
  # The maximum value of 1,000 fragments corresponds to more than 16
566
979
  # minutes of video on streams with 1-second fragments, and more than 2
@@ -575,7 +988,7 @@ module Aws::KinesisVideoArchivedMedia
575
988
  # resp = client.get_hls_streaming_session_url({
576
989
  # stream_name: "StreamName",
577
990
  # stream_arn: "ResourceARN",
578
- # playback_mode: "LIVE", # accepts LIVE, ON_DEMAND
991
+ # playback_mode: "LIVE", # accepts LIVE, LIVE_REPLAY, ON_DEMAND
579
992
  # hls_fragment_selector: {
580
993
  # fragment_selector_type: "PRODUCER_TIMESTAMP", # accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
581
994
  # timestamp_range: {
@@ -584,7 +997,7 @@ module Aws::KinesisVideoArchivedMedia
584
997
  # },
585
998
  # },
586
999
  # container_format: "FRAGMENTED_MP4", # accepts FRAGMENTED_MP4, MPEG_TS
587
- # discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER
1000
+ # discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER, ON_DISCONTINUITY
588
1001
  # display_fragment_timestamp: "ALWAYS", # accepts ALWAYS, NEVER
589
1002
  # expires: 1,
590
1003
  # max_media_playlist_fragment_results: 1,
@@ -622,9 +1035,31 @@ module Aws::KinesisVideoArchivedMedia
622
1035
  # megabytes per second (or 200 megabits per second) during a
623
1036
  # `GetMediaForFragmentList` session.
624
1037
  #
1038
+ # If an error is thrown after invoking a Kinesis Video Streams archived
1039
+ # media API, in addition to the HTTP status code and the response body,
1040
+ # it includes the following pieces of information:
1041
+ #
1042
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
1043
+ # in addition to what the HTTP status code provides.
1044
+ #
1045
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
1046
+ # AWS, the support team can better diagnose the problem if given the
1047
+ # Request Id.
1048
+ #
1049
+ # Both the HTTP status code and the ErrorType header can be utilized to
1050
+ # make programmatic decisions about whether errors are retry-able and
1051
+ # under what conditions, as well as provide information on what actions
1052
+ # the client programmer might need to take in order to successfully try
1053
+ # again.
1054
+ #
1055
+ # For more information, see the **Errors** section at the bottom of
1056
+ # this
1057
+ # topic, as well as [Common Errors][2].
1058
+ #
625
1059
  #
626
1060
  #
627
1061
  # [1]: https://docs.aws.amazon.com/cli/latest/reference/
1062
+ # [2]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
628
1063
  #
629
1064
  # @option params [required, String] :stream_name
630
1065
  # The name of the stream from which to retrieve fragment media.
@@ -674,9 +1109,31 @@ module Aws::KinesisVideoArchivedMedia
674
1109
  #
675
1110
  # </note>
676
1111
  #
1112
+ # If an error is thrown after invoking a Kinesis Video Streams archived
1113
+ # media API, in addition to the HTTP status code and the response body,
1114
+ # it includes the following pieces of information:
1115
+ #
1116
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
1117
+ # in addition to what the HTTP status code provides.
1118
+ #
1119
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
1120
+ # AWS, the support team can better diagnose the problem if given the
1121
+ # Request Id.
1122
+ #
1123
+ # Both the HTTP status code and the ErrorType header can be utilized to
1124
+ # make programmatic decisions about whether errors are retry-able and
1125
+ # under what conditions, as well as provide information on what actions
1126
+ # the client programmer might need to take in order to successfully try
1127
+ # again.
1128
+ #
1129
+ # For more information, see the **Errors** section at the bottom of
1130
+ # this
1131
+ # topic, as well as [Common Errors][2].
1132
+ #
677
1133
  #
678
1134
  #
679
1135
  # [1]: https://docs.aws.amazon.com/cli/latest/reference/
1136
+ # [2]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
680
1137
  #
681
1138
  # @option params [required, String] :stream_name
682
1139
  # The name of the stream from which to retrieve a fragment list.
@@ -747,7 +1204,7 @@ module Aws::KinesisVideoArchivedMedia
747
1204
  params: params,
748
1205
  config: config)
749
1206
  context[:gem_name] = 'aws-sdk-kinesisvideoarchivedmedia'
750
- context[:gem_version] = '1.14.0'
1207
+ context[:gem_version] = '1.19.0'
751
1208
  Seahorse::Client::Request.new(handlers, context)
752
1209
  end
753
1210