扫码关注官方订阅号
最近在弄视频上传,传出没什么问题,但是想在上传的时候生成一张缩略图,想问问有什么好的第三方类库吗?
ringa_lee
提取视频截图的话需要用到一个工具叫做ffmpeg,你要在机器上安装ffmpeg才能截取视频的帧图片。
ffmpeg
生成图片的命令是 ffmpeg -i a.avi -r 1 -s WxH -f image2 a-%03d.jpeg -vframes 1
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 才能明白各个参数的意义。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
提取视频截图的话需要用到一个工具叫做
ffmpeg,你要在机器上安装ffmpeg才能截取视频的帧图片。生成图片的命令是
ffmpeg -i a.avi -r 1 -s WxH -f image2 a-%03d.jpeg -vframes 1封装成node可用的话,只要用child_process就好了。
ffmpeg的参数特别多,你应该参照一下 https://ffmpeg.org/ffmpeg.html 才能明白各个参数的意义。