Extracts frames from a video using fluent-ffmpeg.
Install
npm install --save ffmpeg-extract-frames
yarn add ffmpeg-extract-frames
Usage
const extractFrames = require('ffmpeg-extract-frames')
await extractFrames({
input: 'media/1.mp4',
output: './screenshot-%i.jpg',
offsets: [
1000,
2000,
3500
]
})
await extractFrames({
input: 'media/1.mp4',
output: './frame-%d.png'
})
API
Extracts 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.
options
input
Type: String
Required
Path or URL to a video file.
output
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.
offsets
Type: Array<Number>
Array of seek offsets to take the screenshot from in milliseconds.
timestamps
Type: Array<Number|String>
Same as fluent-ffmpeg's screenshots.timestamps.
fps
Type: Number
Frames per second to output.
numFrames
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.
log
Type: Function
Default: noop
Optional function to log the underlying ffmpeg command (like console.log
).
ffmpegPath
Type: String
Specify a path for the ffmpeg binary.
Related
License
MIT © Travis Fischer