如何生成node.js的视频缩略图?(how to generate video thumbnail

2019-07-02 15:43发布

我建立与node.js的一个应用程序,我成功上传视频,但我需要生成一个视频缩略图它。 目前我使用节点exec来执行的ffmpeg系统命令,使缩略图。

   exec("C:/ffmpeg/bin/ffmpeg -i Video/" + Name  + " -ss 00:01:00.00 -r 1 -an -vframes 1 -f mjpeg Video/" + Name  + ".jpg")

此代码是从一个教程来从http://net.tutsplus.com/tutorials/javascript-ajax/how-to-create-a-resumable-video-uploade-in-node-js/

上面的代码没有生成一个jpg文件,但它不是一个缩略图,但视频截屏,我不知道还有什么其他方法来生成视频缩略图,或如何执行的是ffmpeg的命令做一个真正的缩略图(大小),和我喜欢PNG文件。

Answer 1:

通过增加一个-s选项为宽x高到命令调整。



Answer 2:

参考GitHub的流畅-ffmpeg的项目 。

重复从例如原来的StackOverflow的答案 :

var proc = new ffmpeg('/path/to/your_movie.avi')
  .takeScreenshots({
      count: 1,
      timemarks: [ '600' ] // number of seconds
    }, '/path/to/thumbnail/folder', function(err) {
    console.log('screenshots were saved')
  });


Answer 3:

有这个节点模块: 视频拇指

它基本上只是包装调用exec的ffmpeg



Answer 4:

我建议使用https://www.npmjs.com/package/fluent-ffmpeg从Node.js的调用的ffmpeg



Answer 5:

相反,我会建议使用thumbsupply 。 除了为您提供缩略图,它会缓存他们显著提高性能。

npm install --save thumbsuppply

安装该模块后,可以在下面的方式来使用它。

const thumbsupply = require('thumbsupply')("com.example.application");

thumbsupply.generateThumbnail('some-video.mp4')
.then(thumb => {
    // serve thumbnail
})


Answer 6:

利用媒体的缩略图 ,你可以很容易地生成视频的缩略图。 该模块主要包装ffmpeg的缩略图功能。

const mt = require('media-thumbnail')

mt.forVideo(
  './path/to/video.mp4',
  './path/to/thumbnail.png', {
    width: 200
  })
  .then(() => console.log('Success'), err => console.error(err)) 

您还可以创建采用这种封装形式从您的图像的缩略图。



文章来源: how to generate video thumbnail in node.js?