做了个 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 的分辨率,受到了显示器分辨率限制,而使用我的插件就可以完美截取视频原始的分辨率的图片,画质党福音。

相关推荐
天***88528 小时前
系统自动启动管理,文件粉碎、软件卸载、WIFI密码查看、硬盘测速、系统优化等
chrome
Free Tester13 小时前
手动访问网页用的chrome,和使用命令行指定端口启动的chrome,浏览器指纹是否一致
前端·chrome
ShineWinsu13 小时前
Chrome安全机制深度解析技术文章
前端·chrome·安全
程序员 沐阳13 小时前
从内容管控到硬件隔离:Chrome 安全防护体系深度拆解
前端·chrome·安全
淼淼爱喝水13 小时前
Ansible 常用文件模块详解(copy、file、fetch)
chrome·git·github
牛奶1 天前
浏览器是怎么把代码变成页面的?
前端·javascript·chrome
冬至喵喵1 天前
构建 CLI 的 Python 框架:Typer技术介绍
开发语言·chrome·python
牛奶2 天前
Chrome偷藏了你的JS!V8引擎到底做了什么?
前端·chrome·v8
ISkp3V8b42 天前
ASP.NET MVC]Contact Manager开发之旅之迭代2 - 修改样式,美化应用
前端·chrome
刘~浪地球2 天前
Redis 从入门到精通(八):有序集合操作详解
数据库·chrome·redis