Open ErBWs opened 4 hours ago
如果不单独配置硬件解码模式的字段的话,应该是直接使用 video_player 的 AVPlayer 进行解码而不是 fvp 的 VT 进行解码,所以 macOS 硬件解码也会出现 #238 的问题,关于 #353 我并没有在macOS观察到,iOS确实会出现这个问题
唔,我在这里说明一下目前视频播放器的现状
1. 为什么要使用 fvp 而不是 media_kit
我们需要 fvp 中的 这个 ffmpeg 树外补丁来兼容使用非标准标头的视频流。这些视频流被伪装成图片来免费托管在公共图床中。Android ExoPlayer 和 Apple AVPlayer 本身无法解码gif和png。所以可以直接识别这种视频流。
2. 为什么不在 macOS 上全部切换到 fvp
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 相关仓库。
如果不单独配置硬件解码模式的字段的话,应该是直接使用 video_player 的 AVPlayer 进行解码而不是 fvp 的 VT 进行解码,所以 macOS 硬件解码也会出现 #238 的问题,关于 #353 我并没有在macOS观察到,iOS确实会出现这个问题
这部分参考 fvp 的文档,当声明在 macOS/iOS 上使用 fvp 而声明解码器时会使用 VT。当没有声明 macOS/iOS 上使用 fvp 实现时自然是 AVPlayer
实际上从 fvp 迁移到 media_kit 是我一直想做的事情, 这将解决视频方面几乎所有的问题
看来这个问题我无能为力。我会在 macOS 上将硬件解码声明为 fvp 并使用一段时间,目前看起来 fvp 的问题出在移动端,而macOS 貌似没有问题,因为我已经在 macOS 上使用软件解码相当长一段时间了
在使用的时候发生了什么 Bug ?
如题
您在使用哪个操作系统?
macOS / iOS
请具体提供设备、版本号等信息。
macOS 15.1 Apple Silicon
(选填)一些与 Bug 相关的硬件信息。
No response
日志信息
提交前确认