node上传视频的时候 有什么好的类库能生成缩略图的吗?

最近在弄视频上传,传出没什么问题,但是想在上传的时候生成一张缩略图,想问问有什么好的第三方类库吗?

阅读 3.2k
1 个回答

提取视频截图的话需要用到一个工具叫做ffmpeg,你要在机器上安装ffmpeg才能截取视频的帧图片。

生成图片的命令是 ffmpeg -i a.avi -r 1 -s WxH -f image2 a-%03d.jpeg -vframes 1

封装成node可用的话,只要用child_process就好了。

function videoToJpeg(input){
    'use strict';
    const exec = require('child_process').exec;
    const output = input+'.jpeg';
    const command = `ffmpeg -i ${input} -r 1 -s WxH -f image2 ${output} -vframes 1`;
    return new Promise((resolve,reject)=>{
        exec(command, (error, stdout, stderr) => {
        if(error) return reject(error);
        if(stderr) return reject(stderr);
        resolve(output);
        });
    })
}
//使用
videoToJpeg(__dirname+"./xxx.mp4")
    .then(output=>{})
    .catch(err=>console.error(err));

ffmpeg的参数特别多,你应该参照一下 https://ffmpeg.org/ffmpeg.html 才能明白各个参数的意义。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题