代码之家  ›  专栏  ›  技术社区  ›  loretoparisi

ffmpeg从nodejs spawn写入元数据

  •  0
  • loretoparisi  · 技术社区  · 4 年前

    我正试着写下一个 ffmetadata 文件来自 ffmpeg 命令

    ffmpeg -i INPUT.mp4 -f ffmetadata FFMETADATAFILE
    

    在Node.js中:

    var metadata = function (fpath, metadapath) {
          var self = this;
          var loglevel = self.logger.isDebug() ? 'debug' : 'error';
          return new Promise((resolve, reject) => {
            //ffmpeg -i INPUT.mp4 -f ffmetadata FFMETADATAFILE
            const args = [
              '-y',
              '-loglevel', loglevel,
              '-i', fpath,
              '-f', 'ffmetadata',
              metadapath
            ];
            const opts = {
              cwd: self._options.tempDir
            };
            if (self.logger.debug) self.logger.debug(args.join(" "))
            cp.spawn('ffmpeg', args, opts)
              .stderr.on('data', (data) => {
                self.logger.debug(`${data}`);
              })
              .on('message', msg => self.logger.debug(msg))
              .on('error', reject)
              .on('close', resolve);
          });
        }
    

    日志记录有任何错误,进程将以 0 metadapath 。如果我使用相同的参数执行命令,它工作正常:

    ffmpeg -y -loglevel debug -i /path/input.mp3 -f ffmetadata /path/metdata.txt
    
    0 回复  |  直到 4 年前
    推荐文章