H5上传视频,截取视频第一帧作为视频封面,遇到的坑
来源:互联网 发布:linux管道符号的作用 编辑:程序博客网 时间:2024/06/04 18:18
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>上传视频,进行预览,截取图片,并且获取时长</title></head><body><input type="file" onchange="changFile(this)"><div id="showVideo"></div><br><br><br><br><div> <img id="image" width="50%" height="auto"></div><button onclick="manualCapture()">点击截图</button><br><canvas id="canvas_"></canvas><script> function changFile(ele) { var videoFile = ele.files[0]; var url = URL.createObjectURL(videoFile); console.log(url); var showVideo = document.getElementById("showVideo"); var htmls = ' <video width="50%" id="video" height="auto" controls> <source src="' + url + '">您的浏览器不支持 HTML5 video 元素。</video>'; showVideo.innerHTML = htmls; //添加监听事件 //当当前帧的数据已加载,但没有足够的数据来播放指定音频/视频的下一帧时,会发生 loadeddata 事件。 document.getElementById("video").addEventListener("loadeddata", captureImage); } function captureImage() {// alert("demo7"); var scale = 0.8; //质量比例 var video = document.getElementById("video"); var canvas = document.createElement("canvas"); //计算视频宽高比 var proportion = video.clientHeight / video.clientWidth; //计算当前窗口的宽度 var w = document.body.clientWidth var h = w * proportion; canvas.getContext("2d").drawImage(video, 0, 0, 300, 400); var img = document.getElementById("image"); var len = canvas.toDataURL("image/jpg"); len = len.length / 100; img.src = canvas.toDataURL("image/jpg"); } function manualCapture() { var video_ = document.getElementById("video"); //计算视频宽高比 var proportion = video_.clientHeight / video_.clientWidth; var canvas_ = document.getElementById("canvas_"); var ctx_ = canvas_.getContext("2d"); ctx_.drawImage(video_,0,0,400,400*proportion); }</script></body></html>代码如上,这个代码是要在手机微信浏览器上运行的,本来想是在选择完视频文件后,截取第一帧,作为视频封面,在pc浏览器上测试没问题,视频能预览,也能截取图片。但是到了手机浏览器上就不行了,视频能预览,但是看不到截取的图片,之前一直以为是没有截取到图片,但是后来其实是截取到图片了,但是视频没有播放,所以截取到的图片就是一张空白图片,和手机背景白色混为一起了,根本就看不出来。
阅读全文
1 0
- H5上传视频,截取视频第一帧作为视频封面,遇到的坑
- 截取视频封面图
- H5 Video截取第一帧 Canvas 动态视频渲染、截取
- Java视频截取封面图
- ASP.NET截取上传视频,swf文件第一帧作为预览图片
- 如何截取视频的第一帧
- 根据视频地址获取视频的第一帧画面做为封面
- nodejs如何从上传的视频中截取一帧作为预览图片
- 将视频演示作为应用程序的启动封面
- VC++将视频演示作为应用程序的启动封面
- h5点播播放mp4视频遇到的坑,ios的h5不能播放视频等
- 如何截取视频的第一张图片
- 通视频URL截取第一帧图片
- android中截取视频的第一帧图片
- 安卓截取视频第一帧的方法
- 截取网络视频的第一帧并显示
- ffmpeg 多张图片转视频,视频转gif,截取视频,截取视频里的帧
- 取视频的第一帧作为初始页面
- error: taking address of temporary
- Android Studio 内存泄漏分析指南
- Spring MVC 框架搭建及详解
- ConvNet Architectures
- 地推的几个效果提升
- H5上传视频,截取视频第一帧作为视频封面,遇到的坑
- Linux 查看CPU信息
- 32.反射
- 百度地图应用
- AndroidStudio 进行 JNI / NDK 开发:初步配置及使用
- 阿拉伯数字转成汉字
- 深入学习微框架:Spring Boot
- 状压DP + 最短路 HDU 4856
- 找零钱