VideoTrackGenerator
Khả dụng hạn chế
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()Thử nghiệm-
Tạo một đối tượng
VideoTrackGeneratormới chấp nhận các đối tượngVideoFrame.
Thuộc tính phiên bản
VideoTrackGenerator.mutedThử nghiệm-
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.trackThử nghiệm-
MediaStreamTrackđầu ra. VideoTrackGenerator.writableThử nghiệm-
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 VideoTrackGenerator mà MediaStreamTrack 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.
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:
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
| Thông số kỹ thuật |
|---|
| MediaStreamTrack Insertable Media Processing using Streams> # videotrackgenerator> |