MediaStreamTrackGenerator - Web APIs | MDN

Constructor

MediaStreamTrackGenerator() Experimental Non-standard

Creates a new MediaStreamTrackGenerator object which accepts either VideoFrame or AudioData objects.

Instance properties

This interface also inherits properties from MediaStreamTrack.

MediaStreamTrackGenerator.writable Experimental Non-standard

A WritableStream.

Instance methods

This interface doesn't implement any specific methods, but inherits methods from MediaStreamTrack.

Examples

The following example is from the article Insertable streams for MediaStreamTrack, and demonstrates a barcode scanner application, which process barcodes and highlights them before writing the transformed frames to the writable stream of MediaStreamTrackGenerator.writable.

js

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);

See also

Specifications

This feature does not appear to be defined in any specification.

Browser compatibility

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.