如何获得具体的开始& Node JS在ffmpeg中的结束时间?

时间:2017-11-03 07:39:34

标签: javascript node.js video ffmpeg video-streaming

我想在特定的开始和视频中剪切视频结束时间&保存。我不明白如何通过Node JS缩短该视频的具体时间。

视频复制代码:

 return new Promise(function(resolve ,reject){
        var ffmpeg = require('fluent-ffmpeg');
        ffmpeg(fs.createReadStream(path.join(__dirname,'..','..','/video.mp4')))
            .seekInput('01:00')
            .duration('02:00')
            .outputOptions('-strict experimental')
            .on('start', function(commandLine) {
                console.log('Spawned Ffmpeg with command: ' + commandLine);
                }).on('end', function(err) {
                if (!err) {
                    console.log('conversion Done');
                    //res.send("conversion Done");
                    resolve();
                }
                }).on('error', function(err) {
                    console.log('error: ', +err);
                    reject(err);
                }).save(path.join(__dirname,'..','..','/test.mp4'));
    });

1 个答案:

答案 0 :(得分:1)

请检查以下步骤和示例代码,

  1. 在您的系统ffmpeg
  2. 上安装steps
  3. 在项目中安装模块fluent-ffmpeg
  4. 请查看以下示例代码

      function clipVideo() {
    
          var params = {
            input: 'input_file',
            start: 0,
            duration: 10,
            output: 'output_file'
          };
    
          return new Promise(function(resolve, reject) {
    
              ffmpeg(params.input)
                  .setStartTime(params.start)
                  .setDuration(params.duration)
                  .save(params.output)
                  .on('start', function(commandLine) {
                      console.log('start : ' + commandLine);
                  })
                  .on('progress', function(progress) {
                      console.log('In Progress !!' + Date());
                  })
                  .on('end', function() {
                      console.log("downlaod resolved");
                      return resolve(params.clippedFile);
    
                  })
                  .on('error', function(err) {
                      console.log("reject");
                      return reject(err);
                  })
          });
      }
    
  5. 希望这会对你有所帮助!!