我有以下代码为我上传的视频创建屏幕截图;
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 仍在运行,这就是我无法删除拇指的原因。