Works in the browser with browserify! This module is used by WebTorrent Desktop.
npm install capture-frame
const captureFrame = require('capture-frame')
const buf = captureFrame('.video') // Buffer that contains .png file data
// show the captured video frame in the DOM
const image = document.createElement('img')
image.src = window.URL.createObjectURL(new window.Blob([buf]))
document.body.appendChild(image)
const captureFrame = require('capture-frame')
const video = document.createElement('video')
video.addEventListener('canplay', onCanPlay)
video.volume = 0
video.setAttribute('crossOrigin', 'anonymous') // optional, when cross-domain
video.src = `http://example.com/test.webm`
video.play()
function onCanPlay () {
video.removeEventListener('canplay', onCanPlay)
video.addEventListener('seeked', onSeeked)
video.currentTime = 2 // seek 2 seconds into the video
}
function onSeeked () {
video.removeEventListener('seeked', onSeeked)
const buf = captureFrame(video)
// unload video element, to prevent memory leaks
video.pause()
video.src = ''
video.load()
// show the captured image in the DOM
const image = document.createElement('img')
image.src = window.URL.createObjectURL(new window.Blob([buf]))
document.body.appendChild(image)
}
Capture a video frame the the video tag specified by video
. This can be a
reference to a video element in the page, or a string CSS selector. This must
refer to a video element.
Optionally, specify a format
for the image to be captured in. Must be one of
"png", "jpg", or "webp".
MIT. Copyright (c) Feross Aboukhadijeh.