Skip to content

Latest commit

 

History

History
329 lines (229 loc) · 15.5 KB

README.md

File metadata and controls

329 lines (229 loc) · 15.5 KB

Ghosten Player

Logo

📽️ Available for Android PhoneAndroid TVWindows1 • **Mac1 ** !

下载

一款同时适配Android TV和Android Phone的视频播放器,同时支持云播放(阿里云盘和Webdav)和本地播放,支持刮削影视的元信息,界面简洁纯净,操作简单

预览 2

TV 截图

TV Screenshot 1 TV Screenshot 2
TV Screenshot 3 TV Screenshot 4
TV Screenshot 5 TV Screenshot 6
TV Screenshot 7 TV Screenshot 8

Android Phone 截图

Mobile Screenshot 1 Mobile Screenshot 2 Mobile Screenshot 3 Mobile Screenshot 4
Mobile Screenshot 5 Mobile Screenshot 6 Mobile Screenshot 7 Mobile Screenshot 8

Features

  1. 支持 Android TVAndroid Phone (桌面端开发中)
  2. 支持阿里云盘、Webdav和本地文件播放
  3. 纯本地运行,无需后端服务支持 3
  4. 支持跳过片头/片尾
  5. 支持视频轨道选择
  6. 支持内嵌字幕外置字幕播放4
  7. 支持文件下载和边下边播
  8. 多线程播放和下载1
  9. 支持网盘文件的整理
  10. 多账号登录
  11. 支持中英双语(英文翻译可能不太准确,欢迎指正)
  12. 支持手机端辅助TV端输入
  13. 浅色和深色模式
  14. Hls直播观看
  15. 支持DLNA投屏
  16. 软件体积小 (≈ 15 MB)
  17. 设备间的数据同步
  18. 自动更新
  19. 客户端串联1

第三方服务调用

服务 用途
阿里云盘 获取阿里云盘内的资源
The Movie DB 刮削媒体信息

安全性

本项目不提供任何的后端服务,用户信息皆存在本地,第三方网络服务调用如下:

  1. Aliyun_Open,用于阿里云盘数据的获取
  2. Webdav, 由使用者自行配置,数据安全性由用户自行考虑
  3. Themoviedb, 用于刮削影视的配体信息

由于本项目还未进行严格的测试,考虑的数据安全问题,暂不支持网盘文件的删除操作,需自行进入网盘删除

格式支持

Android平台采用的是Androidx Media3播放器,附带FFmpeg的音频解码和AV1视频解码器(可自行设置),格式编码的支持情况由硬件设备和系统版本决定,详情亲参考 Media3文档,经测试:

  1. Redmi K40 Android 13: 主流的视频文件均能正常解码,部分音频无法解码,可使用FFmpeg正常解码
  2. Mi TV Android 9: 主流的视频文件均能正常解码,部分音频无法解码,可使用FFmpeg正常解码,HDR视频无法播放
  3. 由于开发者手边没有支持杜比视界的设备,因此未进行测试,理论上Media3是支持的

使用说明

安装

手机端至 Releases页 自行下载安装,TV端可以使用U盘或当贝市场进行安装

添加账号

进入设置 → 账号管理,点击加号按钮,进入登录页面。

选择需要登录的网盘类型

阿里云盘

阿里云盘使用aliyun_open提供的接口进行文件操作,使用refresh_token获取access_token鉴权

表单项 说明
1 刷新令牌 考虑到服务器的维护成本,本项目暂不考虑分发refresh_token,需自行准备,可申请阿里云盘开发账号自行分发,或使用第三方分发的refresh_token,比如 AList
2 OAuth令牌链接 通常分发refresh_token的供应商会提供对应的刷新接口地址,如果由开发者账号(也就是有客户端ID和密码),可使用阿里云盘的鉴权接口https://openapi.alipan.com/oauth/access_token
3 客户端ID 仅开发者账号提供
4 客户端密码 仅开发者账号提供
Alipan Login Page

Webdav

填写Webdav对应的IP端口,输出账号密码,提交后完成登录。注:目前仅支持Basic编码登录

Webdav Login Page 1

添加资源

进入 设置电视剧 / 电影目录设置点击 + 号选择账号(或添加账号,或选择本地目录) → **选择资源目录 **

资源目录应为以下结构

  • 电视剧目录

    • TV Series 1
      • Season 1
        • Episode 1
        • Episode 2
      • Season 2
        • Episode 1
        • Episode 2
    • TV Series 2
      • Episode 1
      • Episode 2
  • 电影目录

    • Movie Folder
      • Movie1
    • Movie Folder
      • Movie2
    • Movie 3

跳过片头片尾

电视剧支持对 电视剧单集 设置跳过片头片尾,也可以在播放器中设置(会作用于当前季)

Skip Intro

整理文件信息

该功能将会使用刮削到的媒体信息用于移动和重命名网盘中的文件(不会进行删除操作),整理规则如下:

  • 电视剧目录

    • TV Series (2024)
      • Season 1
        • Episode 1
        • Episode 2
      • Season 2
        • Episode 1
        • Episode 2
    • TV Series 2
      • Episode 1
      • Episode 2
  • 电影目录

    • Movie Folder
      • Movie1
    • Movie Folder
      • Movie2
    • Movie 3

添加直播源

目前仅支持m3u格式的hls直播源,建议使用 https://github.com/fanmingming/livehttps://github.com/iptv-org/iptv 两个开源的直播源项目

进入直播页面,点击加号,输入直播源名称和地址即可

Playlist Create Page

如遇到无法播放问题,可先尝试刷新直播源

Playlist Refresh Page

DLNA投屏

手机端点击投屏按钮,应用会自行搜索局域网下支持DLNA投屏的设备,选择设备即可使用投屏功能5

Player Casting

数据同步

可以通过蓝牙连接的方式,将一台设备的媒体数据同步到另一台设备上,通常用于在手机端完成登录等操作后,同步到TV端,以简化TV端的编辑流程

TV端辅助输入

由于TV端使用遥控器输入链接、账号密码等信息不便,可在TV端点击辅助输入按钮,然后使用手机(需在用以局域网下) 扫描二维码进入网页,手机端编辑的文本,会推送到TV端聚焦的文本框内

文件下载

Todo

多线程播放和下载

多线程播放和下载可以成倍提升网络速度。此功能默认关闭,可进入 设置->播放设置->使用多线程打开文件 打开此选项。

Player Settings

注意事项

  1. 网络提升倍数约等于线程数,此功能仅对网盘限速有效,对网络带宽和硬件的网络限制无效
  2. 若网盘不支持分片下载,该功能会自动失效
  3. 若网盘限制了链接的并发数,则可能会导致报错,建议减小线程数或关闭此功能。如果知道网盘限制的并发数,建议将线程数设置其1/2以内,因为播放视频时会有多个请求的切换,可能会出现链接销毁不及时而触发并发限制
  4. 分片大小越小,视频缓冲的越快,但分片数更多,性能消耗更大。若没有特殊需求,建议保持默认值
  5. 此功能会增加内存的占用,占用量小于等于 (线程数 - 1) * 分片大小

DNS

本项目使用themoviedb的API刮削媒体信息,大陆的用户可能由于DNS污染导致themoviedb无法访问,不同的地区和不同网络供应商可能情况不同。可先找到可用的IP地址,然后进入设置-> 其他设置-> DNS,添加对应的域名和IP即可。如果找不到能够PING通的IP,那就只能通过其他方式解决网络问题了,本项目不提供解决方案。

常见问题

播放卡顿

播放卡顿通常是网络卡顿造成的,而网络卡顿通常是以下几个原因

  1. 网络带宽不够
  2. 播放设备硬件过时,尤其是TV端,很多TV用的是百兆网卡,亲测小米电视在WiFi模式下,网速跑满2MB/s,有线模式可达到10MB/s
  3. 如使用阿里云盘,则有可能是阿里云盘限速导致6,可以尝试打开多线程功能
  4. 其他网络问题

画面或声音缺失

本项目Android端使用的是media3播放器,外加FFmpeg和AV1的拓展解码器,绝大多数视频都可流畅播放,对于H.265编码的视频则由硬件设备和Android的版本而定。可尝试到设置 → 播放设置 → 拓展解码器 修改其选项。

Player Settings Page

刮削媒体信息超时

详见DNS部分

数据重置

若遇到数据问题,可通过数据重置功能尝试是否解决

应用闪退

  1. 极少数的视频文件会使media3抛出异常导致应用闪退,暂未找到修复方法

权限说明

Android

权限名权限用途是否必须
INTERNET获取网络数据
ACCESS_NETWORK_STATE播放媒体文件
WAKE_LOCK
REQUEST_INSTALL_PACKAGES自动更新
BLUETOOTH_ADVERTISE使用蓝牙同步数据
BLUETOOTH_CONNECT
BLUETOOTH_SCAN
BLUETOOTH使用蓝牙同步数据 (SDK <= 30)
BLUETOOTH_ADMIN
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
WRITE_EXTERNAL_STORAGE文件下载和读取本地媒体文件 (SDK <= 32)
READ_EXTERNAL_STORAGE
READ_MEDIA_VIDEO读取本地视频文件 (SDK >= 33)

版本适配

Android 6+

Todos

  • 音乐播放器
  • 保存媒体信息至文件(nfo)
  • 桌面端(Developing)
  • 应用串联

声明

本项目仅作为个人学习使用

本项目不提供任何的内容资源,若出现任何内容侵权行为皆与本项目开发人员无关

Footnotes

  1. 开发中 2 3 4

  2. 预览中的影视媒体仅作为展示用

  3. 网盘由网盘提供商提供服务支持,与本项目无关

  4. 外置字幕支持xml、vtt、ass、srt格式

  5. 手机端仅作为媒体服务器的角色,能否正常播放取决于投屏端是否支持该编码格式

  6. 截至文档编写前,阿里云盘在未开通三方应用权益包时,会限速至512kb/s