Non-standard: This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
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 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
.
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);
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
MediaStreamTrackGenerator |
94 |
94 |
No |
No |
80 |
No |
94 |
94 |
No |
66 |
No |
17.0 |
MediaStreamTrackGenerator |
94 |
94 |
No |
No |
80 |
No |
94 |
94 |
No |
66 |
No |
17.0 |
writable |
94 |
94 |
No |
No |
80 |
No |
94 |
94 |
No |
66 |
No |
17.0 |