如何设置 DASH 流式传输?

How to setup DASH streaming?

我一直在尝试设置 mpeg dash 流式传输,但运气不佳。我将 dash.all.debug.js 添加到 html,但随后它要求我找到 here 的 /dash.all.debug.js.map。但在那之后,什么都没有。显然有些东西正在工作,因为它要求地图文件,但在那之后 Chrome 和 Firefox 都没有做任何事情。他们要求我提供并在随机网站上验证的 mpd,但没有向服务器发出任何请求。

html代码为:

 <html>
    <head>
    <script src="dash.all.debug.js"></script>
    <script>
        (function(){
            var url = "http://dash.edgesuite.net/envivio/Envivio-dash2/manifest.mpd";
            var player = dashjs.MediaPlayer().create(); 
            player.initialize(document.querySelector("#videoPlayer"), url, true);
        })();
    </script>
    </head>
    <body>
    <img src="Soranin.jpg" alt="not found" height=500>


    video:
    <video id="videoPlayer" src="media/movies/Demo/video.mpd" type="application/dash+xml"></video>
    </body>
</html>

控制台日志显示

[10] [dash.js 2.6.8] MediaPlayer has been initialized 

所以某处一定有什么东西在起作用,对吧?我错过了什么?

这里有几个问题。

主要问题是初始化播放器 returns 的脚本中的 querySelector 为 null,因为脚本在 DOM 准备就绪之前运行。将此脚本移至正文底部以解决此问题,或确保脚本在 DOM 准备就绪时运行,而不是立即运行。

第二个是无法将源设置为 DASH 清单并获得视频播放,因为大多数浏览器(Edge 除外)无法进行本机 DASH 播放。如果是,您就不需要 dash.js。从您的视频标签中删除 srctype 属性,并将上面初始化脚本中的 url 变量设置为您的清单 url.

关注https://github.com/Dash-Industry-Forum/dash.js/#standard-setup for full instructions. There's also a super-easy version where you don't need to write any code: https://github.com/Dash-Industry-Forum/dash.js/#quick-start-for-users.