ffmpeg-on-progress-ts
v1.0.1
Published
Utility for robustly reporting progress with fluent-ffmpeg.
Downloads
8
Maintainers
Readme
ffmpeg-on-progress
Utility for robustly reporting ffmpeg command progress with fluent-ffmpeg.
Some ffmpeg commands aren't capable fo producing progress events, such as when the input is a stream or when using multiple inputs. This simple utility allows you to accurately report progress in these cases by looking at the number of frames ffmpeg has processed with the caveat that you need to know the expected output's duration ahead of time.
In cases where fluent-ffmpeg produces a valid progress event, this module is a noop.
Install
npm install --save ffmpeg-on-progress-ts
# or
yarn add ffmpeg-on-progress-ts
Usage
import ffmpeg from 'fluent-ffmpeg'
import ffmpegOnProgress from 'ffmpeg-on-progress-ts'
import type { ProgressFunction } from 'ffmpeg-on-progress-ts'
const logProgress: ProgressFunction = (progress, event) => {
// progress is a floating point number from 0 to 1
console.log('progress', (progress * 100).toFixed())
}
// estimated duration of output in milliseconds
const durationEstimate = 4000
const cmd = ffmpeg('input.avi')
.output('output.mp4')
.on('progress', ffmpegOnProgress(logProgress, durationEstimate))
.run()
Related
- ffmpeg-on-progress - The JS version
- fluent-ffmpeg
- awesome-ffmpeg - A curated list of awesome ffmpeg resources with a focus on JavaScript.