Search code examples
javascriptnode.jsffmpegvideo-processing

ffmpeg exited with code 1: Error reinitializing filters! Failed to inject frame into filter network: Invalid argument


Using video show npm I am creating a video from multiple images. initially there was an issue but then I download and installed ffmpeg.

Now another error occurs. Thanks to everyone in advance.

This is my code:

//create a video from multiple images 

var secondsToShowEachImage = 3
var finalVideoPath = '/outputImages/newvideo2.mp4'

// setup videoshow options
var videoOptions = {
  fps: 24,
  transition: false,
  videoBitrate: 1024 ,
  videoCodec: 'libx264', 
  size: '640x640',
  outputOptions: ['-pix_fmt yuv420p'],
  format: 'mp4' 
}
let path1= '/InputImages/abc.jpg';
let path2 = '/InputImages/xy.jpg'
let path3 = '/InputImages/ab.jpg'

// array of images to make the 'videoshow' from
var images = [
  {path: path1, loop: secondsToShowEachImage}, 
  {path: path2, loop: secondsToShowEachImage}
]
console.log('working --->')
 videoshow(images, videoOptions)
.save(finalVideoPath)
// console.log('hello world')
.on('start', function (command) { 

  console.log('encoding ' + finalVideoPath + ' with command ' + command) 
})
.on('error', function (err) {
   console.log('err' , err)
//   return Promise.reject(new Error(err)) 
})
.on('end', function (output) {
  // do stuff here when done
})

The error is

err Error: ffmpeg exited with code 1: Error reinitializing filters!
Failed to inject frame into filter network: Invalid argument
Error while processing the decoded data for stream #1:0
Conversion failed!

    at ChildProcess.<anonymous> (E:\Video-Editor-Practice\Nodees6video-editor\NewVideoEditor\node_modules\fluent-ffmpeg\lib\processor.js:182:22)

Solution

  • This issue is due to images sizes. Resize all images first then try again use this code for all images of video.

    const image = await Jimp.read(path);  
    image.resize(ResizeImageWidth , ResizeImageHeight )
    .write(outputImagepath);