【问题标题】:Does AVPlayer auto adjust when playing a m3u8 playlist?播放 m3u8 播放列表时 AVPlayer 会自动调整吗?
【发布时间】:2017-09-26 19:20:10
【问题描述】:

花了一些时间在 AWS 上设置转码过程后,我发现 HLS (m3u8) 的视频加载时间并没有像预期的那样降低。

如果我直接使用AVPlayer,没有AVPlayerViewController,我可能需要自己管理视频流质量?我的理解是,如果我有一个 m3u8,那么事情会自动完成,并且会根据网络条件/设备/等使用最好的质量?

到目前为止,如果按原样使用 AVPlayer,加载时间似乎与没有 m3u8 的情况相同,甚至稍差。

为了更好地了解发生了什么,我一直在尝试一些事情。

1) 虽然这样做可以减少加载时间,但我宁愿做更多的事情,而不仅仅是在不使用无线网络时降低它:

self.player?.currentItem?.preferredPeakBitRate = 1

这似乎给了我一个质量很差的视频,但加载速度很快。不过,我还没有弄清楚如何检测实际使用的比特率(由于设置此值显着改善了加载时间,我将假设 AVPlayer 不会自行处理调整?)。

2) 此外,没有任何运气(导致无限微调,即使将 preferredPeakBitRate 设置为 1):

self.player.automaticallyWaitsToMinimizeStalling = false

3) 我愿意使用可能会处理此问题的第三方库,但我发现了一个名为 VKVideoPlayer 的东西可能会执行此操作?

谢谢

【问题讨论】:

    标签: ios swift avplayer http-live-streaming m3u8


    【解决方案1】:

    现在可以在 iOS8 及更高版本中使用。

    以下复制自 Apple 的documentation

    所需的网络带宽限制(以比特/秒为单位) 该项目的消费。 SWIFT:var preferredPeakBitRate:双倍 目标-C:@property(nonatomic) double preferredPeakBitRate

    将preferredPeakBitRate 设置为非零表示播放器 应尝试将项目播放限制为该比特率,以 每秒位数。

    如果无法降低网络带宽消耗以满足 首选PeakBitRate,会尽量降低,同时 继续播放该项目。

    【讨论】:

    • 嗨,是的,虽然我已经在使用这个变量,但我仍然不确定如何获取比特率值(所以检查一下实际使用的比特率是多少)。
    猜你喜欢
    • 2014-12-18
    • 2021-06-16
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 2014-03-10
    • 2014-04-20
    相关资源
    最近更新 更多