Spec-Zone.ru › AWS CLI v2

[ aws . kinesis-video-archived-media ]

get-dash-streaming-session-url

Описание

Получает URL-адрес MPEG Dynamic Adaptive Streaming over HTTP (DASH) для потока. Затем вы можете открыть URL-адрес в медиаплеере для просмотра содержимого потока.

Оба параметра StreamName и StreamARN являются необязательными, но вы должны указать либо StreamName, либо StreamARN при вызове этой операции API.

Поток Amazon Kinesis video имеет следующие требования для предоставления данных через MPEG-DASH:

  • Медиа должны содержать видео с кодировкой h.264 или h.265 и, необязательно, аудио с кодировкой AAC или G.711. В частности, идентификатор кодека трека 1 должен быть V_MPEG/ISO/AVC (для h.264) или V_MPEGH/ISO/HEVC (для H.265). Необязательно, идентификатор кодека трека 2 должен быть A_AAC (для AAC) или A_MS/ACM (для G.711).
  • Срок хранения данных должен быть больше 0.
  • Трек видео каждого фрагмента должен содержать приватные данные кодека в формате Advanced Video Coding (AVC) для H.264 и HEVC для H.265. Дополнительную информацию см. в спецификации MPEG-4 ISO/IEC 14496-15. Сведения об адаптации данных потока к определенному формату см. в NAL Adaptation Flags.
  • Трек аудио (если присутствует) каждого фрагмента должен содержать приватные данные кодека в формате AAC (спецификация AAC ISO/IEC 13818-7) или формате MS Wave.

Следующая процедура демонстрирует, как использовать MPEG-DASH с потоками Kinesis Video:

  • Получите конечную точку, используя GetDataEndpoint, указав GET_DASH_STREAMING_SESSION_URL для параметра APIName.
  • Получите URL-адрес MPEG-DASH, используя GetDASHStreamingSessionURL. Потоки Kinesis Video Streams создают сеанс потоковой передачи MPEG-DASH для доступа к содержимому потока с помощью протокола MPEG-DASH. GetDASHStreamingSessionURL возвращает аутентифицированный URL-адрес (включающий зашифрованный токен сеанса) для манифеста сеанса MPEG-DASH (корневой ресурс, необходимый для потоковой передачи с MPEG-DASH).

Примечание

Не делитесь этим токеном и не храните его там, где к нему может получить доступ неуполномоченный субъект. Токен предоставляет доступ к содержимому потока. Обеспечьте безопасность токена теми же средствами, что и ваши учетные данные Amazon Web Services.

Медиа, которые доступны через манифест, состоят только из запрошенного потока, временного диапазона и формата. Никакие другие данные медиа (например, кадры за пределами запрошенного окна или альтернативные битрейты) недоступны.

  • Предоставьте URL-адрес (содержащий зашифрованный токен сеанса) для манифеста MPEG-DASH медиаплееру, который поддерживает протокол MPEG-DASH. Потоки Kinesis Video Streams предоставляют начальный фрагмент и фрагменты медиа через URL-адрес манифеста. Начальный фрагмент содержит приватные данные кодека для потока и другие данные, необходимые для настройки декодера и рендера видео или аудио. Фрагменты медиа содержат закодированные кадры видео или закодированные аудиосэмплы.

  • Медиаплеер получает аутентифицированный URL-адрес и обычно запрашивает метаданные потока и данные медиа. Когда медиаплеер запрашивает данные, он вызывает следующие действия:

    • GetDASHManifest: Получает манифест MPEG DASH, который содержит метаданные для воспроизведения необходимых медиа.
    • GetMP4InitFragment: Получает начальный фрагмент MP4. Медиаплеер обычно загружает начальный фрагмент перед загрузкой любых фрагментов медиа. Этот фрагмент содержит «fytp» и «moov» атомы MP4 и дочерние атомы, которые необходимы для инициализации декодера медиаплеера. Начальный фрагмент не соответствует фрагменту в потоке Kinesis video. Он содержит только приватные данные кодека для потока и соответствующего трека, которые медиаплеер нуждается для декодирования кадров медиа.
    • GetMP4MediaFragment: Получает фрагменты медиа MP4. Эти фрагменты содержат «moof» и «mdat» атомы MP4 и их дочерние атомы, содержащие закодированные кадры медиа фрагмента и их временные метки.

    Примечание

    После того, как первый фрагмент медиа становится доступным в сеансе потоковой передачи, любые фрагменты, не содержащие те же приватные данные кодека, приводят к ошибке при загрузке этих различных фрагментов медиа. Поэтому приватные данные кодека не должны меняться между фрагментами в сеансе. Это также означает, что сеанс завершается, если фрагменты в потоке меняют содержимое с только видео на видео и аудио.

    Данные, полученные с помощью этого действия, учитываются при расчете стоимости. Подробности см. в разделе Цены.

Примечание

Для ограничений, которые применяются к сеансам MPEG-DASH, см. Kinesis Video Streams Limits.

Вы можете отслеживать количество данных, которые потребляет медиаплеер, отслеживая метрику GetMP4MediaFragment.OutgoingBytes Amazon CloudWatch. Подробную информацию об использовании CloudWatch для мониторинга потоков Kinesis Video см. в разделе Мониторинг потоков Kinesis Video Streams. Сведения о ценах см. в разделах Цены Amazon Kinesis Video Streams и Цены Amazon Web Services. Применяются сборы за сеансы HLS и исходящие данные Amazon Web Services.

Дополнительную информацию об HLS см. на сайте Apple Developer в разделе HTTP Live Streaming.

Предупреждение

Если после вызова API архивированных медиа Kinesis Video Streams возникает ошибка, помимо кода состояния HTTP и тела ответа, она включает в себя следующую информацию:

  • x-amz-ErrorType заголовок HTTP — содержит более конкретный тип ошибки помимо того, что предоставляет код состояния HTTP.
  • x-amz-RequestId заголовок HTTP — если вы хотите сообщить о проблеме команде поддержки Amazon Web Services, она сможет лучше диагностировать проблему, получив Request Id.

И код состояния HTTP, и заголовок ErrorType можно использовать для принятия программных решений о том, являются ли ошибки повторными и при каких условиях, а также предоставляют информацию о действиях, которые может предпринять программист клиента, чтобы успешно повторить попытку.

Дополнительную информацию см. в разделе Ошибки внизу этой темы, а также в Common Errors.

См. также: Документация API AWS

Синопсис

  get-dash-streaming-session-url
[--stream-name <value>]
[--stream-arn <value>]
[--playback-mode <value>]
[--display-fragment-timestamp <value>]
[--display-fragment-number <value>]
[--dash-fragment-selector <value>]
[--expires <value>]
[--max-manifest-fragment-results <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]

Параметры

--stream-name (строка)

Имя потока, для которого требуется получить URL манифеста MPEG-DASH.

Вы должны указать либо StreamName, либо StreamARN.

--stream-arn (строка)

Amazon Resource Name (ARN) потока, для которого требуется получить URL манифеста MPEG-DASH.

Вы должны указать либо StreamName, либо StreamARN.

--playback-mode (строка)

Тип данных: прямой эфир, повтор прямой трансляции или архивные данные на основе спроса.

Функции трёх типов сессий включают следующее:

  • **LIVE **: Для сессий этого типа маниефест MPEG-DASH постоянно обновляется новыми фрагментами по мере их появления. Рекомендуется, чтобы медиаплеер получал новый маниефест с интервалом в одну секунду. При воспроизведении такого типа сессии в медиаплеере интерфейс пользователя обычно отображает уведомление «Прямой эфир» без регулятора для выбора позиции в окне воспроизведения.

Примечание

В режиме LIVE в маниефесте MPEG-DASH содержатся самые новые доступные фрагменты, даже если между ними есть разрыв (то есть, если фрагмент отсутствует). Такой разрыв может привести к остановке медиаплеера или скачку при воспроизведении. В этом режиме фрагменты не добавляются в маниефест MPEG-DASH, если они старше, чем самый новый фрагмент в списке воспроизведения. Если пропущенный фрагмент станет доступным после добавления последующего фрагмента в маниефест, более старый фрагмент не добавляется, и разрыв не заполняется.
  • **LIVE_REPLAY **: Для сессий этого типа маниефест MPEG-DASH обновляется аналогично режиму LIVE, за исключением того, что он начинается с включения фрагментов с заданного начального времени. Вместо добавления фрагментов по мере их поступления, фрагменты добавляются по мере истечения продолжительности следующего фрагмента. Например, если фрагменты в сессии имеют длительность в две секунды, то в маниефест добавляется новый фрагмент каждые две секунды. Этот режим полезен для начала воспроизведения с момента обнаружения события и продолжения прямой трансляции медиа, которые ещё не были обработаны на момент создания сессии. Этот режим также полезен для трансляции ранее архивированных медиа без ограничений на 1000 фрагментов в режиме ON_DEMAND.
  • **ON_DEMAND **: Для сессий этого типа маниефест MPEG-DASH содержит все фрагменты для сессии до числа, указанного в MaxManifestFragmentResults. Манифест должен быть получен только один раз для каждой сессии. При воспроизведении такого типа сессии в медиаплеере интерфейс пользователя обычно отображает регулятор для выбора позиции в окне воспроизведения.

Во всех режимах воспроизведения, если FragmentSelectorType равен PRODUCER_TIMESTAMP, и если есть несколько фрагментов с одинаковым начальным отметкой времени, в маниефесте MPEG-DASH включается фрагмент с большим номером фрагмента (то есть более новый фрагмент). Другие фрагменты не включаются. Фрагменты, имеющие разные отметки времени, но имеющие перекрывающиеся интервалы, всё ещё включаются в маниефест MPEG-DASH. Это может привести к непредсказуемому поведению медиаплеера.

По умолчанию LIVE.

Возможные значения:

  • LIVE
  • LIVE_REPLAY
  • ON_DEMAND

--display-fragment-timestamp (строка)

Согласно спецификации MPEG-DASH, время реальных часов фрагментов в файле маниефеста можно определить, используя атрибуты в самом маниефесте. Однако, как правило, совместимые с MPEG-DASH медиаплеери не обрабатывают разрывы во временной шкале медиа корректно. Kinesis Video Streams корректирует временную шкалу медиа в файле маниефеста, чтобы обеспечить воспроизведение медиа с разрывами. Поэтому, время реальных часов, полученное из файла маниефеста, может быть неточным. Если DisplayFragmentTimestamp установлен в ALWAYS, то точное время фрагмента добавляется к каждому элементу S в файле маниефеста с именем атрибута “kvs:ts”. Для использования этого пользовательского атрибута нужен специализированный MPEG-DASH медиаплеер.

Значение по умолчанию - NEVER. Когда DASHFragmentSelector равен SERVER_TIMESTAMP, отметки времени будут серверными начальными отметками времени. Аналогично, когда DASHFragmentSelector равен PRODUCER_TIMESTAMP, отметки времени будут начальными отметками времени производителя.

Возможные значения:

  • ALWAYS
  • NEVER

--display-fragment-number (строка)

Фрагменты идентифицируются в файле маниефеста на основе их порядкового номера в сессии. Если DisplayFragmentNumber установлен в ALWAYS, порядковый номер фрагмента Kinesis Video Streams добавляется к каждому элементу S в файле маниефеста с именем атрибута “kvs:fn”. Эти номера фрагментов могут быть использованы для ведения журналов или для использования с другими API (например, GetMedia и GetMediaForFragmentList). Для использования этого пользовательского атрибута нужен специализированный MPEG-DASH медиаплеер.

Значение по умолчанию - NEVER.

Возможные значения:

  • ALWAYS
  • NEVER

--dash-fragment-selector (структура)

Диапазон времени запрашиваемого фрагмента и источник отметок времени.

Этот параметр обязателен, если PlaybackMode равен ON_DEMAND или LIVE_REPLAY. Этот параметр необязателен, если PlaybackMode равен LIVE. Если PlaybackMode равен LIVE, можно установить FragmentSelectorType, но TimestampRange не следует устанавливать. Если PlaybackMode равен ON_DEMAND или LIVE_REPLAY, необходимо установить как FragmentSelectorType, так и TimestampRange.

FragmentSelectorType -> (строка)

Источник отметок времени для запрашиваемого медиа.

Когда FragmentSelectorType установлен на PRODUCER_TIMESTAMP, и GetDASHStreamingSessionURLInput$PlaybackMode равен ON_DEMAND или LIVE_REPLAY, первый фрагмент, полученный с отметкой времени производителя в указанном FragmentSelector$TimestampRange, включается в список воспроизведения медиа. Кроме того, фрагменты с отметками времени производителя в TimestampRange, полученные сразу после первого фрагмента (до значения GetDASHStreamingSessionURLInput$MaxManifestFragmentResults), включаются.

Фрагменты с повторяющимися отметками времени производителя дублируются. Это означает, что если производители генерируют поток фрагментов с отметками времени производителя, приблизительно равными истинному времени, маниефест MPEG-DASH будет содержать все фрагменты в запрошенном диапазоне отметок времени. Если некоторые фрагменты получены в одном временном диапазоне и в очень разные моменты времени, возвращается только самое старое полученное множество фрагментов.

Когда FragmentSelectorType установлен на PRODUCER_TIMESTAMP, и GetDASHStreamingSessionURLInput$PlaybackMode равен LIVE, отметки времени производителя используются в фрагментах MP4 и для дублирования. Но в маниефесте MPEG-DASH включаются наиболее недавно полученные фрагменты на основе серверных отметок времени. Это означает, что даже если фрагменты, полученные ранее, имеют отметки времени производителя с текущими значениями, они не включаются в список воспроизведения HLS.

По умолчанию SERVER_TIMESTAMP.

TimestampRange -> (структура)

Начальная и конечная отметки времени диапазона для запрашиваемого медиа.

Это значение не должно быть присутствовать, если PlaybackType равно LIVE.

StartTimestamp -> (отметка времени)

Начало диапазона отметок времени для запрашиваемого медиа.

Если задано значение DASHTimestampRange, то необходимо задать значение StartTimestamp.

В сессию включаются только фрагменты, начинающиеся точно в или после StartTimestamp. Фрагменты, начинающиеся до StartTimestamp и продолжающиеся после него, не включаются в сессию. Если FragmentSelectorType равно SERVER_TIMESTAMP, то StartTimestamp должно быть позже, чем заголовок потока.

EndTimestamp -> (отметка времени)

Конец диапазона отметок времени для запрашиваемого медиа. Это значение должно быть в пределах 24 часов от указанного StartTimestamp и позже, чем значение StartTimestamp.

Если FragmentSelectorType для запроса равно SERVER_TIMESTAMP, это значение должно быть в прошлом.

Значение EndTimestamp необходимо для режима ON_DEMAND, но необязательно для режима LIVE_REPLAY. Если EndTimestamp не задано для режима LIVE_REPLAY, сессия будет продолжать включать новые фрагменты до истечения сессии.

Примечание

Это значение включительно. EndTimestamp сравнивается с отметкой времени (начала) фрагмента. Фрагменты, начинающиеся до значения EndTimestamp и продолжающиеся после него, включаются в сессию.

Краткая запись:

FragmentSelectorType=string,TimestampRange={StartTimestamp=timestamp,EndTimestamp=timestamp}

Синтаксис JSON:

{
  "FragmentSelectorType": "PRODUCER_TIMESTAMP"|"SERVER_TIMESTAMP",
  "TimestampRange": {
    "StartTimestamp": timestamp,
    "EndTimestamp": timestamp
  }
}

--expires (целое число)

Время в секундах до истечения запрошенной сессии. Это значение может быть от 300 (5 минут) до 43200 (12 часов).

При истечении сессии нельзя делать новые вызовы GetDashManifest, GetMP4InitFragment или GetMP4MediaFragment для этой сессии.

По умолчанию 300 (5 минут).

--max-manifest-fragment-results (длинное целое число)

Максимальное количество фрагментов, возвращаемых в маниефесте MPEG-DASH.

Когда PlaybackMode равно LIVE, возвращаются самые последние фрагменты до этого значения. Когда PlaybackMode равно ON_DEMAND, возвращаются самые старые фрагменты до этого максимального количества.

Когда в маниефесте MPEG-DASH для прямой трансляции доступно большее количество фрагментов, видеоплееры часто буферизуют контент перед началом воспроизведения. Увеличение размера буфера увеличивает задержку воспроизведения, но уменьшает вероятность повторной буферизации во время воспроизведения. Рекомендуется, чтобы маниефест MPEG-DASH для прямой трансляции содержал не менее 3 фрагментов и не более 10 фрагментов.

По умолчанию 5 фрагментов, если PlaybackMode равно LIVE или LIVE_REPLAY, и 1000, если PlaybackMode равно ON_DEMAND.

Максимальное значение 1000 фрагментов соответствует более чем 16 минутам видео для потоков с фрагментами по 1 секунде и более чем 2 часам 30 минутам видео для потоков с фрагментами по 10 секунд.

--cli-input-json | --cli-input-yaml (строка) Считывает аргументы из предоставленной JSON-строки. JSON-строка следует формату, предоставленному --generate-cli-skeleton. Если другие аргументы предоставлены в командной строке, эти значения переопределят значения, предоставленные JSON. Невозможно передавать произвольные двоичные значения с помощью значения, предоставленного JSON, так как строка будет взята буквально. Это может не быть указано вместе с --cli-input-yaml.

--generate-cli-skeleton (строка) Выводит JSON-скелет в стандартный вывод без отправки запроса API. Если предоставлено значение без значения или значение input, выводит пример входного JSON, который можно использовать в качестве аргумента для --cli-input-json. Аналогично, если предоставлено yaml-input, он выведет пример входного YAML, который можно использовать с --cli-input-yaml. Если предоставлено значение output, оно валидирует входные данные команд и возвращает пример выходного JSON для этой команды. Сгенерированный JSON-скелет не является стабильным между версиями AWS CLI, и нет гарантий обратной совместимости в сгенерированном JSON-скелете.

Общие параметры

--debug (булево)

Включить отладовую запись журнала.

--endpoint-url (строка)

Переопределить значение URL по умолчанию команды указанным URL.

--no-verify-ssl (булево)

По умолчанию AWS CLI использует SSL при взаимодействии с AWS-сервисами. Для каждого SSL-соединения AWS CLI будет проверять SSL-сертификаты. Этот параметр переопределяет поведение проверки SSL-сертификатов по умолчанию.

--no-paginate (булево)

Отключить автоматическую постраничную навигацию. Если автоматическая постраничная навигация отключена, AWS CLI выполнит только один вызов для первой страницы результатов.

--output (строка)

Стиль форматирования для вывода команд.

  • json
  • text
  • table
  • yaml
  • yaml-stream

--query (строка)

Запрос JMESPath для использования при фильтрации данных ответа.

--profile (строка)

Использовать определённый профиль из файла учетных данных.

--region (строка)

Регион для использования. Переопределяет параметры конфигурации/среды.

--version (строка)

Отобразить версию этого инструмента.

--color (строка)

Включить/отключить цветной вывод.

  • on
  • off
  • auto

--no-sign-request (булево)

Не подписывать запросы. Учетные данные не будут загружены, если этот аргумент предоставлен.

--ca-bundle (строка)

Файл с набором сертификатов CA для использования при проверке SSL-сертификатов. Переопределяет параметры конфигурации/среды.

--cli-read-timeout (целое число)

Максимальное время чтения сокета в секундах. Если значение установлено в 0, чтение сокета будет блокирующим и не будет иметь ограничения по времени. Значение по умолчанию составляет 60 секунд.

--cli-connect-timeout (целое число)

Максимальное время подключения сокета в секундах. Если значение установлено в 0, подключение сокета будет блокирующим и не будет иметь ограничения по времени. Значение по умолчанию составляет 60 секунд.

--cli-binary-format (строка)

Стиль форматирования, используемый для двоичных блоков. Формат по умолчанию — base64. Формат base64 ожидает, что двоичные блоки будут предоставлены как строка, закодированная в base64. Формат raw-in-base64-out сохраняет совместимость с поведением AWS CLI V1, и двоичные значения должны передаваться буквально. При предоставлении содержимого из файла, соответствующего двоичному блоку, fileb:// всегда будет обрабатываться как двоичный и будет использовать содержимое файла напрямую независимо от cli-binary-format настройки. При использовании file:// содержимое файла должно быть должным образом отформатировано для настроенного cli-binary-format.

  • base64
  • raw-in-base64-out

--no-cli-pager (булево)

Отключить кли-пейджер для вывода.

--cli-auto-prompt (булево)

Автоматически запрашивать параметры ввода CLI.

--no-cli-auto-prompt (булево)

Отключить автоматическое запроса параметров ввода CLI.

Вывод

DASHStreamingSessionURL -> (строка)

URL (содержащий токен сессии), который медиаплеер может использовать для получения манифеста MPEG-DASH.

© Copyright 2025, Amazon Web Services. Created using Sphinx.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API