PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchnavigator.mediaDevices.getDisplayMedia() lets a user choose a browser tab, window, or monitor and gives your page a live MediaStream of that surface. It does not directly create one tall, stitched screenshot of an entire scrollable web document. That distinction matters: use this API for screen sharing, previews, recording, or WebRTC transmission; use a document-oriented screenshot workflow when you need one image containing content below the viewport.
This guide shows the correct browser implementation, explains permissions and options, handles audio and errors, and then provides a one-call alternative for generating clean page screenshots.
What getDisplayMedia actually captures
The MediaDevices.getDisplayMedia() API asks the user to select a display surface. Depending on the browser and operating system, the picker can offer a browser tab, a window, or an entire monitor. The returned object is a live MediaStream, normally containing a video track and optionally an audio track.
A selected browser tab is still a view of that tab. The API does not scroll through the document, stitch multiple viewport images, or return an abstract DOM snapshot. Therefore, a request such as “capture the full web page” has two possible meanings:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →#1 Best Overall
- 【1080P 60FPS Video Capture Card】 This HDMI game capture card is based on USB3.0 high speed transmission port, input resolution up to 4K@30HZ, output resolution up to 2K@30Hz or 1920×1080@60Hz. Type c and USB interface can meet most of the devices in daily life. Easily meet the online capture, real-time recording, online meetings, live gaming and other functions, so you have a better visual enjoyment. Note: For capture use only; requires capture software to function and is not intended for direct screen casting to a monitor or TV
- 【Ultra Low Latency Screen Sharing】 HDMI capture card is made of good quality aluminum alloy with strong heat dissipation, allowing you to enjoy ultra low latency while live gaming or video recording or live streaming, avoiding blue screens and lag. This HDMI to USBC capture card supports easy recording of good quality audio or HD video and transferring it to your computer or streaming platform, allowing you to record 60 fps HD video directly on your hard drive and real-time preview
- 【Plug and Play, Easy to Carry】 This HDMI 1080P video capture card does not require any additional drivers or external power supply, just plug and play for fast capture. The capture card is small and lightweight, so you can put it in your bag for emergencies, making it very portable for outdoor live streaming. It's also a great way to share content in game recording, video conference, video recorder and online teaching
- 【Wide Compatibility USB Capture Card】 Easily streams to Facebook, Youtube or Twitch. With the connection, this HDMI to USB C/3.0 video capture devices can be working on several Operating Systems and various software: Windows 7/ 8/ 10, Mac OS or above, Linux, Android, Laptop, Xbox One, PS3/PS4/PS5, Camera, DVDs, Set Top Box, Webcame, DSLR, Switch/Switch 2, TV BOX, HDTV, Potplayer/VLC, ZOOM, OBS Studio etc.
- 【Package Content & Note】 1x HD Audio Capture Card , 1x USB 3.0 to USB C Adapter (A-side 3.0, B-side 2.0), 1x user manual. Please note that you need to restart the OBS Studio software after the audio setup is complete, otherwise it will result in no sound output. When using an adapter, if the device is recognized as USB 2.0, try using the other side with the USB-C port. Simply flip the capture card and reconnect it to be recognized as USB 3.0
- Capture the displayed surface over time: use
getDisplayMedia(), then preview, record, or transmit the stream. - Create one tall image of the complete document: this API is not documented as a one-call solution for that job. You need a separate screenshot process that can render and assemble the page.
The browser always keeps the source decision and consent with the user. Your code can provide hints, but it cannot silently select a particular tab or monitor.
Requirements before calling the API
- Run in a secure context (normally HTTPS; localhost is commonly treated as secure for development).
- Start the call from a transient user activation, such as a button’s
clickhandler. Do not defer it until a timer, promise chain, or unrelated callback after the activation has expired. - Use a focused, active browsing context and a browser that implements the Screen Capture API.
- If the page is embedded, verify that the frame is allowed to use display capture through Permissions Policy (the
display-capturepolicy can be relevant). - Explain to users that notifications, other windows, and confidential data visible on the selected surface may be included.
MDN currently labels this API “Limited availability” and not Baseline, so test every browser and operating-system combination you support rather than assuming identical behavior on desktop and mobile.
Minimal implementation: preview a selected surface
Put a video element and controls in your page:
<button id="start" type="button">Start capture</button>
<button id="stop" type="button" disabled>Stop</button>
<video id="preview" autoplay playsinline muted></video>
<p id="status" role="status"></p>
<script type="module">
const startButton = document.querySelector('#start');
const stopButton = document.querySelector('#stop');
const video = document.querySelector('#preview');
const status = document.querySelector('#status');
let stream;
startButton.addEventListener('click', async () => {
try {
status.textContent = 'Choose a tab, window, or screen in the browser picker.';
stream = await navigator.mediaDevices.getDisplayMedia({
video: true,
audio: false
});
video.srcObject = stream;
stopButton.disabled = false;
startButton.disabled = true;
status.textContent = 'Capture is active.';
stream.getVideoTracks()[0]?.addEventListener('ended', stopCapture);
} catch (error) {
status.textContent = `${error.name}: ${error.message || 'Capture failed.'}`;
console.error(error);
}
});
stopButton.addEventListener('click', stopCapture);
function stopCapture() {
stream?.getTracks().forEach(track => track.stop());
stream = undefined;
video.srcObject = null;
stopButton.disabled = true;
startButton.disabled = false;
status.textContent = 'Capture stopped.';
}
</script>
The promise resolves only after the user chooses a source and grants access. Assigning the stream to a <video> element gives a live preview. The ended listener handles the user stopping capture from the browser’s own sharing indicator. Always stop every track when finished; otherwise the capture can remain active and the browser may continue showing a sharing indicator.
Rank #2
- AV TO USB Converter: Capture videos and audios from VHS, VCR, Hi8, DV tapes to a PC, with the help of our USB Video Converter. Save room while digitizing your favorite old memories
- Quality Capture Card: Our USB Video Capture Card converting anolog RCA composite input into HD 720P USB output and capturing audio without any sound card. Advanced signal processing technology provides you with great precision, colors, resolutions, and details.
- Plug and Play: Automatically install the driver once you hook up this RCA to USB Converter to a PC. No external power is needed. User-friendly and easy to operate
- Wide Compatibility: The Video Capture Card can work with video devices with RCA connector or S-Video connector, such as VHS, VCR, Hi8, camcorder, compatible with Windows and Mac OS. Support video formats like NTSC, PAL, and support brightness, contrast, hue, and saturation control
- Note: The Video Converter is used with acquisition software. We recommend OBS Studio or PotPlayer for Windows, and QuickTime Player for Mac. They can be downloaded for free online. Please operate according to the steps in User Manual or contact us if you have any questions
Recording the stream to a video file
getDisplayMedia() supplies media; MediaRecorder can encode it. Codec support differs, so select a MIME type the browser reports as supported.
Free tools Windows power users keep installed
One-click scans. No signup required.
let recorder;
let chunks = [];
function startRecording(stream) {
const preferred = 'video/webm;codecs=vp9,opus';
const mimeType = MediaRecorder.isTypeSupported(preferred)
? preferred
: 'video/webm';
chunks = [];
recorder = new MediaRecorder(stream, { mimeType });
recorder.addEventListener('dataavailable', event => {
if (event.data.size) chunks.push(event.data);
});
recorder.addEventListener('stop', () => {
const blob = new Blob(chunks, { type: recorder.mimeType });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'screen-capture.webm';
link.click();
URL.revokeObjectURL(url);
});
recorder.start();
}
function stopRecording() {
if (recorder?.state !== 'inactive') recorder.stop();
}
Call startRecording(stream) after the capture promise resolves. Stop the recorder before stopping tracks if you want the final data event reliably delivered.
Requesting audio without assuming it exists
Audio is optional and browser-dependent. Requesting audio: true permits an audio track when the browser offers one for the chosen surface; it does not guarantee one. The user may select a tab or system source for which audio is unavailable, and the resulting stream may contain video only.
Rank #3
- 【4K HDMI Input, 2K@30Hz Recording】Powered by a true USB 3.0 high-speed interface, the capture card supports up to 4K@30Hz HDMI input and records at 2K@30Hz or 1080P@60Hz. Perfect for gamers, streamers, and professionals who need crisp, smooth video for live streaming, gameplay recording, or online meetings.
- 【Ultra Low Latency Screen Sharing】Built with a premium aluminum alloy shell and advanced chipset for stable heat dissipation, ensuring ultra-low latency transmission. Capture high-quality video and dual-channel audio in real time—no lag, no frame drop—ideal for Twitch, YouTube, or OBS streaming.
- 【Easy Plug and Play, Compact & Portable】No driver or external power required—just plug and play via USB 3.0 or Type-C connection to your Windows or macOS computer. Lightweight and compact design makes it easy to carry for outdoor streaming, live shows, or mobile recording setups.
- 【Wide Compatibility & Multi-Device Support】Compatible with Windows 7 8 10 11, macOS, Linux,Android and supports most popular software such as OBS, Zoom, VLC, Twitch Studio, and more. Works seamlessly with PS4, PS5, Xbox, Switch, DSLR cameras, TV boxes, and other HDMI-output devices for streaming to YouTube, Twitch, etc.
- 【What You Get】Includes: HDMI Capture Card, USB 3.0 to USB-C Adapter, User Manual. Tips: Make sure your tablet’s OTG function is enabled before connecting. Test your HDMI device with a monitor first to confirm video and audio output, then connect to the Video Capture Card for recording.
const stream = await navigator.mediaDevices.getDisplayMedia({
video: true,
audio: true,
systemAudio: 'include',
windowAudio: 'window'
});
const videoTracks = stream.getVideoTracks();
const audioTracks = stream.getAudioTracks();
console.log({ videoTracks: videoTracks.length, audioTracks: audioTracks.length });
systemAudio and windowAudio are hints whose support and defaults vary. Inspect getAudioTracks() and design your UI for the no-audio case.
Options, hints, and constraints
The video member is required in practice: it defaults to true, while video: false causes a TypeError. audio defaults to false. Other commonly encountered options include:
| Option | Purpose | Important limitation |
|---|---|---|
preferCurrentTab |
Hints that the current tab should be prominent in the picker. | Does not select the tab automatically. |
selfBrowserSurface |
Hints whether the current tab may be offered. | Browser support and defaults differ. |
monitorTypeSurfaces |
Hints whether monitor surfaces are offered. | Cannot override the user’s choice. |
systemAudio, windowAudio |
Request audio choices associated with a surface. | An audio track is not guaranteed. |
surfaceSwitching |
Hints whether the user can switch surfaces during sharing. | Availability is browser-dependent. |
Apply constraints after selection, for example with track.applyConstraints(). Constraints configure the selected track; they do not narrow the picker or bypass consent. In particular, do not use min or exact constraints in the initial display-capture request where the browser rejects them.
Rank #4
- [Enhanced 4K-1080P Video Capture Experience] Capture the Magic: Elevate your video recordings to new heights with our upgraded anti-static 1080P Video Capture Card. Immerse yourself in stunning visuals, supporting HDMI input at 4K 60FPS and USB output for capturing in 1080P, complete with rich stereo sound. Enjoy crystal-clear video recordings, dynamic gaming live streams, and professional conference broadcasts. Note: HDMI resolution: Max input can be 3840×2160@30Hz / Video output resolution: Max output can be 1920×1080@30Hz
- [Seamless Real-Time Preview] Stay in the Moment: Our advanced ultra-low latency technology ensures seamless real-time transmission of video streams. Experience instant, lag-free previews, allowing you to capture every detail precisely. Effortlessly record video directly to your hard disk, all without compromising on quality or introducing any delays.
- [Versatility and Broad Compatibility] Your Creative Hub: Connect your DSLR, camcorder, or action camera to a wide range of operating systems, including Windows, MacOS, and Linux. Unlock a world of possibilities with real-time streaming to popular platforms like Twitch, Youtube, OBS, Zoom, Potplayer, and VLC, giving you the tools to share your content effortlessly.
- [Effortless Plug and Play] Simplicity Redefined: Say goodbye to complex installations. Our plug-and-play design eliminates the need for drivers or external power supplies. Seamlessly integrate high-definition acquisition into various scenarios, whether it's educational recordings, immersive gaming, precise medical imaging, captivating live streams, or professional broadcasting.
- [Seize Every Detail with Precision] Unleash your creativity and attention to detail with our video capture card. Capture every nuance, every color, and every moment with precision, thanks to the enhanced capabilities of our technology. Whether you're a content creator, a gamer, or a professional, our capture card empowers you to seize the finest elements and bring them to life in your recordings and live streams.
Security, privacy, and lifecycle
Every request displays browser-controlled permission UI; permission is not a permanent, silent grant that your site can reuse indefinitely. Make the selected source obvious and provide a visible stop control. Consider pausing or stopping capture when your application no longer needs it.
Because capture records pixels, not just your page’s DOM, a user can accidentally expose password managers, notifications, private messages, or another application’s window. Warn before capture and avoid recording more than necessary. In an iframe, configure the appropriate Permissions Policy and test the actual embedding setup.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Common errors and fixes
| Error | Likely cause | What to check |
|---|---|---|
InvalidStateError |
No transient user activation, an inactive or unfocused context, or a reused CaptureController. |
Call directly from a user event, focus the page, and create a fresh controller. |
NotAllowedError |
The user denied capture or the context is not permitted. | Use HTTPS, check iframe policy, and ask the user to choose Allow. |
NotFoundError |
No screen-video source is available. | Check operating-system permissions and available surfaces. |
NotReadableError |
An operating-system or hardware failure occurred after selection. | Close conflicting capture software and retry. |
OverconstrainedError |
Requested constraints cannot be applied to the selected source. | Remove restrictive values and inspect the track’s capabilities. |
TypeError |
Invalid options, such as video: false or unsupported min/exact constraints. |
Keep video enabled and use compatible hint/constraint values. |
These names are diagnostic guidance, not an exhaustive list of browser-specific failures. Log error.name and test the target browser rather than showing a generic message for every failure.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Best Value
- 【1080P HD High Quality】Capture resolution up to 1080p for video source and it is ideal for all HDMI devices such as PS4, PS3, Xbox One, Xbox 360, Wii U, DVDs, DSLR, Camera, Security Camera and set top box. Note: Video input supports 4K30/60Hz and 1080p120/144Hz. Does not support 4K120Hz/144Hz. Output supports up to 2K30Hz.
- 【Plug and Play】No driver or external power supply required, true PnP. Once plugged in, the device is identified automatically as a webcam. Detect input and adjust output automatically. Won't occupy CPU, optional audio capture. No freeze with correct setting.
- 【Compatible with Multiple Systems】suitable for Windows and Mac OS. High speed USB 3.0 technology and superior low latency technology makes it easier for you to transmit live streaming to Twitch, Youtube, Facebook, Twitter, OBS, Potplayer and VLC.
- 【HDMI LOOP-OUT】Based on the high-speed USB 3.0 technology, it can capture one single channel HD HDMI video signal. There is no delay when you are playing game live.
- 【Support Mic-in for Commentary】Rybozen capture card has microphone input and you can use it to add external commentary when playing a game. Please note: it only accepts 3.5mm TRS standard microphone headset.
Why this is not a full-document screenshot API
A stream has frame dimensions and changes over time; it does not contain the page’s off-screen layout as one image. Scrolling the selected tab and grabbing frames would be an application-level process with problems such as sticky headers, lazy-loaded images, changing content, and duplicate or missing regions. The API documentation cited here does not define a built-in full-page stitching operation.
If your requirement is a single PNG, JPEG, WebP, or PDF of the complete page, use a service or browser automation workflow designed to render the document, wait for content, and capture beyond the viewport.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. One GET request returns a PNG, JPEG, WebP, or PDF and can handle full-page rendering without asking an end user to pick a display surface.
cURL:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
Python:
import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)
Node.js:
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
See the ScreenshotNeo API documentation for authentication and parameters. It removes cookie-consent banners, newsletter popups, and chat widgets before capture; bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, with the result identified by X-Page-Verdict and X-Billed headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. Features include full-page lazy-image loading, CSS-selector element capture, device presets, custom CSS and JavaScript, waits, request blocking, cookies and headers, geolocation, PDF controls, signed links, asynchronous webhooks, bulk capture, caching, and a usage API.
Recommended Free Tools
The Free plan includes 1,000 screenshots a month with no card. Paid plans start at $5 for 3,000 screenshots; every feature is available on every plan. Create a free ScreenshotNeo account.
Practical checklist
- Decide whether you need a live surface stream or one complete document image.
- Serve the page from a secure context and call the API directly from a user action.
- Keep
video: true; request audio only when needed. - Explain what the user might expose and provide a clear stop control.
- Inspect returned tracks instead of assuming audio or a particular resolution.
- Stop all tracks when capture ends and handle the browser’s
endedevent. - Test browser, operating-system, iframe, and audio behavior for your supported targets.
Frequently Asked Questions
Does getDisplayMedia require the user to choose a source every time?
Yes. The browser presents its source picker and consent flow for each capture request; a site cannot silently reuse a prior approval to select a surface.
Can I capture only one element with getDisplayMedia?
The API selects display surfaces, not DOM elements. Element-level output requires a separate rendering or screenshot technique.
Is audio guaranteed when I set audio to true?
No. Audio availability depends on the browser, operating system, and selected surface. Check the returned stream’s audio tracks.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteQuick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

