视频截取图片帧工具(可免费使用)

引言

  之前想要将视频的某一帧截取保存成图片使用,在网上搜索了一番,看看有没有比较合适的软件可以使用,虽然有一些免费的视频处理软件但没有我想要的将视频里面的图片帧截取出来的功能,而有些可以截取图片帧保存的软件如迅捷视频转换器,此功能在其软件是属于会员才能完整体验的功能。因为本人想白嫖,并且也学过相关知识,便想到自己做一个简单的软件来实现此功能,不需要有太多复杂功能,只需要可以将视频中的图片帧截取以及将是全部转换成帧功能即可。

思路

  软件实现的简要大体思路如下
1,本软件主要基于OpenCV库开发的,使用其中的VideoCapture类进行视频的读取
2,启动线程,使用capture.read()读取每一帧图像并且进行显示到窗口,此时就可以对读取的每一帧图像进行处理显示了
3,可以对显示到窗口的帧图片进行处理,保存

如何使用本软件

本软件的已经编译好的exe程序会放在下方是资源链接中

1,下载成功后软件内包含如下

其中有个测试视频文件avi,本软件可以对avi,mp4格式的视频文件进行图片帧的截取
在这里插入图片描述

2,双击exe打开界面如下

在这里插入图片描述

3.1,关键帧截取

(1)点击打开视频可以选择视频文件进行打开,如下,这里选择本地的测试文件
在这里插入图片描述
(2)打开了之后会自动在图像显示窗口自动播放,可以通过暂停、恢复按钮完成对视频的暂停及恢复播放功能,其中关闭视频按钮则是结束整个视频的播放,无法恢复,需重新打开视频
在这里插入图片描述
(3)当前帧保存为图片,当我们在看到想要截取的某帧图片时,可以使用暂停按钮进行暂停,然后点击当前帧保存为图片按钮,就可以将当前暂停的某帧图片进行保存了,注意需要选择保存路径及命名,如下
在这里插入图片描述
点击保存后图片打开如下,因为所保存的图片分辨率和视频一样的,并且此视频分辨率比较小,所以此处打开的图片也是比较小
在这里插入图片描述

3.2 视频转为帧序列

此处功能是将所有的帧进行保存,或者按照一定的间隔保存视频的帧
(1)点击选择按钮,选择要转换的某视频,选择好如下
在这里插入图片描述
(2)间隔默认为1,即视频所有的帧都会保存,当视频比较大时,我们不需要保存所有的帧时,可以选择间隔4等其他数字,会按照间隔来保存视频
(3)点击开始转换
点击后会在要转换的视频所在目录生成同样名称的文件,里面就保存着帧序列,转换成功后会显示如下提示
在这里插入图片描述
(4)生成目录如下
在这里插入图片描述
打开文件夹,图片帧序列如下所示,这里的间隔使用的是1
在这里插入图片描述

资源链接

链接:https://pan.baidu.com/s/1e9CvxtTdA33aqAQkHwO1EA
提取码:1yte

  • 22
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
JavaScript可以使用HTML5的`<video>`元素和`<canvas>`元素将视频转换为一图片。 首先,我们需要在HTML文档中插入一个`<video>`元素,并设置视频的`src`属性为视频文件的URL地址。 ```html <video id="video" src="video.mp4" width="320" height="240" controls></video> ``` 然后,我们可以使用JavaScript来捕捉视频的每一,通过`addEventListener`方法监听视频的`loadeddata`事件,当视频加载完成后触发。 ```javascript const video = document.getElementById('video'); video.addEventListener('loadeddata', function() { const canvas = document.createElement('canvas'); const context = canvas.getContext('2d'); canvas.width = video.videoWidth; canvas.height = video.videoHeight; for (let i = 0; i < video.duration; i++) { video.currentTime = i; context.drawImage(video, 0, 0, canvas.width, canvas.height); // 将每一的画布转换为图片并保存至服务器或本地 canvas.toDataURL('image/jpeg'); // 可将图片保存为DataURL格式 canvas.toBlob(function(blob) { // 保存为Blob格式 const fileReader = new FileReader(); fileReader.onloadend = function() { const data = fileReader.result; // 将图片数据上传至服务器或保存至本地 } fileReader.readAsArrayBuffer(blob); }, 'image/jpeg'); } }); ``` 上述代码将每一的画面绘制在一个`<canvas>`元素上,并将绘制的画布转换为图片的DataURL或Blob格式。你可以选择将图片上传至服务器或保存至本地。 需要注意的是,该方法是通过逐截取视频画面来实现的,处理大型视频文件可能会导致性能问题。如果要处理大型视频文件,建议考虑使用服务器端的转码工具

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吾名招财

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值