Неверный аргумент для сжатия видео fluent-ffmpeg в ChildProcess.spawn () - PullRequest
0 голосов
/ 22 ноября 2018

Я использую библиотеку fluent-ffmpeg в node.js в Firebase для сжатия видео, загруженных пользователями через приложение для Android, но следующий код выдает ошибку:

ffmpeg(tempFilePath).videoBitrate('1000k', true)
                      .on('error', function(err) {
                        console.log('An error occurred: ' + err.message);
                      })
                      .on('end', function() {
                        console.log('Processing finished !');
                      })
                      .save(compressedVideoFilePath);

Ошибка:

TypeError: Bad argument
at TypeError (native)
at ChildProcess.spawn (internal/child_process.js:303:26)
at exports.spawn (child_process.js:370:9)
at /user_code/node_modules/fluent-ffmpeg/lib/processor.js:152:24
at FfmpegCommand.proto._getFfmpegPath (/user_code/node_modules/fluent-ffmpeg/lib/capabilities.js:90:14)
at FfmpegCommand.proto._spawnFfmpeg (/user_code/node_modules/fluent-ffmpeg/lib/processor.js:132:10)
at FfmpegCommand.proto.availableFormats.proto.getAvailableFormats (/user_code/node_modules/fluent-ffmpeg/lib/capabilities.js:517:10)
at /user_code/node_modules/fluent-ffmpeg/lib/capabilities.js:568:14
at nextTask (/user_code/node_modules/fluent-ffmpeg/node_modules/async/dist/async.js:5324:14)
at Object.waterfall (/user_code/node_modules/fluent-ffmpeg/node_modules/async/dist/async.js:5334:5)

TempFilePath загружает загруженный пользователем файл во временную папку firebase (/tmp/test-4d68b02f-a6ef-4ff3-a5c9-52687fd3f0c4.mp4):

const tempFilePath = path.join(os.tmpdir(), filePath);
destBucket.file(filePath).download({
          destination: tempFilePath // Download the file to destFilePath
        }

Пока сжатыйVideoFilePath является местом назначения, я хочу сохранить сжатый файл (/tmp/compressed-test-4d68b02f-a6ef-4ff3-a5c9-52687fd3f0c4.mp4):

var compressedVideoFilePath = path.join(path.dirname(tempFilePath),"compressed-" + path.basename(tempFilePath));

после сохранения сжатого файлаЯ хотел бы загрузить файл в хранилище Firebase с (но, вероятно, это не то место, которое вызвало ошибку):

destBucket.upload(compressedVideoFilePath, {
    destination: 'compressed-' + path.basename(filePath),
    metadata: metadata
  })

Я не знаю, как это исправить, любой знает, почему это происходит?Благодарю.:)

...