web api interface
MediaStreamTrackGenerator
Limited availability
[!NOTE] Consider using
VideoTrackGeneratorinstead.
The MediaStreamTrackGenerator interface of the Insertable Streams for MediaStreamTrack API creates a WritableStream that acts as a MediaStreamTrack source.
The object consumes a stream of media frames as input, which can be audio or video frames.
Constructor
MediaStreamTrackGenerator()Experimental- : Creates a new
MediaStreamTrackGeneratorobject which accepts eitherVideoFrameorAudioDataobjects.
- : Creates a new
Instance properties
This interface also inherits properties from MediaStreamTrack.
writableExperimental- : A
WritableStream.
- : A
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 writable.
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
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.