Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: macOS 硬件解码会出现帧表现不正常,如跳帧,重复帧等问题 #358

Closed
2 tasks done
ErBWs opened this issue Nov 1, 2024 · 7 comments
Closed
2 tasks done
Labels
bug Something isn't working

Comments

@ErBWs
Copy link
Contributor

ErBWs commented Nov 1, 2024

在使用的时候发生了什么 Bug ?

如题

您在使用哪个操作系统?

macOS / iOS

请具体提供设备、版本号等信息。

macOS 15.1 Apple Silicon

(选填)一些与 Bug 相关的硬件信息。

No response

日志信息

提交前确认

  • issue 列表中,没有我发现的这个 Bug
  • 我正在使用最新版本的 Kazumi
@ErBWs ErBWs added the bug Something isn't working label Nov 1, 2024
@ErBWs
Copy link
Contributor Author

ErBWs commented Nov 1, 2024

如果不单独配置硬件解码模式的字段的话,应该是直接使用 video_player 的 AVPlayer 进行解码而不是 fvp 的 VT 进行解码,所以 macOS 硬件解码也会出现 #238 的问题,关于 #353 我并没有在macOS观察到,iOS确实会出现这个问题

@Predidit
Copy link
Owner

Predidit commented Nov 1, 2024

唔,我在这里说明一下目前视频播放器的现状

1. 为什么要使用 fvp 而不是 media_kit

我们需要 fvp 中的 这个 ffmpeg 树外补丁来兼容使用非标准标头的视频流。这些视频流被伪装成图片来免费托管在公共图床中。Android ExoPlayer 和 Apple AVPlayer 本身无法解码gif和png。所以可以直接识别这种视频流。

2. 为什么不在 macOS 上全部切换到 fvp

#353 这个问题很严重,并且部分情况下会导致 native 侧的崩溃。

3. 我们可能自行修补 fvp 中的问题吗

不能,因为 fvp 本质是 mdk 多媒体套件的薄包装。而 mdk 不开源。

4. 我们可能将前面提到的树外补丁 port 到 media_kit 并切换到 media_kit 来一劳永逸解决这些问题呢

可能,主要的挑战在于 media_kit 的底层实现是 mpv。mpv 是开源的,但是其一般静态链接到 ffmpeg。我们需要在编译期应用这一补丁,而不是直接替换对应的 ffmpeg.dll。我有些没搞明白 media_kit 的 libmpv.dll 到底是通过哪个 github actions 编译出来的,他们有多个 mpv 相关仓库。

@Predidit
Copy link
Owner

Predidit commented Nov 1, 2024

如果不单独配置硬件解码模式的字段的话,应该是直接使用 video_player 的 AVPlayer 进行解码而不是 fvp 的 VT 进行解码,所以 macOS 硬件解码也会出现 #238 的问题,关于 #353 我并没有在macOS观察到,iOS确实会出现这个问题

这部分参考 fvp 的文档,当声明在 macOS/iOS 上使用 fvp 而声明解码器时会使用 VT。当没有声明 macOS/iOS 上使用 fvp 实现时自然是 AVPlayer

实际上从 fvp 迁移到 media_kit 是我一直想做的事情, 这将解决视频方面几乎所有的问题

@ErBWs
Copy link
Contributor Author

ErBWs commented Nov 1, 2024

看来这个问题我无能为力。我会在 macOS 上将硬件解码声明为 fvp 并使用一段时间,目前看起来 fvp 的问题出在移动端,而macOS 貌似没有问题,因为我已经在 macOS 上使用软件解码相当长一段时间了

@Predidit
Copy link
Owner

Predidit commented Nov 9, 2024

在 1.4.2 版本合入以上修复

@Predidit Predidit closed this as completed Nov 9, 2024
@bug333555
Copy link

bug333555 commented Nov 11, 2024

在 1.4.2 版本合入以上修复

@Predidit
问一下关于我的#353 这个问题,修复了吗?

@Predidit
Copy link
Owner

@bug333555

相关 Issue 还没关闭就是还没修复

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants