当前位置: 首页 > article >正文

vue 流式加载mp4文件

const props = defineProps<{
assetURL: string
}>()

const rangeVideo = () => {
const totalSize = 112702286
const chunkSize = 1000000
const numChunks = Math.ceil(totalSize / chunkSize)
let index = 0
const mimeCodec = ‘video/mp4; codecs=“avc1.42E01E, mp4a.40.2”’

if (‘MediaSource’ in window && MediaSource.isTypeSupported(mimeCodec)) {
let mediaSource = new MediaSource()
video.value.src = URL.createObjectURL(mediaSource)
mediaSource.addEventListener(‘sourceopen’, sourceOpen)
} else {
console.error('Unsupported MIME type or codec: ', mimeCodec)
}

function sourceOpen(e) {
let mediaSource = e.target
let sourceBuffer = mediaSource.addSourceBuffer(mimeCodec)
const send = async () => {
if (index >= numChunks) {
sourceBuffer.addEventListener(‘updateend’, function (_) {
mediaSource.endOfStream()
})
} else {
const start = index * chunkSize
const end = Math.min(start + chunkSize - 1, totalSize - 1)
fetch(‘/video-api/’ + props.assetURL, {
headers: {
Range: bytes=${start}-${end},
responseType: ‘arraybuffer’
}
}).then(async (response) => {
const res = await response.arrayBuffer()
index++
sourceBuffer.appendBuffer(res)
send()
// video.value.play()
})
}
}
send()
}
}

const getRef = () => {
return video
}

defineExpose({ getRef })

onMounted(() => {
rangeVideo()
})


http://www.kler.cn/news/323093.html

相关文章:

  • 视频汇聚/视频存储/安防视频监控EasyCVR平台RTMP推流显示离线是什么原因?
  • 秋招即将来临,AIGC 产品经理 快速入门方法论
  • 【计算机网络强化】计网强化笔记
  • http代理池子大小要如何判断?
  • 信息安全工程师(25)网络安全体系框架主要组成和建设内容
  • vite 底层解析
  • Pencils Protocol上线 Vaults 产品,为 $DAPP 深入赋能
  • 网站服务架构:LAMP vs LNMP
  • 基于Hive和Hadoop的哔哩哔哩网站分析系统
  • 【TES817】l基于XCZU19EG FPGA的高性能实时信号处理平台
  • DataWhale x南瓜书学习笔记 task04笔记
  • 重定向服务器
  • 力扣 中等 92.反转链表 II
  • Jmeter 配置元件-计数器时间变量
  • 深入探讨Java Agent动态监控与字节码操作的力量
  • llamafactory0.9.0微调qwen2vl
  • 面试经验分享
  • docker pull 不通?必须解决, 立刻马上,忍不了一点,没废话,直接用
  • LeetCode题练习与总结:搜索二维矩阵 Ⅱ--240
  • 使用ESPnet的 setup_anaconda.sh安装脚本一步到位,配置conda虚拟环境
  • Django 配置邮箱服务,实现发送信息到指定邮箱
  • Qt和Libtorch部署
  • 黑马智数Day4-1
  • Opencv第十一章——视频处理
  • 数据结构:二叉树(定义 特性 存储)
  • 开发提效的工具tabby快速入门
  • hrnet训练的pt模型结合目标检测进行关键点识别的更准确前向推理
  • PHP视频活体检测API接口示例-视频活体检测引领身份验证新潮流
  • mysql索引 -- 全文索引介绍(如何创建,使用),explain关键字
  • C#中NModbus4中常用的方法