题:
为什么我需要Dash.js来播放Mpeg破折号视频?
Dash.js是我必须在服务器中安装的(听起来很明显)还是客户端(听起来很奇怪)?
解决方法
提供DASH视频
任何现代Web服务器(Apache,ngnix,IIS等)都可以通过HTTP或HTTPS传送DASH视频.服务器端不需要插件或其他软件来提供DASH视频 – 它们只是文件,每个Web服务器都知道如何提供文件.但是,您可能需要进行一些配置.
大多数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>
不同的视频/ 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,但独立或应用托管的玩家不需要它.