Skip to content

dynamic-wallpaper/dynamic-wallpaper

Repository files navigation

动态视频壁纸

基于Electron实现的一个MAC免费壁纸软件 支持使用网页

Demo

目前进度

目前仍在开发阶段,勉强可用

功能

  • 支持播放视频
  • 支持使用网页作为背景
  • 从后台下载视频到本地作为壁纸
  • 下载完成后通知
  • 开机自启动功能
  • 修复播放器位置偏移
  • 壁纸部分统一管理播放暂停等状态
  • 支持解析b站视频作为背景视频
  • 从本地读取视频作为背景
  • 支持静态壁纸
  • 支持视频排序播放
  • 支持自动暂停
  • 支持视频根据外部条件响应播放
  • 支持b站我的收藏
  • 支持加载频道的时候将已经下载的视频提前
  • 播放窗口销毁/ffmpeg进程退出问题捕获
  • 增加网页壁纸窗口,增加订阅方案(待开仓库)
  • 自定义b站订阅up主
  • 检查为何下载视频会卡住
  • ffmpeg解码增加缓存机制,从当前的实时解码转为预解码

急需优化

  • ffmpeg支持gpu解码
  • ffmpeg解码数据优化清晰度
  • 适配宽高适配规则更新
  • 多p视频下载规则更新,支持多p视频(b站分p信息只能一个个获取,看情况增加下载分p自动获取方案改为优先匹配分辨率)
  • 下载视频分辨率提示,目前为取用户能下载的最高水平(ffmpeg解析略卡,期待大神优化)
  • 从develop中移除开机自启动

实现原理

主要还是ffmpeg解析然后传递给播放页播放,支持了一定的b站api

控制部分

  • element-ui
  • 基于electron-store缓存状态

播放部分

  • electron browser window创建的时候指定type为(window)
  • 监听electron.screen相关事件,创建多个窗口到对应位置
  • 统一管理,设置对应链接和对应renderer
  • 底层通过命令行调用内置的ffmpeg解析为文件流,输出到管道进行播放,实现1拖多播放

如何启动

npm ci
npm run electron:serve