关于实现视频预览缩略图功能

本文介绍了如何实现类似哔哩哔哩视频缩略图的预览效果。通过需求分析,猜想视频预览机制,并通过观察确认采用的是雪碧图方案。详细步骤包括使用FFmpeg截图,ImageMagick合成雪碧图,最后在前端利用背景图和鼠标事件调整预览位置。
实现所需环境
工具功能官方地址
FFmpeg对视频音频处理的”瑞士军刀“http://ffmpeg.org
ImageMagick在这里负责合并图片https://imagemagick.org/index.php
需求分析

实现哔哩哔哩视频缩略图的效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
在这里插入图片描述

猜想
  1. 随着鼠标移动,请求对应封面图
  2. 一次请求完毕,获得一张大图设置为背景,随着鼠标移动调整元素的background-position
观察

现在任意打开一个视频元素的信息

在这里插入图片描述
在这里插入图片描述

从上面的图我们可以发现哔哩哔哩采用的是第二种方案,视频预览缩略图使用一张***雪碧图***来存储。

实现

首先我们准备一个视频文件,使用FFmpeg命令对视频进行截图

ffmpeg -i C:\Users\ZJ\Videos\Captures\video1.mp4 -vf fps=0.2 C:\Users\ZJ\Videos\Captures\q%d.png  每5秒截一次图

随后在使用ImageMagick将生成的视频截图们进行合并操作

montage C:\Users\ZJ\Videos\Captures\*.png -tile 10 -geometry  206x116 C:\Users\ZJ\Videos\Captures\overview.png

最后就会生成类似上图的雪碧图,这时候前端把雪碧图当做背景图监听鼠标事件调整background-position就能够实现b站视频预览缩略图的效果拉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值