前端获取视频缩略图方式

代码示例:

/**
* 获取缩略图
* @param url 视频地址
* @param currentTime 缩略图取第几秒的图片
* @param width 截取的图片宽
* @param height 截取的图片高
* @returns {Promise<unknown>}
*/
export function getVideoFrameImage (url, currentTime = 3, width = 100, height = 100) {
return new Promise((resolve, reject) => {
const video = document.createElement('video')
video.setAttribute('crossOrigin', 'anonymous')
video.setAttribute('preload', 'metadata')
video.setAttribute('src', url)
// 视频开始可能是黑屏状态
video.currentTime = currentTime
video.addEventListener('loadeddata', function () {
const canvas = document.createElement('canvas')
const { videoWidth, videoHeight } = video
const newHeight = height || videoHeight * (width / videoWidth)
canvas.width = width
canvas.height = newHeight
canvas.getContext('2d').drawImage(video, 0, 0, 200, height)
resolve(canvas.toDataURL('image/jpeg'))
})
})
}
//使用方式
getVideoFrameImage(url).then(res => {
console.log('base64图片路径', res)
})

 

posted @   酸菜鱼没有鱼  阅读(333)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示