做了个 chrome 插件实现 B 站视频截图功能,直接从当前视频帧无损复制

起因是看 B 站视频想截个图很麻烦,右下角暂停按钮无法去除,于是写了一行代码把暂停按钮隐藏。

后经提醒,发现可以通过 canvas 获取视频帧来截取图片,于是写了如下代码完美获取视频帧。

复制代码
  var v = document.querySelector(".bpx-player-video-wrap video");
  var myCanvas = new OffscreenCanvas(v.videoWidth,v.videoHeight);
  var ctx = myCanvas.getContext('2d');
  ctx.drawImage(v, 0, 0, v.videoWidth, v.videoHeight)
  myCanvas.convertToBlob().then(blob => {
    const fileName = 'screenshot.png';
    const d = document.createElement('a')
    d.href = window.URL.createObjectURL(blob)
    d.download = fileName
    d.style.display = 'none'
    document.body.appendChild(d)
    d.click()
    document.body.removeChild(d)
    window.URL.revokeObjectURL(d.href)
  })

用法:f12 打开 console 把这段代码粘贴回车执行即可下载视频帧。

完成后又稍作改进,把这段代码转成 chrome 插件,可以通过右键来下载视频帧,也可以用快捷键下载。 GitHub - Vant1032/BilibiliVideoCaptureImage: 截取B站当前视频帧保存为图片

各位可以去体验下这款插件,厚脸皮要个 star ,有什么问题也可以通过 issue 反馈。

以下是我使用这款插件对 B 站不同分辨率视频在 HEVC 编码下最终插件保存的图片大小测试:

分辨率 png
4k 7MB
1080p 高码率 2.8MB
1080p 2.1MB
720p 700KB

对于用 1080p 、2k 显示器的人,看 4k 视频截屏无法截出 4k 的分辨率,受到了显示器分辨率限制,而使用我的插件就可以完美截取视频原始的分辨率的图片,画质党福音。

相关推荐
小邓睡不饱耶8 小时前
Linux 实战从基础命令到 Shell 脚本自动化
linux·chrome·自动化
悟空空心10 小时前
linux创建普通只读用户
linux·运维·chrome
-SOLO-11 小时前
chrome插件 将网页转化为markdown
前端·chrome
阿成学长_Cain12 小时前
Linux alias 命令详解:从入门到高级用法
linux·前端·chrome
Codefengfeng13 小时前
zsteg的安装与使用(kali环境)
chrome·web安全·网络安全·密码学
猫头虎-前端技术14 小时前
这个项目需要Node 16,那个项目需要Node 18:如何解决多项目Node.js版本管理问题
前端·javascript·chrome·typescript·node.js·json·firefox
代码丰15 小时前
简历保险箱:一款本地存储、快捷填表的 Chrome 简历助手
前端·chrome
JamesYoung79711 天前
第三部分 — 服务工作者(后台)chrome.runtime 是什么(在 MV3 的说法中)
前端·javascript·chrome
Thomas21431 天前
chrome开启CDP的方法
前端·chrome
bu_shuo1 天前
在Edge浏览器中安装Google Chrome扩展
chrome·edge·插件