各位读者大人们好,不知道各位读者大人们近来如何。

由于前段时间事情比较多,文章的更新就给耽误了,项目需要上线经常加班,再加上自己的一些学习计划,一晃就是一个多月,没有更新文章。

有人会问,登哥你怎么不搬运和转载别人的文章呢?,这样公众号就不会断更了,这个问题问的好,熟悉我的读者应该会发现,我的文章全都是原创文章。

刚开始运行公众号时,可能转载过一两篇文章,从那以后我就坚持原创了。不在进行转载,这其实和我公众号的定位有关系。

我写文章的目的很简单,不是为了涨粉,更多的是为了个人成长,因为你在写文章的同时其实就是在自我学习的过程,这个过程要比你单纯的看知识点要吸收的更有效率。

当然了,在这个过程中如果能收获认可自己的读者,那是一件很开心的事情。如果没有,我也没有损失什么。一直按照我的节凑进行就好。

所以从这个角度来说,转载可能对我的意义就不大了。

最近在自学 Python 后面除了给大家分享前端的相关知识以外,还会给大家分享更多有意思东西。大家以后可以多关注关注。

今天给大家分享一个实战技巧,最近在项目中使用到的,需求是在播放视频的时候可以进行截图。

我们都知道,网页中大多都是用 <video>标签进行视频的播放。那如何才能实现视频的截图呢?

这里我们用到了 canvas 的相关功能。我们都知道,canvas 是伴随着 HTML5 出现的,它具有强大的绘图能力。很多可视化库都是利用到了 canvas。

因为 canvas 具有对图像的操作能力,今天我们就用它来实现视频的截图操作,之前对 canvas 有过一段时间的学习,如果想学习 canvas 的同学,这里推荐慕课网上的入门课程。

这里主要用到两个方法:

drawImage

drawImage 方法是在画布上绘制图像、画布或视频。
语法:

ctx.drawImage(image, dx, dy);
ctx.drawImage(image, dx, dy, dWidth, dHeight);
ctx.drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);
三种用法,本文不做过多描述,有兴趣的可以查看相关文档。其中的参数 image:允许任何的图像源,所以我们就可以利用这个特性,对 video 进行操作。更多可查看相关文档

toDataURL

toDataURL 方法可以返回 Canvas 图像对应的 data URI,也就是平常我们所说的base64地址。
格式如下:
data:[][;base64],

实现

利用上述方法我们很容易就能实现视频的截图,主要分为三步:

使用 drawImage 方法在画布上绘制图像。

使用 toDataURL 方法获取图像的地址。

创建一个img标签,赋值给 src。

  <video id="video" src="./flower.webm" width="300" controls></video><button onclick="captureVideo()">截图</button><script>let video = document.getElementById("video");let canvas = document.createElement("canvas");let img = document.createElement("img");let ctx = canvas.getContext("2d");function captureVideo() {canvas.width = video.videoWidth;canvas.height = video.videoHeight;ctx.drawImage(video, 0, 0, canvas.width, canvas.height);img.src = canvas.toDataURL();document.body.append(img);}

到这里就大功告成了,一起来看效果吧。

最后,如果觉得文章不错,对你有所启发,点赞是一种态度也是一种认可。
微信公众号:六小登登,更多干货文章,这里有我的很多故事,欢迎一起交流。

Web实战:如何进行视频截图相关推荐

  1. web实战:video结合canvas实现视频在线截图

    给大家讲解下我前几天看到的一个有趣小demo:视频在线截图.以下是我修改和添加了新功能后的效果图: 是不是很酷,其实挺简单的,下面就给大家讲讲怎么弄哈. 这里主要分为三大块功能,首先是第一个: 利用U ...

  2. ASP.NET Core Web API + Identity Server 4 + Angular 6 实战小项目视频

    今天开始尝试录制ASP.NET Core Web API的教学视频. 这是一个小项目的实战视频, 该项目采用了: ASP.NET Core 2.1 做API Identity Server 4 Ang ...

  3. ffmpeg 截图 java_Java Web 中使用ffmpeg实现视频转码、视频截图

    视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...

  4. iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 处理静态资源

    视频地址:www.cctalk.com/v/151149238- 处理静态资源 无非花开花落,静静. 指定静态资源目录 这里我们使用第三方中间件: koa-static 安装并使用 安装 koa-st ...

  5. 【web实战2】基于源码搭建小说自动采集网站

    0 实现原理解读 通过php中的file_get_contents目标网站服务器上资源文件读取并进行替换修改来自动采集目标网站小说并进行自动更新 1网站仿建实战 1.1网址:goodstudents. ...

  6. ASP.NET 视频截图功能的C#代码

    前公司在制作播客系统(Web程序)中,用到从视频截图功能.下边是截图CatchImg方法,可从大多数的视频文件中截图成功,大家可测试;如果截图不成功,大多是因为视频本身的问题,如编码标准或加了密.但从 ...

  7. Django2 Web 实战03-文件上传

    作者:Hubery 时间:2018.10.31 接上文:接上文:Django2 Web 实战02-用户注册登录退出 视频是一种可视化媒介,因此视频数据库至少应该存储图像.让用户上传文件是个很大的隐患, ...

  8. 【干货分享】自己总结录制的web前端精讲视频,零基础入门学习资料,开发工具

    "大清亡于闭关锁国,学习技术需要交流和资料" 为了让大家在自己的前端生涯中少走一些弯路,我亲自做了这么一门课:用我自己一路从码农到创业者的亲身经历,带大家感受前端程序员的职业发展规 ...

  9. CSS盒子模型居中方法,web前端开发教程视频

    前言 下面分享了一些关于腾讯,酷狗,字节(实习的)面试真题,让大家参考.大家也自己去收集整理其他的面试题,可以通过这些面试题,查看自己的不足,也可以了解自己想要去的公司容易出现的面试题,进行有针对性复 ...

  10. python flask 快速搭建 WEB 实战

    python flask 快速搭建 WEB 实战 tags: flask 文章目录 python flask 快速搭建 WEB 实战 1. app.py配置首页 2. views.py配置首页 3. ...

最新文章

  1. 在数据科学人才教育中不断前行: 《大数据系统基础A、B》课程实践项目中期答辩顺利举行...
  2. Word打開時出現嚴重錯誤無法開啟的处理方法
  3. 个人okr_我如何通过个人OKR完成了一个亿的小目标
  4. 使用Spring Initializer快速创建Spring Boot项目
  5. Spring mvc中自定义拦截器
  6. 移动客户端与服务器端安全通信方案
  7. 使用swipecard实现卡片视图左右滑动监听以及点击监听
  8. xml02 XML编程(CRUD)增删查改
  9. 工作两个月的感受随笔
  10. Apache服务配置
  11. golang 用range 创建指针数组
  12. Ubuntu安装tensorflow报错:tensorflow-xx.whl not a supported wheel on this platform
  13. 大教堂与集市 The Cathedral The Bazaar -- 这是当代软件技术领域最重要的著作
  14. Android CI with jenkins in ubuntu
  15. 《Thinking in java》-学习笔记(9)
  16. js页面打印去掉页眉页脚
  17. 小鸡腿U T6 2013FINAL
  18. python生成单位阵或者对角阵的三种方法
  19. 让插入PPT的音乐跨幻灯片后同时播放
  20. Android Studio 设置打开layout.xml文件的默认视图

热门文章

  1. Matlab 一般基本运算符和特殊符号
  2. 基于Opencv的口罩佩戴识别系统
  3. 蓝牙设备改参数教程_蓝牙精确定位技术下的化工厂安全管理系统,蓝牙定位标签...
  4. 移动硬盘和u盘的区别
  5. android设置主题字体,Android Studio 设置主题及字体
  6. 哪些因素影响SMT贴片加工的质量?
  7. 三种项目成本估算方法
  8. 将struts2的action交给spring管理及注意事项
  9. 港科夜闻|香港科技大学(广州)一期工程核心和配套建筑全面封顶
  10. 弘辽科技:淘宝的退款大单怎么做?做退款单要注意什么?