是否值得将 HLS/DASH 用于网络视频,或者我应该坚持使用 webm/mp4

问题描述

我正在开发一个需要托管大型视频(约 1 小时)的系统。
所以我正在考虑两种解决方案:

  1. 上传的视频转换为几个不同分辨率(4k、1080p、720p...)的 webm 文件
    和单个 mp4 作为后备并直接提供它们。
  2. 上传文件转换为 HLS 段(也有多种分辨率)
    生成 HLS 和 DASH 播放列表并以此提供它们。

据我所知,HLS 具有分段的优势,因此文件只会在实际播放视频时下载,并且只能以客户端互联网连接可以跟上的格式下载。

另一方面,理论上可以使用 HTTP 范围请求下载 webm,但并非每个服务器都能正确处理它,我不确定浏览器是否会始终使用范围请求而不是下载整个文件

使用 HLS 是否有助于减少服务器的网络使用量,还是坚持使用 webm 更好?
使用一种解决方案与另一种相比还有其他优势吗?

解决方法

HLS 与 mp4:

对于较长的视频,我认为流式传输 (HLS/DASH) 更好。

  1. 没有针对视频的媒体查询 - 您需要使用 JS 选择 webm/mp4,然后就是这样。您的选择是最终的。例如 - 如果您的页面逻辑决定根据屏幕尺寸向设备提供 480p,然后用户全屏显示 - 视频将保持为 480p。
  2. HLS 将根据屏幕选择大小 - 还会根据网络连接选择 - 因此如果连接速度较慢,它会降到较低版本的视频以确保播放。

我认为最重要的是 - 为视频构建 HTTP 范围请求 - 可能会起作用,但有一个强大的基础设施,支持视频播放器和交付,您可以将其添加到您的管道中,并且知道它们会起作用 - 节省时间、调试等

如果您要重新编码这些视频,我认为流式传输是最佳选择。