Extracts frames from a video using fluent-ffmpeg.
npm install --save ffmpeg-extract-frames
# or
yarn add ffmpeg-extract-framesconst extractFrames = require('ffmpeg-extract-frames')
// extract 3 frames at 1s, 2s, and 3.5s respectively
await extractFrames({
input: 'media/1.mp4',
output: './screenshot-%i.jpg',
offsets: [
1000,
2000,
3500
]
})
// generated screenshots:
// ./screenshot-1.jpg
// ./screenshot-2.jpg
// ./screenshot-3.jpg// default behavior is to extract all frames
await extractFrames({
input: 'media/1.mp4',
output: './frame-%d.png'
})
// generated screenshots:
// ./frame-1.png
// ./frame-2.png
// ...
// ./frame-100.pngExtracts one or more frames from a video file. Returns a Promise for when all frames have been written.
There are several options for specifying which frames to extract, namely timestamps, offsets, fps, and numFrames. The default behavior if you don't specify any of these options is to extract all frames from the input.
Type: String
Required
Path or URL to a video file.
Type: String
Required
Output file pattern.
Note that for timestamps or offsets, the pattern should include a %i or %s (details).
For any other call, you should use the %d format specifier. I know this is confusing, but it's how fluent-ffmpeg works under the hood.
Type: Array<Number>
Array of seek offsets to take the screenshot from in milliseconds.
Type: Array<Number|String>
Same as fluent-ffmpeg's screenshots.timestamps.
Type: Number
Frames per second to output.
Type: Number
Output a specific number of frames. The input video's frames will be skipped such that only this number of frames are output.
Type: Function
Default: noop
Optional function to log the underlying ffmpeg command (like console.log).
Type: String
Specify a path for the ffmpeg binary.
- ffmpeg-extract-frame - Extracts a single frame from a video.
- ffmpeg-generate-video-preview - Generates an attractive image strip or GIF preview from a video.
- gif-extract-frames - Analogous module for extracting frames from GIF files.
- fluent-ffmpeg - A fluent API to FFmpeg.
- awesome-ffmpeg - A curated list of awesome ffmpeg resources with a focus on JavaScript.
MIT © Travis Fischer
Support my OSS work by following me on twitter