Потоки со вставкой для API MediaStreamTrack
API потоков со вставкой для MediaStreamTrack предоставляет метод добавления новых компонентов в MediaStreamTrack.
Концепции и использование
При обработке видео или аудио иногда необходимо вставлять дополнительные элементы или обрабатывать поток иными способами. Например, приложение может содержать две дорожки, которые нужно объединить, такие как карта погоды и видео с презентатором, объясняющим эту карту. Или вы можете обработать дорожку, чтобы размыть фоны, удалить фоновый шум или добавить другие элементы (например, добавить смешные шляпы людям и так далее). Этот API предоставляет способ сделать это, предоставляя прямой доступ к потоку, что позволяет его манипулировать.
Интерфейсы
MediaStreamTrackGenerator-
Создаёт
WritableStream, который выступает в роли источникаMediaStreamTrack. MediaStreamTrackProcessor-
Потребляет источник объекта
MediaStreamTrackи генерирует поток кадров медиа.
Примеры
Следующий пример взят из статьи Потоки со вставкой для MediaStreamTrack и демонстрирует приложение для сканирования штрих-кодов, которое выделяет штрих-код в потоке видео. Это преобразует доступ к потоку через MediaStreamTrackProcessor.readable.
const stream = await getUserMedia({ video: true });
const videoTrack = stream.getVideoTracks()[0];
const trackProcessor = new MediaStreamTrackProcessor({ track: videoTrack });
const trackGenerator = new MediaStreamTrackGenerator({ kind: "video" });
const transformer = new TransformStream({
async transform(videoFrame, controller) {
const barcodes = await detectBarcodes(videoFrame);
const newFrame = highlightBarcodes(videoFrame, barcodes);
videoFrame.close();
controller.enqueue(newFrame);
},
});
trackProcessor.readable
.pipeThrough(transformer)
.pipeTo(trackGenerator.writable);
© 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/Insertable_Streams_for_MediaStreamTrack_API