我建立与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文件。
参考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')
});
我建议使用https://www.npmjs.com/package/fluent-ffmpeg从Node.js的调用的ffmpeg
相反,我会建议使用thumbsupply 。 除了为您提供缩略图,它会缓存他们显著提高性能。
npm install --save thumbsuppply
安装该模块后,可以在下面的方式来使用它。
const thumbsupply = require('thumbsupply')("com.example.application");
thumbsupply.generateThumbnail('some-video.mp4')
.then(thumb => {
// serve thumbnail
})
利用媒体的缩略图 ,你可以很容易地生成视频的缩略图。 该模块主要包装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))
您还可以创建采用这种封装形式从您的图像的缩略图。