docs.rodeo

MDN Web Docs mirror

HTMLMediaElement: captureStream() method

{{APIRef("Media Capture and Streams")}} 

The captureStream() method of the {{domxref("HTMLMediaElement")}}  interface returns a {{domxref('MediaStream')}}  object which is streaming a real-time capture of the content being rendered in the media element.

This can be used, for example, as a source for a WebRTC {{domxref("RTCPeerConnection")}} .

Syntax

captureStream()

Parameters

None.

Return value

A {{domxref('MediaStream')}}  object which can be used as a source for audio and/or video data by other media processing code, or as a source for WebRTC.

Examples

In this example, an event handler is established so that clicking a button starts capturing the contents of a media element with the ID "playback" into a {{domxref("MediaStream")}} . The stream can then be used for other purposes—like a source for streaming over WebRTC, to allow sharing prerecorded videos with another person during a video call.

document.querySelector(".playAndRecord").addEventListener("click", () => {
  const playbackElement = document.getElementById("playback");
  const captureStream = playbackElement.captureStream();
  playbackElement.play();
});

See Recording a media element for a longer and more intricate example and explanation.

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

Firefox-specific notes

Prior to Firefox 51, you couldn’t use captureStream() on a media element whose source is, itself, a {{domxref("MediaStream")}}  (like a {{HTMLElement("video")}}  element which is presenting a stream being received over a {{domxref("RTCPeerConnection")}} ). Beginning in Firefox 51, this works. This means you can capture a stream from the video element and use {{domxref("MediaRecorder")}}  to record it. See Firefox bug 1259788 for details.

However, captureStream() is still prefixed as mozCaptureStream() on Firefox for good reason: there are some quirks in the present implementation which are worth noting:

See also

In this article

View on MDN