fs.readFile 无法在 nodejs 中使用 ffmpeg 读取缩略图生成的文件
Posted
技术标签:
【中文标题】fs.readFile 无法在 nodejs 中使用 ffmpeg 读取缩略图生成的文件【英文标题】:fs.readFile is failed to read thumbnail generated file using ffmpeg in nodejs 【发布时间】:2019-08-26 23:23:48 【问题描述】:我正在使用 ffmpeg 从它按预期工作的视频中提取屏幕截图,但该文件无法使用 fs.read 读取/缓冲,稍后我将不得不将图像上传到 s3 存储桶,那么我可以向谁使文件可读?
var thumPath = path.join(global.__base, 'Temp/');
ffmpeg(req.file.path).screenshots(
count: 1,
filename: req.file.filename + 'thumbnail-at-%s-seconds.png',
folder: thumPath,
size: '320x240'
);
fs.readFile(thumPath + req.file.filename + 'thumbnail-at-%s-seconds.png', function(err, thumb)
console.log(thumb)
//s3 bucket feature will come
)
【问题讨论】:
当您尝试读取图像时的错误信息是什么? @RemisaYousefvand 没有错误,但console.log(thumb)
返回未定义
我猜ffmpeg
返回一个promise,你不需要等待它完成操作,所以在缩略图准备好之前执行下一行(fs.readFile)。
【参考方案1】:
阅读https://github.com/damianociarla/node-ffmpeg
的文档,该函数需要回调,该回调在ffmpeg停止工作(错误或正确)后执行,然后才能检查文件。
你现在要做的是:
告诉 ffmpeg 创建缩略图 询问缩略图文件是否存在 ....(节点会等待,因为那里还有事情在做) ffmpeg 完成了他的工作 节点完成。【讨论】:
以上是关于fs.readFile 无法在 nodejs 中使用 ffmpeg 读取缩略图生成的文件的主要内容,如果未能解决你的问题,请参考以下文章