let ffmpeg = require("fluent-ffmpeg")
ffmpeg.setFfmpegPath(pathToFfmpeg)
var command = ffmpeg(file)
command.on('end', function() {
return console.log("done");
});
command.on('error', function(err) {
return console.log(err);
});
command.on('progress', function(progress) {
console.log('Processing: ' + progress.percent + '% done');
});
command.save(output+filename+sel);
它以某种方式返回处理:未定义完成百分比
处理:未定义完成百分比
处理:未定义完成百分比
为什么 ?我遵循了 fluent-ffmpeg 文档
最佳答案
(谷歌翻译)
似乎在某些情况下 ffmpeg 无法带来 percent 属性。
我也遇到了这个问题,没有找到任何帮助。然后解决方案是根据当前时间的总时间进行估计。
方程如下
(current time / total time) * 100
和这样的代码:let totalTime
ffmpeg('your_input_file_path')
.on('start', commandLine => {
// somenthing message for init process
})
.on('codecData', data => {
// HERE YOU GET THE TOTAL TIME
totalTime = parseInt(data.duration.replace(/:/g, ''))
})
.on('progress', progress => {
// HERE IS THE CURRENT TIME
const time = parseInt(progress.timemark.replace(/:/g, ''))
// AND HERE IS THE CALCULATION
const percent = (time / totalTime) * 100
console.log(percent)
})
.on('error', err => {
console.log(err)
})
.output('your_output_file_path')
.run()
关于javascript - 流利的ffmpeg progress.percent返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65457944/