ffmpeg 仅将 41.25% 的图像转换为视频
ffmpeg only converting 41.25% of my images to video
我正在使用 ffmpeg 将图像列表转换为延时视频。当我 运行 来自命令行的命令时,它的工作非常漂亮。
ffmpeg -r 3 -i /var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%03d.jpg -s hd1080 -vcodec libx264 timelapse.mp4
当我使用 nodejs 库 fluent-ffmpeg 时出现问题。
app.get('/api/get', function (req, res) {// return new Promise((resolve, reject) => {
ffmpeg('/var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%03d.jpg')
.noAudio()
.inputOption('-r 3')
.outputOptions([
'-r', '3',
'-s', 'hd1080'
]).
.videoCodec('libx264')
.on('progress', (progress) => {
console.log('Processing: ' + progress.percent + '% done');
})
.on('error', (err) => {
console.error('Error during processing', err);
// reject(err)
})
.on('end', () => {
console.log('Processing finished !');
// resolve()
})
.save('test.mp4', {end: true});
}
res.send(`I received your GET request.`);
});
编辑:现在在处理中给我一个处理过的视频:207.49999999999997% 完成
处理完毕!但不制作视频
我的图片是这样命名的 image1.jpg、image2.jpg、image3.jpg 等
当我直接在我的 cli 中 运行 命令时,它非常混乱。
有人 运行 之前遇到过这个问题,还是我只是用错了库?
您仅转换了 41.25% 的事实可能是由此处使用的模式类型引起的 image%d.jpg。使用 ffmpeg -r 3 -i /var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%d.jpg -s hd1080 -vcodec libx264 timelapse.mp4
时,您必须有一系列图像,例如:
- 图片-1.png
- 图片-2.png
- 图片-3.png
- 图片-4.png
在图像-9.png之后图像-4.png。视频结束于 image-4.png。所以你在这里有2个选择。确保所有文件名中的数字顺序正确或使用 glob 模式。
如果您正在寻找 glob 模式:
app.get('/api/get', function (req, res) {// return new Promise((resolve, reject) => {
ffmpeg('/var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image*.jpg')
.noAudio()
.outputOptions([
'-r', '3',
'-s', 'hd1080'
]).
.videoCodec('libx264')
.on('progress', (progress) => {
console.log('Processing: ' + progress.percent + '% done');
})
.on('error', (err) => {
console.error('Error during processing', err);
// reject(err)
})
.on('end', () => {
console.log('Processing finished !');
// resolve()
})
.save('test.mp4', {end: true});
}
res.send(`I received your GET request.`);
});
我正在使用 ffmpeg 将图像列表转换为延时视频。当我 运行 来自命令行的命令时,它的工作非常漂亮。
ffmpeg -r 3 -i /var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%03d.jpg -s hd1080 -vcodec libx264 timelapse.mp4
当我使用 nodejs 库 fluent-ffmpeg 时出现问题。
app.get('/api/get', function (req, res) {// return new Promise((resolve, reject) => {
ffmpeg('/var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%03d.jpg')
.noAudio()
.inputOption('-r 3')
.outputOptions([
'-r', '3',
'-s', 'hd1080'
]).
.videoCodec('libx264')
.on('progress', (progress) => {
console.log('Processing: ' + progress.percent + '% done');
})
.on('error', (err) => {
console.error('Error during processing', err);
// reject(err)
})
.on('end', () => {
console.log('Processing finished !');
// resolve()
})
.save('test.mp4', {end: true});
}
res.send(`I received your GET request.`);
});
编辑:现在在处理中给我一个处理过的视频:207.49999999999997% 完成 处理完毕!但不制作视频
我的图片是这样命名的 image1.jpg、image2.jpg、image3.jpg 等
当我直接在我的 cli 中 运行 命令时,它非常混乱。
有人 运行 之前遇到过这个问题,还是我只是用错了库?
您仅转换了 41.25% 的事实可能是由此处使用的模式类型引起的 image%d.jpg。使用 ffmpeg -r 3 -i /var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image%d.jpg -s hd1080 -vcodec libx264 timelapse.mp4
时,您必须有一系列图像,例如:
- 图片-1.png
- 图片-2.png
- 图片-3.png
- 图片-4.png
在图像-9.png之后图像-4.png。视频结束于 image-4.png。所以你在这里有2个选择。确保所有文件名中的数字顺序正确或使用 glob 模式。
如果您正在寻找 glob 模式:
app.get('/api/get', function (req, res) {// return new Promise((resolve, reject) => {
ffmpeg('/var/folders/qj/n910kwdj4gvbmy_z2ffc5lcc0000gp/T/tmp-22129yvIsrbso4TEu/image*.jpg')
.noAudio()
.outputOptions([
'-r', '3',
'-s', 'hd1080'
]).
.videoCodec('libx264')
.on('progress', (progress) => {
console.log('Processing: ' + progress.percent + '% done');
})
.on('error', (err) => {
console.error('Error during processing', err);
// reject(err)
})
.on('end', () => {
console.log('Processing finished !');
// resolve()
})
.save('test.mp4', {end: true});
}
res.send(`I received your GET request.`);
});