【问题标题】:How to setup DASH streaming?如何设置 DASH 流媒体?
【发布时间】:2018-04-18 20:16:28
【问题描述】:

我一直在尝试设置 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 

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

【问题讨论】:

    标签: video networking video-streaming html5-video mpeg-dash


    【解决方案1】:

    这里有几个问题。

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

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

    关注https://github.com/Dash-Industry-Forum/dash.js/#standard-setup 获取完整说明。还有一个超级简单的版本,您无需编写任何代码:https://github.com/Dash-Industry-Forum/dash.js/#quick-start-for-users

    【讨论】:

    • 谢谢。我遵循了这一点,它似乎适用于其他人的清单。但是,当我放入清单时,它显示“[ScheduleController][video] start denied”,音频也是如此。它得到了它需要的所有数据(我认为)所以不应该有任何问题,对吧?我会继续查看并验证整个文件是否已发送。
    • 是的,我正在尝试让它工作,它一直在请求文件范围之外的字节,我不知道为什么。我一直发回 416 错误,直到它停止,然后什么也没有。
    • 播放器请求文件外范围的最可能原因是清单不正确:-)
    • 谢谢。这就是我的想法,但我在清单中找不到指定文件字节长度的任何地方?就像,chrome在它的请求结束后明确要求停止,例如“1500-3000/2000”并且持续时间是正确的。我需要比几秒钟更精确吗?
    猜你喜欢
    • 2010-10-15
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 2014-02-05
    相关资源
    最近更新 更多