MCDFsteve / NipaPlay

Nipaplay 一款跨平台(Windows Linux macOS)本地弹幕视频播放器。弹弹play 的mac代餐。主要平台为macOS,也是基于macOS开发,其他平台仅做移植。
GNU General Public License v3.0
24 stars 1 forks source link

加载视频长时间显示「还在加载中」 #3

Open YunfangHou opened 2 days ago

YunfangHou commented 2 days ago

设备:MacBook Pro 2020, Intel i5 系统:macOS Sonoma 14.5 软件版本:ver 1.5.4

有时视频导入时就会显示;有时视频导成功,但是选择弹幕后会显示。

image
MCDFsteve commented 2 days ago

是本地视频还是url?url的话是因为后台在提取内嵌字幕(如果有的话)。不过大多数情况的 正在加载中 是正在连接网络。不过如果可以的话可以查看.app包内容 找到MacOS文件夹下的可执行程序,将其拖入终端内运行 可以查看运行日志,看看有没有报错什么的

MCDFsteve commented 2 days ago

直接导入有问题的话也可以试试通过媒体库功能导入整个文件夹来播放看看

YunfangHou commented 2 days ago

是本地视频还是url?url的话是因为后台在提取内嵌字幕(如果有的话)。不过大多数情况的 正在加载中 是正在连接网络。不过如果可以的话可以查看.app包内容 找到MacOS文件夹下的可执行程序,将其拖入终端内运行 可以查看运行日志,看看有没有报错什么的

都是播放的本地视频。

终端内运行,导入媒体库播放,选择弹幕之后显示「加载中」,日志如下:

newTitle 114: 约会大作战 第五季 第1话 开战的狼烟
Comments saved to: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/174760001.json
Successfully retrieved and saved comments for episode ID: 174760001
Failed to write JS file: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'
}
Error processing comments: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'
}
2024-07-03 15:36:49.116 NipaPlay[2960:25600] _TIPropertyValueIsValid called with 12 on nil context!
2024-07-03 15:36:49.116 NipaPlay[2960:25600] imkxpc_setApplicationProperty:value:reply: called with incorrect property value 12, bailing.
2024-07-03 15:37:22.131 NipaPlay[2960:25600] _TIPropertyValueIsValid called with 12 on nil context!
2024-07-03 15:37:22.131 NipaPlay[2960:25600] imkxpc_setApplicationProperty:value:reply: called with incorrect property value 12, bailing.

直接拖入视频文件,显示「加载中」,日志如下:

函数开始执行,视频路径: /Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4
有进行字幕扫描: -ss 0 -i "/Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4" -vframes 1 -y "/Users/steve/Library/Application Support/NipaPlay/nipaplay/sub/AirotaNekomoekissatenYuruCampMovie1080pAVCAACCHS.jpg"
未找到存储结果,开始识别: /Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4
id+title: 摇曳露营△ 剧场版 剧场版 144380001
jsonFilePath: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/144380001.json
Comments saved to: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/144380001.json
Successfully retrieved and saved comments for episode ID: 144380001
Failed to write JS file: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'
}
Error processing comments: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'
}
MCDFsteve commented 2 days ago

访达访问/Users/steve/Library/Application Support/NipaPlay/nipaplay/下的video_comment和danmaku文件夹看看里面是否存在文件?报错似乎显示没找到弹幕的json文件(144380001.js)

YunfangHou commented 2 days ago

访达访问/Users/steve/Library/Application Support/NipaPlay/nipaplay/下的video_comment和danmaku文件夹看看里面是否存在文件?报错似乎显示没找到弹幕的json文件(144380001.js)

文件存在,不过 nipaplay 下没有 danmaku 文件夹,只有 video_comment

image
MCDFsteve commented 2 days ago

尝试授权/Users/steve/Library/Application Support/NipaPlay/nipaplay/及所有子目录完整权限

MCDFsteve commented 2 days ago

报错原因是程序尝试将处理后的弹幕文件存入danmaku文件夹但是失败了,连文件夹都没能创建起来

MCDFsteve commented 2 days ago

如果是因为权限问题导致程序无法在danmaku和sub文件夹写入文件,那确实会导致 如果视频有内嵌字幕文件,会卡在提取字幕,如果没有,则会卡在加载弹幕

YunfangHou commented 2 days ago

尝试授权/Users/steve/Library/Application Support/NipaPlay/nipaplay/及所有子目录完整权限

已在设置中赋予 Full Disk Access 权限并重启应用,问题依旧存在,日志报错内容相同

MCDFsteve commented 2 days ago

你说过的导入视频时也会卡住的情况的日志有吗,我比对一下

YunfangHou commented 2 days ago

是本地视频还是url?url的话是因为后台在提取内嵌字幕(如果有的话)。不过大多数情况的 正在加载中 是正在连接网络。不过如果可以的话可以查看.app包内容 找到MacOS文件夹下的可执行程序,将其拖入终端内运行 可以查看运行日志,看看有没有报错什么的

都是播放的本地视频。

终端内运行,导入媒体库播放,选择弹幕之后显示「加载中」,日志如下:

newTitle 114: 约会大作战 第五季 第1话 开战的狼烟
Comments saved to: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/174760001.json
Successfully retrieved and saved comments for episode ID: 174760001
Failed to write JS file: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'
}
Error processing comments: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/174760001.js'
}
2024-07-03 15:36:49.116 NipaPlay[2960:25600] _TIPropertyValueIsValid called with 12 on nil context!
2024-07-03 15:36:49.116 NipaPlay[2960:25600] imkxpc_setApplicationProperty:value:reply: called with incorrect property value 12, bailing.
2024-07-03 15:37:22.131 NipaPlay[2960:25600] _TIPropertyValueIsValid called with 12 on nil context!
2024-07-03 15:37:22.131 NipaPlay[2960:25600] imkxpc_setApplicationProperty:value:reply: called with incorrect property value 12, bailing.

直接拖入视频文件,显示「加载中」,日志如下:

函数开始执行,视频路径: /Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4
有进行字幕扫描: -ss 0 -i "/Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4" -vframes 1 -y "/Users/steve/Library/Application Support/NipaPlay/nipaplay/sub/AirotaNekomoekissatenYuruCampMovie1080pAVCAACCHS.jpg"
未找到存储结果,开始识别: /Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4
id+title: 摇曳露营△ 剧场版 剧场版 144380001
jsonFilePath: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/144380001.json
Comments saved to: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/144380001.json
Successfully retrieved and saved comments for episode ID: 144380001
Failed to write JS file: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'
}
Error processing comments: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'
}

在这里,第二个代码块

YunfangHou commented 2 days ago

还有另一个问题,带有内嵌字幕的 mkv 视频,我选择「不需要弹幕」的情况后,可以播放,但是没有字幕,点击右边「字幕」按钮,会直接显示一个文件浏览器提示选择字幕文件,而无法选择内嵌字幕。

MCDFsteve commented 2 days ago

因为我加载字幕逻辑是自己写的,有内嵌字幕情况下会直接在播放前弹出字幕加载询问窗口

MCDFsteve commented 2 days ago
image

类似这样的界面 没有看到过?

YunfangHou commented 2 days ago

image 类似这样的界面 没有看到过?

没有出现过

YunfangHou commented 2 days ago

更完整的终端日志如下,从打开可执行文件开始:

/Applications/NipaPlay.app/Contents/MacOS/NipaPlay
Chrome version: 122.0.6261.156
Electron version: 29.4.2
Window loaded URL: index.html
Checking for update
Error reading directory: [Error: ENOENT: no such file or directory, scandir '/Users/steve/Library/Application Support/NipaPlay/nipaplay/sub'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'scandir',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/sub'
}
Error reading directory: [Error: ENOENT: no such file or directory, scandir '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'scandir',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku'
}
Error: Error: ENOENT: no such file or directory, open '/Applications/NipaPlay.app/Contents/Resources/app-update.yml'
Error in auto-updater: [Error: ENOENT: no such file or directory, open '/Applications/NipaPlay.app/Contents/Resources/app-update.yml'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Applications/NipaPlay.app/Contents/Resources/app-update.yml'
}
(node:2637) UnhandledPromiseRejectionWarning: Error: ENOENT: no such file or directory, open '/Applications/NipaPlay.app/Contents/Resources/app-update.yml'
(Use `NipaPlay --trace-warnings ...` to show where the warning was created)
(node:2637) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
Cache cleared
I'm lain.2
Config path: /Users/steve/Library/Application Support/NipaPlay/nipaplay/nipaplay_config.json
Config content: {
  "selectedFolders": [

  ]
}
Parsed config: []
mac
Loaded folders: []
函数开始执行,视频路径: /Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4
有进行字幕扫描: -ss 0 -i "/Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4" -vframes 1 -y "/Users/steve/Library/Application Support/NipaPlay/nipaplay/sub/AirotaNekomoekissatenYuruCampMovie1080pAVCAACCHS.jpg"
未找到存储结果,开始识别: /Users/steve/Downloads/Video/Anime/[Airota&Nekomoe kissaten][Yuru Camp Movie][1080p AVC AAC][CHS].mp4
id+title: 摇曳露营△ 剧场版 剧场版 144380001
jsonFilePath: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/144380001.json
Comments saved to: /Users/steve/Library/Application Support/NipaPlay/nipaplay/video_comment/144380001.json
Successfully retrieved and saved comments for episode ID: 144380001
Failed to write JS file: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'
}
Error processing comments: [Error: ENOENT: no such file or directory, open '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/Users/steve/Library/Application Support/NipaPlay/nipaplay/danmaku/144380001.js'
}
MCDFsteve commented 2 days ago

打印会收到字幕轨道才对:

有进行字幕扫描: -ss 0 -i "/Library/Afolder/番剧/老番/钢之炼金术师FA/[SAIO-Raws] Fullmetal Alchemist Brotherhood [BD 1920x1080 HEVC-10bit OPUS][2009]/[SAIO-Raws] Fullmetal Alchemist Brotherhood 64 END [BD 1920x1080 HEVC-10bit OPUS ASSx2].mkv" -vframes 1 -y "/Users/dfsteve/Library/Application Support/NipaPlay/nipaplay/sub/SAIORawsFullmetalAlchemistBrotherhood64ENDBD1920x1080HEVC10bitOPUSASSx2.jpg"
Parsed subtitleTrack: {
  id: '0:2',
  format: 'ass (ssa) (default)',
  handlerName: '',
  title: 'SC'
}
Parsed subtitleTrack: { id: '0:3', format: 'ass (ssa)', handlerName: '', title: 'TC' }
Registration failed
selectedTrack: {
  id: '0:2',
  format: 'ass (ssa) (default)',
  handlerName: '',
  title: 'SC'
}
trackId: {
  id: '0:2',
  format: 'ass (ssa) (default)',
  handlerName: '',
  title: 'SC'
}
subtitleFormat: ass
ffmpeg sub: /Users/dfsteve/Library/Application Support/NipaPlay/nipaplay/sub/SAIORawsFullmetalAlchemistBrotherhood64ENDBD1920x1080HEVC10bitOPUSASSx2.ass
trackId: {
  id: '0:2',
  format: 'ass (ssa) (default)',
  handlerName: '',
  title: 'SC'
}
MCDFsteve commented 2 days ago

尝试手动在nipaplay文件夹新建 subdanmaku 文件夹?

YunfangHou commented 2 days ago

尝试手动在nipaplay文件夹新建 subdanmaku文件夹?

成功🤩弹幕和内嵌字幕都可以加载了

MCDFsteve commented 2 days ago

我也找到问题所在了。我在某个版本不小心移除了创建文件夹的函数。下个版本会推送包含这一修复的更新

YunfangHou commented 2 days ago

我也找到问题所在了。我在某个版本不小心移除了创建文件夹的函数。下个版本会推送包含这一修复的更新

好的,感谢🙏

MCDFsteve commented 2 days ago

不知道啥时候不小心删的,但是居然这么久了没发现,不过毕竟只要在这个有问题的版本之前就创建好文件夹了确实不会发现。感谢反馈