javascript - 流利的ffmpeg progress.percent返回未定义

标签 javascript ffmpeg fluent-ffmpeg

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/

相关文章:

JavaScript setTimeout 在某些对象类型上运行良好,而在其他对象类型上则不然?

ffmpeg - 如何将PNG透明背景转换为JPG白色背景?

php - 如何使用 ffmpeg/php 在按钮单击时将 mp4 文件转换为 mp3?

c# - 流式视频(C#使用FFmpeg AutoGen)发送多个数据请求

ffmpeg 混合过滤器如何工作

javascript - 如何测试变量的定义方式? - 作为属性(property)或值(value)

javascript - 使用 Javascript 将数据存储到本地存储

javascript - 使用ajax(jQuery mobile)用php刷新文本文件

ffmpeg - fluent-ffmpeg 如何使视频渲染与代码同步?

javascript - NodeJS - 寻找更快的方法来创建 FFMPEG 缩略图