我正在构建一个iOS应用程序,将流视频的最大长度为15秒。我读到了关于HLS的好消息,所以我一直在转码5秒大小的视频。如果视频的第一部分加载时间太长,那么我们可以在接下来的10秒内回落到较低的质量。
然而,我不确定增加的复杂性是否值得。主要的缺点是我们需要对web上的额外视频进行转码。另一个问题是,iOS上的AVPlayer基本上是一个黑匣子,很难或不可能构建一些功能,比如将数据段缓存到磁盘,或者重用视频之间的带宽测量。我认为我们必须从头开始构建我们自己的HLS播放器,这样我们才能拥有这些功能,这将需要大量的努力。
发布于 2015-06-01 06:37:39
如果视频只有15秒长,那么使用HLS可能有些夸张。是的,AVPlayer是一个黑匣子,根据我的经验,我还没有见过它在只播放一个片段后就进行比特率切换。我认为它的表现完全相反,即它从较低的比特率开始播放,然后颠簸到较高的比特率(不完全确定这一点)。
关于编写自定义播放器,您可以通过本地http代理发送来自AVPlayer的所有请求,并尝试将智能缓存逻辑放在那里。我已经看到一些应用程序对受DRM保护的内容执行此操作,但对非DRM内容执行此操作可能不会得到应用程序商店的批准。
发布于 2019-12-21 00:26:41
如果你有很好的移动用户份额(这是你的情况),并且你提供了3MB或更多的高清短视频,HLS是很有用的。
然而,你不能坚持苹果的通用建议来定义比特率阶梯和编码参数。首先,对于短视频,你应该使用短块。其次,为了优化目标视觉质量的权重,每个标题的编码变得非常重要。
你可以查看这段展示HLS at work for a short (9 seconds) clip with different connection conditions的短片。我准备了一个解决这个问题的post in freecodecamp。
您可以使用ffmpeg对视频进行编码,如果您不想进行开发工作,也可以使用云服务。从外部对短视频进行编码可能相当便宜。这里的重点是确保编码参数-chunk持续时间,分辨率和比特率-适应您的内容。
https://stackoverflow.com/questions/30560442
复制相似问题