vue3实现视频上传获取视频的时长、宽高、码率等信息

vue3实现视频上传获取视频的时长、宽高、码率等信息

文章目录

创建方法

使用

1. duration(时长)

2. width(宽度)和 height(高度)

3. bitrate(码率)

4. resolution(分辨率)

创建方法

// utils/videoInfo.js

export function getVideoInfo(file) {

return new Promise((resolve, reject) => {

const video = document.createElement('video')

// 处理元数据加载完成

video.onloadedmetadata = () => {

// 立即释放对象 URL

URL.revokeObjectURL(video.src)

// 计算码率(bps)

const fileSizeInBits = file.size * 8 // 将字节转换为比特

const bitrate = fileSizeInBits / video.duration

resolve({

duration: video.duration,

width: video.videoWidth,

height: video.videoHeight,

bitrate: Math.round(bitrate), // 四舍五入到整数

resolution: `${video.videoWidth}x${video.videoHeight}`

})

}

// 处理加载错误

video.onerror = (error) => {

URL.revokeObjectURL(video.src)

reject(new Error('无法加载视频元数据'))

}

// 设置视频源

video.preload = 'metadata'

video.src = URL.createObjectURL(file)

})

}

使用

1. duration(时长)

含义:视频的总播放时长,单位是秒

示例值:185.56(表示3分5秒的视频)

用途:

显示视频总长度

计算进度条

限制上传视频的最大时长

2. width(宽度)和 height(高度)

含义:

width:视频的原始宽度(像素)

height:视频的原始高度(像素)

用途:

判断视频分辨率

视频播放前的占位图尺寸

转码时确定目标分辨率

响应式布局时计算宽高比

3. bitrate(码率)

含义:视频的数据传输速率,单位是比特/秒(bps)

示例值:2500000(表示2.5Mbps)

用途:

评估视频质量(码率越高通常质量越好)

计算带宽需求

转码时设置目标码率

4. resolution(分辨率)

含义:将宽高组合成标准分辨率字符串

示例值:"1920x1080"(表示全高清)

常见分辨率标准:

720p:1280x720

1080p:1920x1080

4K:3840x2160

用途:

直观显示视频规格

分类存储不同分辨率的视频

用户界面展

相关内容

欢乐颂 TV版
365bet账号被限制

欢乐颂 TV版

07-28 ☯ 9862
如何在全民K歌中增加粉丝量?实用技巧分享!
凡尔赛文学
365bet赌城投注

凡尔赛文学

07-23 ☯ 6346