vue实现截取视频第一帧作为封面

这篇具有很好参考价值的文章主要介绍了vue实现截取视频第一帧作为封面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Vue中实现截取视频第一帧作为视频封面可以通过以下步骤:

  1. 在Vue组件中引入video.js和videojs-contrib-hls插件。
import videojs from 'video.js';
import 'videojs-contrib-hls';
  1. 在Vue组件中声明一个video元素,并给其添加id。
<video id="my-video"></video>
  1. 在Vue组件中初始化video.js插件,并监听loadedmetadata事件。
mounted() {
  let options = {
    autoplay: false,
    controls: false,
    muted: true,
    preload: 'metadata'
  };

  this.player = videojs('my-video', options);

  this.player.on('loadedmetadata', () => {
    this.captureVideoThumbnail();
  });
},
  1. 编写captureVideoThumbnail方法来截取视频第一帧。
captureVideoThumbnail() {
  // 获取第一帧所在的时间戳,单位为秒
  let timestamp = this.player.seekable().end(0) < 5 ? 0 : 5;

  // 将视频移动到第一帧所在的位置
  this.player.currentTime(timestamp);

  // 将当前视频画面绘制到canvas上
  let canvas = document.createElement('canvas');
  canvas.width = this.player.videoWidth();
  canvas.height = this.player.videoHeight();
  canvas.getContext('2d').drawImage(this.player.el(), 0, 0, canvas.width, canvas.height);

  // 将canvas转换为base64格式的图片
  let thumbnail = canvas.toDataURL();

  // 将图片存储到Vue数据中
  this.videoThumbnail = thumbnail;
},
  1. 在Vue组件中使用v-bind指令将videoThumbnail绑定到img元素的src属性上。
<img :src="videoThumbnail" />

完整示例代码如下:文章来源地址https://www.toymoban.com/news/detail-524878.html

<template>
  <div>
    <video id="my-video"></video>
    <img :src="videoThumbnail" />
  </div>
</template>

<script>
import videojs from 'video.js';
import 'videojs-contrib-hls';

export default {
  data() {
    return {
      player: null,
      videoThumbnail: null
    }
  },
  mounted() {
    let options = {
      autoplay: false,
      controls: false,
      muted: true,
      preload: 'metadata'
    };

    this.player = videojs('my-video', options);

    this.player.on('loadedmetadata', () => {
      this.captureVideoThumbnail();
    });
  },
  methods: {
    captureVideoThumbnail() {
      let timestamp = this.player.seekable().end(0) < 5 ? 0 : 5;

      this.player.currentTime(timestamp);

      let canvas = document.createElement('canvas');
      canvas.width = this.player.videoWidth();
      canvas.height = this.player.videoHeight();
      canvas.getContext('2d').drawImage(this.player.el(), 0, 0, canvas.width, canvas.height);

      let thumbnail = canvas.toDataURL();

      this.videoThumbnail = thumbnail;
    }
  }
}
</script>

到了这里,关于vue实现截取视频第一帧作为封面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JavaScrip获取视频第一帧作为封面图

    在JavaScript中,你可以使用HTML5的video元素来加载视频,然后使用Canvas来捕获视频的第一帧作为封面图。以下是一个简单的例子: 请注意,这个例子中使用了loadeddata事件,该事件在视频的第一帧加载完成后触发。这里创建了一个Canvas元素,通过drawImage方法将视频的第一帧绘制在

    2024年01月16日
    浏览(23)
  • js截取video视频某一帧做封面的简单案例

    可以使用 canvas 元素来截取视频某一帧并生成封面。 首先,在 video  标签上设置视频源地址和自动播放属性: 然后,在 canvas  标签上定义宽高和样式,并通过 JavaScript 获取视频元素和 canvas 元素: 接着,定义一个函数来截取视频某一帧,并将其渲染到 canvas 上: 在需要生成

    2024年02月04日
    浏览(36)
  • video截取视频第一帧作为播放前默认图片

    重要!不设置会导致第一帧图片不显示 实现js 附上全部代码

    2024年02月12日
    浏览(34)
  • vue 获取上传视频的第一帧做为视频封面

    上一篇文章记录了vue上传视频,接下来,需要在上传成功后截取视频第一帧做为视频封面。 具体实现如下: 上传视频之后,在成功回调函数中拿到视频地址, video.src=url ,然后,使用canvas截取图片。 截取视频第一帧使用的是canvas,相关步骤如下: canvas 可以用来截取图片。

    2024年02月03日
    浏览(32)
  • get两个js小技能——JS截取视频第一帧&图片转Base64

    由于开发之前做的VisualDrag拖拽模板优化的时候,拖拽进去的图片、视频文件等需要进行截图作为封面,目前采用的截图方法是htme2canvas,使用canvas进行的截图操作,所以就会遇到这样的问题,视频和图片图床简单的使用标签加入canvas画布里面无法正确的截图成功。最后采取的

    2024年02月12日
    浏览(27)
  • Java实现截取视频第一帧

    目录 前言 一、通过Java借助第三方库实现 1.引用ffmpeg 使用maven,导入pom依赖:  工具类 2.引用jcodec 二、使用第三方存储自带的方法实现(如阿里云OSS、华为云OBS) 在实际项目中,会遇到上传视频后,需要截取视频的首帧或指定帧为图片,作为展示使用的需求。这个需求本身

    2024年02月06日
    浏览(29)
  • FFmpeg批量提取视频的某一帧作为封面

    命令是这样的: 说明: -i input.flv 截取的视频的名字 -ss 00:00:02 这是视频的第2秒 -frames:v 1 这代表单独这1帧 out.png 要保存的截取的封面文件 整个命令实现的是:截取input视频从第2秒,然后只截取这1帧,作为画面,保存到out.png 上面这个已经满足了我想批量生成视频封面的目

    2024年02月09日
    浏览(29)
  • JS 截取视频某一帧图片 实现视频截图

    第一步:创建video用于存放需要截取的视频文件 第二步:创建canvas画布,用于绘制截取到的图片 1,定义创建一个 canvas 标签; 2,指定 canvas 标签的宽高; 3, 调用canvas元素中的 getContext() 方法(返回一个用于在画布上绘图的环境)。 要注意的是 drawImage() 的第一个参数不再是player而

    2024年02月12日
    浏览(34)
  • uni-app从后端返回的mp4链接视频截取一帧为封面

    一、需求: 后端返回包含视频链接的数组对象,格式如下: 从上面的mp4视频中截取一帧设置为封面,如下图,下面的封面图从视频中截取而来。 二、代码实现: 按照上面的代码,其中posterList就是对应的每一个视频的封面base64数组,一切看起来都挺好,在H5正常运行,但是在

    2024年02月14日
    浏览(22)
  • 纯前端播放文件流视频并预览并截取视频第一帧

    1、把文件流转为本地可以播放地址 调用 getFileURL 并传入文件流会返回一个地址,将地址赋值给 video 的 src 即可播放视频,无需上传至服务器。 2、截取视频第一帧 调用 getVideoBase64 并将第一步得到的url转给 getVideoBase64 即可得到视频第一帧图片, getVideoBase64 返回的片为 base64

    2023年04月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包