问题描述
你好朋友, 我正在开发 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平台流畅播放视频真的很感谢大家...
提前致谢
解决方法
大多数流媒体服务使用 ABR,它会创建视频的多个分辨率副本,并将每个副本分成 2-10 秒的典型块。
ABR 的一个好处是,为了加快播放启动速度,视频可以以较低的分辨率比特率开始,然后在播放过程中“逐步提高”到更高的比特率。
您经常可以在流行的流媒体服务上看到这种情况,在这些服务中,您会发现视频开始时视频质量较低,并在短时间内有所改善。
有关 ABR 的更多信息,请参阅此处:https://stackoverflow.com/a/42365034/334402
这需要您在服务器端进行工作,为 HLS 和 DASH 流媒体(两种最常见的 ABR 流媒体协议)准备视频。
通常使用专用流媒体服务器或编码器和打包器的组合来准备和提供 ABR 流。还有云服务,例如 AWS 媒体服务或 Azure 媒体服务,它们允许点播流模型。
,您可以通过减小尺寸或进一步压缩来缩小视频。这两者都具有降低启动时间的效果 - 但会牺牲质量作为交换。
Cloudinary 会为您创建 ABR 版本,但我上次检查时,您为创建的每个版本付费。