#javascript #node.js #ffmpeg #video-processing
Вопрос:
Используя видео-шоу npm, я создаю видео из нескольких изображений. сначала возникла проблема, но затем я отключил и установил ffmpeg. Теперь произошла еще одна ошибка.Заранее спасибо всем. это мой код.
//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
})
Ошибка в том, что
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-PracticeNodees6video-editorNewVideoEditornode_modulesfluent-ffmpeglibprocessor.js:182:22)
Ответ №1:
This issue is due to images sizes. Resize all images first then try again
use this below code
use this code for all images of video.
const image = await Jimp.read(path);
image.resize(ResizeImageWidth , ResizeImageHeight )
.write(outputImagepath);