MediaStreamTrackProcessor
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Note: This feature is only available in Dedicated Web Workers.
Warning: Các trình duyệt khác nhau về ngữ cảnh toàn cục nào họ hiển thị giao diện này (ví dụ: chỉ window trong một số trình duyệt và chỉ dedicated worker trong các trình duyệt khác), khiến chúng không tương thích. Hãy lưu ý điều này khi so sánh hỗ trợ.
Giao diện MediaStreamTrackProcessor của Insertable Streams for MediaStreamTrack API tiêu thụ nguồn của đối tượng video MediaStreamTrack và tạo ra một luồng các đối tượng VideoFrame.
Hàm khởi tạo
MediaStreamTrackProcessor()-
Tạo một đối tượng
MediaStreamTrackProcessormới. window.MediaStreamTrackProcessor()Experimental Non-standard-
Tạo một đối tượng
MediaStreamTrackProcessormới trên main thread có thể xử lý cả video và âm thanh.
Thuộc tính phiên bản
MediaStreamTrackProcessor.readable-
Trả về một
ReadableStream.
Ví dụ
Ví dụ sau lấy từ bài viết Unbundling MediaStreamTrackProcessor and VideoTrackGenerator. Nó truyền MediaStreamTrack camera sang worker để xử lý. Worker tạo một pipeline áp dụng bộ lọc tông sepia cho các khung video và phản chiếu chúng. Pipeline kết thúc trong một VideoTrackGenerator có MediaStreamTrack được truyền lại và phát. Phương tiện hiện chảy theo thời gian thực qua quá trình 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
| Specification |
|---|
| MediaStreamTrack Insertable Media Processing using Streams> # mediastreamtrackprocessor> |
Tương thích trình duyệt
Xem thêm
VideoTrackGenerator- Insertable streams for MediaStreamTrack trên developer.chrome.com
Note: Bài viết này được viết trước khi API bị giới hạn chỉ cho worker và video. Hãy cẩn thận với việc sử dụng phiên bản không chuẩn của
MediaStreamTrackProcessortrong bài viết vì nó chặn trên main thread.