php 视频第一帧封面,video标签获取第一帧的图片作为预览图

video其实有 poster 属性的。 如果有这个属性 浏览器 会自动把第一帧当做展示图, 但是移动端有的手机不支持。

我们 poster = ‘图片链接’ ,  这样是可以把图片当做视频的预览图。

那没有图片链接怎么办:

注意:以下方法的视频连接,必须和文件在同一个域名下,否则不生效!!!

html>


 视频第一帧图片:

(function() {

var video, output;

var scale = 0.8;

var initialize = function() {

output = document.getElementById("output");

video = document.getElementById("video");

video.addEventListener('loadeddata', captureImage);

};

var captureImage = function() {

var canvas = document.createElement("canvas");

canvas.width = video.videoWidth * scale;

canvas.height = video.videoHeight * scale;

canvas.getContext('2d').drawImage(video, 0, 0, canvas.width,

canvas.height);

var img = document.createElement("img");

img.src = canvas.toDataURL("image/png");

img.width = 400;

img.height = 300;

output.appendChild(img);

};

initialize();

})();

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
获取上传的视频第一作为视频封面,可以使用canvas和video元素,具体过程如下: 1. 创建一个video元素,并将上传的视频文件赋值给video的src属性。 2. 监听video的loadedmetadata事件,当video元素加载完元数据时,获取视频的宽高和时长等信息。 3. 创建一个canvas元素,并将其宽高设置为视频的宽高。 4. 在canvas上绘制视频第一画面。 5. 将canvas换成图片,作为视频封面。 示例代码如下: ```html <video id="video" controls></video> <canvas id="canvas"></canvas> ``` ```javascript const video = document.getElementById('video'); const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); // 监听视频加载完元数据事件 video.addEventListener('loadedmetadata', function() { // 获取视频的宽高和时长 const width = video.videoWidth; const height = video.videoHeight; const duration = video.duration; // 设置canvas的宽高为视频的宽高 canvas.width = width; canvas.height = height; // 绘制视频第一画面 ctx.drawImage(video, 0, 0, width, height); // 将canvas换成图片,作为视频封面 const cover = canvas.toDataURL(); console.log('视频宽度:', width); console.log('视频高度:', height); console.log('视频时长:', duration); console.log('视频封面:', cover); }); // 将上传的视频文件赋值给video的src属性 video.src = URL.createObjectURL(file); ``` 其中,file为上传的视频文件。注意,此方法只能在视频加载完元数据后才能获取视频的宽高和时长等信息,因此需要在loadedmetadata事件中执行相关操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值