Predidit / Kazumi

基于自定义规则的番剧采集APP,支持流媒体在线观看,支持弹幕。
GNU General Public License v3.0
4.91k stars 127 forks source link

[bug]:android/iOS 偶发的视频比例错误 #226

Closed WseNaoBran closed 2 weeks ago

WseNaoBran commented 2 months ago

使用时发生了什么错误?当视频播放时长按屏幕倍速播放时,视频比例会被横向压缩,需要刷新后才能恢复

F9E7BD30-B57E-4B34-88F6-9AA3F9C8865B

您使用哪个操作系统?macOS/iOS操作系统###请具体提供设备、版本号等信息。苹果手机6s ios15.7.8###(选填)一些与Bug相关的硬件信息。没有回应### 日志信息贝壳无### 提交前确认- [X]问题 列表中,没有我发现的这个错误- [X] 我正在使用最新版本的Kazumi

Predidit commented 2 months ago

图裂开了,上传完成图片后再提交评论

Predidit commented 2 months ago

图片嵌入还是有问题,这样查看起来很麻烦。图里有什么问题吗,不是正常的非全屏模式吗,比例也是正确的 16:9

WseNaoBran commented 2 months ago

图片嵌入还是有问题,这样看起来很麻烦。图里有什么问题吗,不是正常的非全屏模式吗,比例也是正确的16:9

视频会被压缩成1:1的状态,松开后也会继续保持这样播放,要刷新视频重新播放才会恢复 BE85532B-4D29-4F77-9079-6FA42FEF94B5

Predidit commented 2 months ago

调整倍速可以恢复吗,全屏模式下使用长按倍速会被压缩吗

WseNaoBran commented 2 months ago

调整倍速可以恢复吗,全屏模式下使用长按倍速会被压缩吗

不会恢复,全屏和非全屏都一样

Predidit commented 2 months ago

我对这个问题感到很困惑,我没有设备用来测试并复现这个问题。

有一个打开的关于播放器的讨论在 #213

其中有提到关于播放倍速的变更,@YCZ01111 主要使用ios设备,但他并没有提到这个问题

我怀疑这是一个特定于 iPhone6s 的兼容性问题。为了验证这一假设,你可以尝试在播放设置里禁用硬件解码,这将禁用iOS自带的AVPlayer组件,转而使用ffmpeg进行解码,尝试是否解决问题

WseNaoBran commented 2 months ago

我对这个问题感到很困惑,我没有设备用来测试并复现这个问题。

有一个打开的关于播放器的讨论在 #213

其中有提到关于播放倍速的变更,@YCZ01111 主要使用ios设备,但他并没有提到这个问题

我怀疑这是一个特定于 iPhone6s 的兼容性问题。为了验证这一假设,你可以尝试在播放设置里禁用硬件解码,这将禁用iOS自带的AVPlayer组件,转而使用ffmpeg进行解码,尝试是否解决问题

真的可以了,看来真是这样,非常感谢!

Predidit commented 2 months ago

禁用硬件解码不仅有效能问题,还会导致部分视频无法正常播放。

AVPlayer是和iOS完全绑定的,更新或回退iOS版本可能会修复其中的问题。

YCZ01111 commented 2 months ago

我对这个问题感到很困惑,我没有设备用来测试并复现这个问题。

有一个打开的关于播放器的讨论在 #213

其中有提到关于播放倍速的变更,@YCZ01111 主要使用ios设备,但他并没有提到这个问题

我怀疑这是一个特定于 iPhone6s 的兼容性问题。为了验证这一假设,你可以尝试在播放设置里禁用硬件解码,这将禁用iOS自带的AVPlayer组件,转而使用ffmpeg进行解码,尝试是否解决问题

我遇到过,但是我无法复现,也许跟某些特定源有关

YCZ01111 commented 2 months ago

图片嵌入还是有问题,这样看起来很麻烦。图里有什么问题吗,不是正常的非全屏模式吗,比例也是正确的16:9

视频会被压缩成1:1的状态,松开后也会继续保持这样播放,要刷新视频重新播放才会恢复 BE85532B-4D29-4F77-9079-6FA42FEF94B5

你用的哪个规则

WseNaoBran commented 2 months ago

图片嵌入还是有问题,这样看起来很麻烦。图里有什么问题吗,不是正常的非全屏模式吗,比例也是正确的16:9

视频会被压缩成1:1的状态,松开后也会继续保持这样播放,要刷新视频重新播放才会恢复 BE85532B-4D29-4F77-9079-6FA42FEF94B5

你用的哪个规则

确实,在girlgirllove上会有此情况,但DM84上不会。

YCZ01111 commented 2 months ago

我对这个问题感到很困惑,我没有设备用来测试并复现这个问题。

有一个打开的关于播放器的讨论在 #213

其中有提到关于播放倍速的变更,@YCZ01111 主要使用ios设备,但他并没有提到这个问题

我怀疑这是一个特定于 iPhone6s 的兼容性问题。为了验证这一假设,你可以尝试在播放设置里禁用硬件解码,这将禁用iOS自带的AVPlayer组件,转而使用ffmpeg进行解码,尝试是否解决问题

我刚试了一下,dms规则会稳定触发

Predidit commented 2 months ago

很明显,这是一个来自AVPlayer和flutter的底层问题,由于没有测试设备,我无法按照常规的错误报告流程制作sample并上报。

我查看了最近的更新日志,有了一些推测,我会尝试回退AVPlayer插件的版本来解决这一问题。但今天有些太晚了,明天我会尝试发布一个测试构建。

Predidit commented 2 months ago

发布实验性修复的计划暂缓,要回退的目标版本会破坏macOS构建。

看上去我现在完全无法处理这个来自底层的问题,我们需要等待flutter或是AVPlayer的更新。

YCZ01111 commented 2 months ago

发布实验性修复的计划暂缓,要回退的目标版本会破坏macOS构建。

看上去我现在完全无法处理这个来自底层的问题,我们需要等待flutter或是AVPlayer的更新。

其实这个问题并不是特别重要,多源的意义就在于此

ErBWs commented 2 weeks ago

我尝试在 girlgirlLove 上复现这个错误,然后得到了这个错误:

Player inent error. Video cannot be fast-forwarded beyond 2.0x https://love.girigirilove.com/zijian/anime/2024/07/0728/InuYashaTheFinalAct/01/playlist.m3u8

通过搜索我发现在 setPlaybackSpeed method 文档中有这样一段文字:

On iOS, you can sometimes not go above 2.0 playback speed on a video. An error will be thrown for if the option is unsupported. It is also possible that your specific video cannot be slowed down, in which case the plugin also reports errors.

这个问题或许不会被官方解决,这貌似是 iOS 的 AVPlayer 独有的问题。也许可以禁用 iOS 平台高于2.0的播放速度并将长按手势的默认倍速改为2.0?

Predidit commented 2 weeks ago

@ErBWs

我们是否可以确认这一错误导致了视频比例问题。在倍速为 2.0 时, 视频比例是否正确。

如果可以确认的话,也许我们可以在全平台不再提供 2.0 以上的倍速选项。此外我们应该在对应位置添加注释。

ErBWs commented 2 weeks ago

@ErBWs

我们是否可以确认这一错误导致了视频比例问题。在倍速为 2.0 时, 视频比例是否正确。

如果可以确认的话,也许我们可以在全平台不再提供 2.0 以上的倍速选项。此外我们应该在对应位置添加注释。

2.0 时比例正确,基本可以确认是这个错误导致的比例错误

Predidit commented 2 weeks ago

@ErBWs

好耶,可以提交一个PR吗

ErBWs commented 2 weeks ago

@Predidit 另外还找到一种解决办法,将 macOS/iOS 的硬件解码配置为 VT,使用 Apple 的 Video Toolbox 进行硬件解码,可以解决这些问题:

  1. 播放倍速问题
  2. macOS 硬件解码会出现帧表现错误,如跳帧、重复帧
  3. 238

Predidit commented 2 weeks ago

@ErBWs

在 fvp 的代码中看到 VT 是 macOS/iOS 上的默认解码方式。所以实际上如果要使用 fvp 实现的话,不配置硬件解码字段就可以了。

实际上在 macOS/iOS 上不使用 fvp 实现的原因是 #353

ErBWs commented 2 weeks ago

@Predidit 另外还找到一种解决办法,将 macOS/iOS 的硬件解码配置为 VT,使用 Apple 的 Video Toolbox 进行硬件解码,可以解决这些问题:

  1. 播放倍速问题
  2. macOS 硬件解码会出现帧表现错误,如跳帧、重复帧

看来这个问题有点复杂,或许我应该单独打开一个关于第2个问题的 issue 来讨论

Predidit commented 1 week ago

1.4.1 已经发布