Webcam capture (photo + video)

In-browser webcam source via openWebcamCapture()

One call opens a modal that previews the user's webcam, lets them snap a JPEG (mode: 'photo') or record a webm/mp4 clip (mode: 'video'), and resolves with a File ready to drop into the upload queue. No <input type="file"> round-trip, no third-party SDK, no server work.

First click prompts for camera permission. Press Esc in the modal to cancel.

JavaScript API
// Photo mode (default) — resolves with image/jpeg.
uploader.openWebcamCapture()
    .then(function (file) { uploader.addFile(file); });

// Video mode with mic + 60-second cap.
uploader.openWebcamCapture({
    mode: 'video',
    audio: true,
    maxDurationSec: 60,
    mimeType: 'video/webm;codecs=vp9,opus',  // optional
    fileName: 'demo-clip.webm'               // optional
}).then(function (file) { uploader.addFile(file); });
What ships
  • Modal overlay with live <video> preview, action buttons, and a status row that ticks the elapsed recording time.
  • Format negotiation via MediaRecorder.isTypeSupported — picks the best WebM / MP4 codec the browser supports.
  • Esc cancels and rejects with Error('cancelled') — easy to filter out of error logs.
  • All tracks stop automatically on close to release the camera light.
Pair with the image editor

Webcam → image editor → upload is a single Promise chain:

uploader.openWebcamCapture({ mode: 'photo' })
    .then(function (file) { return uploader.openImageEditor(file, { aspectRatio: 1 }); })
    .then(function (edited) { uploader.addFile(edited); });