小视频源码开发中如何截取视频第一帧作为封面

我们打开短视频平台,观看视频时我们往往会被视频的封面所吸引,从而我们会点开视频去观看完整的,可想而知一个播放量

点赞量高的视频,视频的封面对这个视频多么的重要。本文章向大家介绍小视频源码开发中如何截取视频第一帧作为封面。

如何在小视频源码开发通过Vue中实现截取视频第一帧作为视频封面可以通过以下步骤:

1、小视频源码开发时在Vue组件中引入video.js和videojs-contrib-hls插件

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

2、小视频源码开发时在Vue组件中声明一个video元素,并给其添加id

1
<video id="my-video"></video>

3、小视频源码开发时在Vue组件中初始化video.js插件,并监听loadedmetadata事件

1
mounted() {<br>let options = {<br>autoplay: false,<br>controls: false,<br>muted: true,<br>preload: 'metadata'<br>};<br>this.player = videojs('my-video', options);<br>this.player.on('loadedmetadata', () => {<br>this.captureVideoThumbnail();<br>});<br>},

4、小视频源码开发时编写captureVideoThumbnail方法来截取视频第一帧

1
captureVideoThumbnail() {<br>// 获取第一帧所在的时间戳,单位为秒<br>let timestamp = this.player.seekable().end(0) < 5 ? 0 : 5;<br>// 将视频移动到第一帧所在的位置<br>this.player.currentTime(timestamp);<br>// 将当前视频画面绘制到canvas上<br>let canvas = document.createElement('canvas');<br>canvas.width = this.player.videoWidth();<br>canvas.height = this.player.videoHeight();<br>canvas.getContext('2d').drawImage(this.player.el(), 0, 0, canvas.width, canvas.height);<br>// 将canvas转换为base64格式的图片<br>let thumbnail = canvas.toDataURL();<br>// 将图片存储到Vue数据中<br>this.videoThumbnail = thumbnail;<br>},

5、小视频源码开发时在Vue组件中使用v-bind指令将videoThumbnail绑定到img元素的src属性上

1
<img :src="videoThumbnail" />
1
完整示例代码如下:<br><br>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<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> 

以上就是 小视频源码开发中如何截取视频第一帧作为封面,更多内容欢迎关注之后的文章。

posted @   云豹科技-苏凌霄  阅读(117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
历史上的今天:
2022-08-10 直播平台开发,Flutter,Drawer侧滑
2022-08-10 直播软件搭建,流式布局,支持单选、多选等
2022-08-10 直播商城源码,Java实现上传图片压缩缩略图
2021-08-10 教你实现一对一直播系统源码自定义图形层次系统
2021-08-10 实现一对一直播软件源码控制台下载进度效果
2021-08-10 Eclipse实现直播视频app源码图片模糊化
点击右上角即可分享
微信分享提示