DASH 视频与任何其他视频一样,包含两个部分:服务提供视频,播放器消费这些视频并将其呈现给用户。我会解释双方都需要什么。
投放 DASH 视频
任何现代网络服务器(Apache、ngnix、IIS 等)都可以通过 HTTP 或 HTTPS 传送 DASH 视频片段。服务器端不需要插件或其他软件来提供 DASH 视频 - 它们只是文件,每个 Web 服务器都知道如何提供文件。不过,您可能需要进行一些配置。
大多数网络服务器都有一个允许提供的文件的 MIME 类型列表 - 您通常需要将 DASH 视频添加到此列表中,因为出于安全原因,默认设置往往具有限制性并且不允许 DASH 视频流式传输。
这是一个用于 IIS 的示例 web.config,它允许提供 DASH 视频:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".m4s" />
<mimeMap fileExtension=".m4s" mimeType="video/mp4" />
<remove fileExtension=".mpd" />
<mimeMap fileExtension=".mpd" mimeType="application/dash+xml" />
<remove fileExtension=".m4f" />
<mimeMap fileExtension=".m4f" mimeType="video/mp4" />
<remove fileExtension=".m4a" />
<mimeMap fileExtension=".m4a" mimeType="video/mp4" />
</staticContent>
</system.webServer>
</configuration>
存在不同的video/mp4 元素,因为不同的 DASH 编码器对其文件的命名不同。
某些 DASH 播放器,尤其是基于 Web 的播放器,可能还需要服务器支持 cross-origin resource sharing (CORS)。这是一种安全机制,可让您选择可以在哪些网站上显示您的内容,从而帮助防止恶意网站运行。您的服务器需要提供的确切 CORS 标头还取决于播放器 - 在某些情况下,会使用其他标头并且必须显式启用。我会将 CORS 的详细信息超出此答案的范围。下面是一个简单的 IIS 配置示例,它允许任何网站使用提供的视频:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
播放 DASH 视频
显然,你需要一名球员。存在不同类型的播放器:独立桌面应用程序(例如 VLC)、适用于 Android/iOS 应用程序的播放器 SDK(例如 ExoPlayer 和 Microsoft PlayReady Client SDK)和网站播放器(例如 dash.js 和 Bitdash)。在 Windows 10 上,Internet Explorer 甚至会包含一个用于 DASH 视频的内置播放器。
这就是 dash.js 的用武之地——它是一个播放器。如果您希望您的网站播放视频,请将其放入您的网站。也有不同的播放器可用。
根据您希望向最终用户提供内容的方式,您可以选择播放器,如果不是独立播放器,请将其嵌入到您的应用或网站中。您将 URL 提供给播放器,它会做它的事情。很简单。
基于网站的播放器需要服务器支持 CORS,但独立或应用托管的播放器不需要它。