node.js – Fluent FFMPEG trigger callback on JPEG output each frame

I’m trying to use Fluent FFMPEG in NodeJS to output a cropped frame from a video. I want to trigger an OCR call to Tesseract on every frame that is created. Is there a way in Fluent FFMPEG to listen to each file being created?

Ideally I would like to output each file to a buffer to skip saving it to disk and speed up the Tesseract calls. Any help would be much appreciated!

Here’s the code to generate the still frames:

console.time("Process time");
const ffmpeg = require('fluent-ffmpeg')

ffmpeg('test.mp4')
    .duration(1)
    .videoFilters([
        {
            filter: 'crop',
            options: '1540:1000:250:0'
        }
    ])
    .outputOptions('-q:v 2')
    .output('images/outimage_%03d.jpeg')
    .on('end', function() {
        console.log('Finished processing');
        console.timeEnd("Process time");
    })
    .run();

Read more here: Source link