在短视频(最多15秒)中使用HLS是一个好主意吗?



我正在构建一个iOS应用程序,将流媒体视频的最长长度为15秒。我读了一些关于HLS的好东西,所以我一直在用5秒的片段大小转码视频。如果视频的第一部分加载时间太长,那么我们可以在接下来的10秒内切换到较低的质量。

然而,我不确定增加的复杂性是否值得。主要的缺点是我们需要为web转码额外的视频。另一个问题是,iOS上的AVPlayer基本上是一个黑盒子,很难或不可能构建诸如将片段缓存到磁盘或重复使用视频之间的带宽测量等功能。我认为我们必须从头开始构建我们自己的HLS播放器,这样我们才能拥有这些功能,这将花费很多精力。

如果视频只有15秒长,那么使用HLS可能是多余的。是的,AVPlayer是一个黑盒子,在我的经验中,我还没有看到它在播放一个片段后处理比特率切换。我认为它的行为完全相反,即它从较低的比特率开始播放,然后颠簸到较高的比特率(不完全确定这一个)。

关于编写自定义播放器,您可以通过本地http代理发送来自AVPlayer的所有请求,并尝试在那里放置智能缓存逻辑。我曾看到一些应用为受DRM保护的内容这么做,但为非DRM内容这么做可能不会得到应用商店的批准。

如果你有很多移动用户(这是你的情况),并且你发布的是3MB或更多的高清短视频,那么HLS是有用的。

然而,你不能坚持苹果的通用建议来定义比特率阶梯和编码参数。首先,对于短视频,你应该使用短块。其次,每个标题编码变得非常重要,为了优化目标视觉质量的权重。

您可以查看这个显示HLS在不同连接条件下工作的短视频(9秒)剪辑。我准备在freecodecamp上发表一篇关于这个问题的文章。

如果您不想做开发工作,您可以使用ffmpeg编码视频或使用云服务。在外部对短视频进行编码是相当便宜的。这里的要点是确保编码参数-块持续时间,分辨率和比特率-适合您的内容。

最新更新