fluent-ffmpeg: не удается удалить скриншот видео после создания - PullRequest
0 голосов
/ 18 мая 2018

У меня есть следующий код, который создает скриншот для загруженного видео:

var thumbFileName = 'tmp_file.jpg';

ffmpegCommand = ffmpeg(videoFile)
  .on('end', function() {
    callback(null, tempUploadDir + thumbFileName)
  })
  .on('error', function(err) {
    callback(err);
  })
  .screenshots({
    timestamps: ['50%'],
    filename: thumbFileName,
    folder: tempUploadDir
  });

код работает довольно хорошо, и создается скриншот.Обратный вызов считывает файловый поток и сохраняет его в базе данных, а затем пытается удалить thumbFileName из файловой системы.

И вот проблема, с которой я сталкиваюсь, в основном я не могу удалитьфайл, даже если я попробую его вручную, он говорит, что файл заблокирован другим процессом (NodeJS), и я не могу загрузить его, пока не остановлю приложение.

В обратном вызове я также пытался убитькоманда с ffmpegCommand.kill() перед удалением скриншота, но у меня все еще есть та же проблема.Файл будет удален с использованием fs.unlink, и он будет работать, когда миниатюра будет сгенерирована для изображения (даже после обработки с эффектами, полученными с резкостью), но не с помощью ffmpeg.Очевидно, ffmpeg все еще работает, и поэтому я не могу удалить большой палец.

...