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

相关推荐
ToDetect1 天前
四大主流浏览器Chrome、Edge、Safari、Firefox内核检测免费工具评测
chrome·todetect·浏览器内核检测·浏览器指纹检测
blackorbird1 天前
谷歌 Chrome 浏览器的指纹识别技术,一边反追踪一边搞追踪
前端·chrome
李少兄2 天前
解决 Chrome 下载 `.crx` 文件被自动删除及“无法安装扩展程序,因为它使用了不受支持的清单版本”问题
前端·chrome
草明2 天前
Chrome HSTS(HTTP Strict Transport Security)
前端·chrome·http
wufeng无峰3 天前
谷歌浏览器Google Chrome离线安装包
chrome·离线安装包
c0detrend3 天前
读诗的时候我却使用了自己研发的Chrome元素截图插件
前端·chrome
匀泪3 天前
CE(Linux的例行性工作)
前端·chrome
lang201509284 天前
Linux命令行:cat、more、less终极指南
linux·chrome·less
谷歌开发者5 天前
Web 开发指向标 | Chrome 开发者工具学习资源 (六)
前端·chrome·学习
发现你走远了5 天前
连接模拟器网页进行h5的调试(使用Chrome远程调试(推荐)) 保姆级图文
前端·chrome