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 读取缩略图生成的文件的主要内容,如果未能解决你的问题,请参考以下文章

nodejs fs.readFile

Webpack nodejs fs.readFile 不是函数

nodejs之fs模块

nodejs模块——fs模块 读取文件

用nodejs实现读取文件操作

nodeJS文件流和事件