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

相关推荐
凯歌的博客17 分钟前
springboot项目jar包启动, 配置文件外置
chrome·spring boot
QT 小鲜肉10 小时前
【Linux命令大全】001.文件管理之gitview命令(实操篇)
linux·运维·服务器·chrome·笔记
A132470531212 小时前
进程管理入门:查看和控制Linux进程
linux·运维·服务器·网络·chrome·github
云舟吖14 小时前
Chrome 扩展开发指南:从入门到精通 Manifest V3
前端·chrome·前端框架
黑蛋同志16 小时前
使用 pyenv 在Ubuntu 20 上安装 Python 3.10
chrome·python·ubuntu
winfredzhang1 天前
wxPython实战:打造一个优雅的图片预览工具
chrome·python·预览·剪切板
Bruce_Liuxiaowei1 天前
一键清理Chrome浏览器缓存:批处理与PowerShell双脚本实现
前端·chrome·缓存
Tisfy2 天前
“豆包聊天搜索” —— 直接在Chrome等浏览器地址栏开启对话
前端·chrome·豆包
胖咕噜的稞达鸭2 天前
【Linux系统编程】解密环境变量与进程地址空间
linux·运维·chrome
sun0077002 天前
macvlan解决vlan路由冲突
前端·chrome