Spec-Zone.ru › Web APIs

RTCEncodedVideoFrame: метод getMetadata()

Примечание: Эта функция доступна в Посвященных веб-воркерах.

Метод getMetadata() интерфейса RTCEncodedVideoFrame возвращает объект, содержащий метаданные, связанные с кадром.

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

Синтаксис

getMetadata()

Параметры

Нет.

Возвращаемое значение

Объект со следующими свойствами:

frameId

Положительное целое число, указывающее идентификатор этого кадра.

dependencies

Array положительных целых чисел, указывающих frameIds кадров, от которых зависит этот кадр. Для ключевого кадра он будет пустым, так как ключевой кадр содержит всю необходимую информацию для построения изображения. Для дельта-кадра он будет содержать список всех кадров, необходимых для отрисовки этого кадра. Тип кадра можно определить, используя RTCEncodedVideoFrame.type.

width

Положительное целое число, указывающее ширину кадра. Максимальное значение — 65535.

height

Положительное целое число, указывающее высоту кадра. Максимальное значение — 65535.

spatialIndex

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

temporalIndex

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

synchronizationSource

Положительное целое число, указывающее источник синхронизации («ssrc») потока пакетов RTP, описываемых этим закодированным видеокадром. Источником может быть, например, камера, микрофон или приложение-микшер, объединяющее несколько источников. Все пакеты от одного источника используют один и тот же источник времени и пространство последовательности, поэтому их можно упорядочить относительно друг друга. Обратите внимание, что два кадра с одинаковым значением относятся к одному источнику (подробнее см. RTCInboundRtpStreamStats.ssrc).

payloadType

Положительное целое число в диапазоне от 0 до 127, описывающее формат RTP-нагрузки. Сопоставление значений с форматами определено в RFC3550.

contributingSources

Array источников (ssrc), которые внесли свой вклад в кадр. Рассмотрим случай приложения для конференций, которое объединяет аудио и видео от нескольких пользователей. synchronizationSource будет содержать ssrc приложения, а contributingSources — значения ssrc всех отдельных источников видео и аудио.

timestamp

Временная метка представления медиа (PTS) в микросекундах исходного кадра, соответствующая временной метке исходных кадров, соответствующих этому кадру. Используется для синхронизации отдельных потоков видео, аудио, субтитров и других потоков, относящихся к одному представлению.

Примеры

Этот пример реализации преобразования закодированных данных WebRTC демонстрирует, как получить метаданные кадра в функции transform() и вывести их в журнал.

addEventListener("rtctransform", (event) => {
  const async transform = new TransformStream({
    async transform(encodedFrame, controller) {

      // Get the metadata and log
      const frameMetaData = encodedFrame.getMetadata();
      console.log(frameMetaData)

      // Enqueue the frame without modifying
      controller.enqueue(encodedFrame);
    },
  });
  event.transformer.readable
    .pipeThrough(transform)
    .pipeTo(event.transformer.writable);
});

Результат для локальной веб-камеры может выглядеть так, как показано ниже. Обратите внимание, что источников нет, так как всего один источник.

{
  "contributingSources": [],
  "dependencies": [
    405
  ],
  "frameId": 406,
  "height": 480,
  "payloadType": 120,
  "spatialIndex": 0,
  "synchronizationSource": 3956716931,
  "temporalIndex": 0,
  "width": 640
}

Спецификации

Спецификация
Преобразование закодированных данных WebRTC
# dom-rtcencodedvideoframe-getmetadata

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
getMetadata 86 86 117 72 15.4 86 117 61 15.4 14.0 86

См. также

  • Использование преобразований закодированных данных WebRTC

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCEncodedVideoFrame/getMetadata

Spec-Zone.ru

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