VideoTrackGenerator

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is only available in Dedicated Web Workers.

Giao diện VideoTrackGenerator của Insertable Streams for MediaStreamTrack API có thuộc tính WritableStream hoạt động như một nguồn MediaStreamTrack, bằng cách tiêu thụ một luồng VideoFrame làm đầu vào.

Hàm khởi tạo

VideoTrackGenerator() Experimental

Tạo một đối tượng VideoTrackGenerator mới chấp nhận các đối tượng VideoFrame.

Thuộc tính phiên bản

VideoTrackGenerator.muted Experimental

Thuộc tính Boolean để tạm thời dừng hoặc tiếp tục tạo khung hình video trong track đầu ra.

VideoTrackGenerator.track Experimental

MediaStreamTrack đầu ra.

VideoTrackGenerator.writable Experimental

WritableStream đầu vào.

Ví dụ

Ví dụ sau đây từ bài viết Unbundling MediaStreamTrackProcessor and VideoTrackGenerator. Nó chuyển một camera MediaStreamTrack đến một worker để xử lý. Worker tạo một pipeline áp dụng bộ lọc tông màu sepia cho các khung hình video và phản chiếu chúng. Pipeline kết thúc trong VideoTrackGeneratorMediaStreamTrack của nó được chuyển trở lại và phát. Phương tiện giờ đây chảy theo thời gian thực thông qua biến đổi bên ngoài main thread.

js
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
const [track] = stream.getVideoTracks();
const worker = new Worker("worker.js");
worker.postMessage({ track }, [track]);
const { data } = await new Promise((r) => {
  worker.onmessage = r;
});
video.srcObject = new MediaStream([data.track]);

worker.js:

js
onmessage = async ({ data: { track } }) => {
  const vtg = new VideoTrackGenerator();
  self.postMessage({ track: vtg.track }, [vtg.track]);
  const { readable } = new MediaStreamTrackProcessor({ track });
  await readable
    .pipeThrough(new TransformStream({ transform }))
    .pipeTo(vtg.writable);
};

Thông số kỹ thuật

Specification
MediaStreamTrack Insertable Media Processing using Streams
# videotrackgenerator

Tương thích trình duyệt

Xem thêm