【问题标题】:How to reduce initial buffering time of AVPlayer to play video?如何减少 AVPlayer 播放视频的初始缓冲时间?
【发布时间】:2021-08-12 17:33:29
【问题描述】:

朋友们好, 我正在开发 OTT 平台应用程序,我需要非常流畅地播放视频,没有任何延迟,例如 Snapchat 和 instagram 作为参考。我正在使用 Cloudinary 上传视频,一切正常,但第一次,AVPlayer 需要 1-2 秒的时间来启动视频,这对我来说是件坏事。播放视频后,下次我播放相同的视频时,它会流畅播放,延迟时间最长为半秒。

就我尝试通过不同的博客学习并堆叠流答案而言,我摆脱了这是默认的 AVPlayer 缓冲时间,它取决于视频持续时间及其获取视频信息(如标题、元数据等)。但我没有必须在任何地方使用这些信息。

我尝试将 AVPlayer 的这个属性设置为 false .automaticallyWaitsToMinimizeStalling = false,但还是不行。

我尝试了 StackOverflow 帖子中的一些解决方案,但没有成功

How to reduce iOS AVPlayer start delay

这是演示视频链接,你可以试试http://res.cloudinary.com/dtzhnffrp/video/upload/v1621013678/1on1/bgasthklqvixukocv6xy.mov

如果你能建议,我可以用什么让OTT平台流畅播放视频真的很感谢大家......

提前致谢

【问题讨论】:

    标签: ios swift video-streaming avplayer ott


    【解决方案1】:

    您可以通过减小尺寸或进一步压缩来缩小视频。这两者都有缩短启动时间的效果 - 但会牺牲质量作为交换。

    Cloudinary 将为您创建 ABR 版本,但我上次检查时,您为创建的每个版本付费。

    【讨论】:

      【解决方案2】:

      大多数流媒体服务使用 ABR,它会创建多个分辨率的视频副本,并将每个副本分成 2-10 秒的典型块。

      ABR 的一个好处是,为了加快播放启动速度,视频可以以较低的分辨率比特率开始播放,然后在播放过程中“升级”到更高的比特率。

      您经常可以在流行的流媒体服务上看到这一点,在视频开始时您会发现视频质量较低,但在短时间内会有所改善。

      有关 ABR 的更多信息,请参见此处:https://stackoverflow.com/a/42365034/334402

      这要求您在服务器端为 HLS 和 DASH 流媒体准备视频,这两种最常见的 ABR 流媒体协议。

      通常使用专用的流媒体服务器或编码器和打包器的组合来准备和提供 ABR 流。还有一些云服务,例如 AWS 媒体服务或 Azure 媒体服务,它们允许按需流媒体模型。

      【讨论】:

        猜你喜欢
        • 2018-11-06
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多