VideoFrame
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает во всех широко используемых браузерах.
Примечание: Эта функция доступна в Посвященных веб-воркерах.
Интерфейс VideoFrame из API Web Codecs представляет собой кадр видео.
VideoFrame — это передаваемый объект.
Описание
Объект VideoFrame может быть создан или получен несколькими способами. MediaStreamTrackProcessor разбивает медиапоток на отдельные объекты VideoFrame.
VideoFrame — это источник изображения и имеет конструктор, который принимает любой другой источник холста (элемент SVGImageElement, HTMLVideoElement, HTMLCanvasElement, ImageBitmap, OffscreenCanvas или другой VideoFrame). Это означает, что кадр может быть создан из элемента изображения или видео.
Второй конструктор позволяет создать VideoFrame из его бинарного представления пикселей в ArrayBuffer, TypedArray или DataView.
Созданные кадры могут быть преобразованы в медиапоток, например, с помощью интерфейса MediaStreamTrackGenerator, который создает медиапоток из потока кадров.
Конструктор
VideoFrame()-
Создаёт новый объект
VideoFrame.
Свойства экземпляра
-
VideoFrame.formatТолько для чтения -
Возвращает формат пикселей
VideoFrame. -
VideoFrame.codedWidthТолько для чтения -
Возвращает ширину
VideoFrameв пикселях, потенциально включая невидимые отступы, до применения потенциальных корректировок соотношения сторон. -
VideoFrame.codedHeightТолько для чтения -
Возвращает высоту
VideoFrameв пикселях, потенциально включая невидимые отступы, до применения потенциальных корректировок соотношения сторон. -
VideoFrame.codedRectТолько для чтения -
Возвращает
DOMRectReadOnlyс шириной и высотой, соответствующимиcodedWidthиcodedHeight. -
VideoFrame.visibleRectТолько для чтения -
Возвращает
DOMRectReadOnly, описывающий видимый прямоугольник пикселей для этогоVideoFrame. -
VideoFrame.displayWidthТолько для чтения -
Возвращает ширину
VideoFrameпри отображении после применения корректировок соотношения сторон. -
VideoFrame.displayHeightТолько для чтения -
Возвращает высоту
VideoFrameпри отображении после применения корректировок соотношения сторон. -
VideoFrame.durationТолько для чтения -
Возвращает целое число, указывающее длительность видео в микросекундах.
-
VideoFrame.timestampТолько для чтения -
Возвращает целое число, указывающее временную метку видео в микросекундах.
-
VideoFrame.colorSpaceТолько для чтения -
Возвращает объект
VideoColorSpace.
Методы экземпляра
VideoFrame.allocationSize()-
Возвращает количество байтов, необходимое для хранения
VideoFrame, отфильтрованное параметрами, переданными в метод. VideoFrame.copyTo()-
Копирует содержимое
VideoFrameвArrayBuffer. VideoFrame.clone()-
Создаёт новый объект
VideoFrameсо ссылкой на тот же медиаресурс, что и оригинал. VideoFrame.close()-
Очищает все состояния и освобождает ссылку на медиаресурс.
Примеры
В следующем примере кадры возвращаются из MediaStreamTrackProcessor, а затем кодируются. Полный пример и дополнительная информация приведены в статье Обработка видео с помощью WebCodecs.
let frame_counter = 0;
const track = stream.getVideoTracks()[0];
const media_processor = new MediaStreamTrackProcessor(track);
const reader = media_processor.readable.getReader();
while (true) {
const result = await reader.read();
if (result.done) break;
let frame = result.value;
if (encoder.encodeQueueSize > 2) {
// Too many frames in flight, encoder is overwhelmed
// let's drop this frame.
frame.close();
} else {
frame_counter++;
const insert_keyframe = frame_counter % 150 === 0;
encoder.encode(frame, { keyFrame: insert_keyframe });
frame.close();
}
}
Спецификации
| Спецификация |
|---|
| WebCodecs # videoframe-interface |
Совместимость с браузерами
| Рабочий стол | Мобильное устройство | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
VideoFrame |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
VideoFrame |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
allocationSize |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
clone |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
close |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
codedHeight |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
codedRect |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
codedWidth |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
colorSpace |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
copyTo |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
displayHeight |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
displayWidth |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
duration |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
format |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
timestamp |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
visibleRect |
94 | 94 | 130 | 80 | 16.4 | 94 | Нет | 66 | 16.4 | 17.0 | 94 |
См. также
© 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/VideoFrame