Я использую библиотеку 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
})
Я не знаю, как это исправить, любой знает, почему это происходит?Благодарю.:)