【问题标题】:HTML Video: Is it possible to fallback to HLS for lack of DASH/Webm-VP9 support on Safari, or how do I support both Webm and H264 on DASH?HTML 视频:由于 Safari 上缺乏 DASH/Webm-VP9 支持,是否可以回退到 HLS,或者如何在 DASH 上同时支持 Webm 和 H264?
【发布时间】:2019-06-18 13:26:22
【问题描述】:

我正在尝试从网络服务器提供一些视频内容,目的是支持相当广泛的浏览器。

对于 iOS,据我所知,要走的路是使用 HLS(HTTP Live Streaming),而在桌面上(我猜是 Android?)MPEG-DASH 是最先进的。作为后备,我可以提供一些静态视频。

我已经在 iOS 上使用 HLS 和 Chrome、Firefox、Opera 和 Edge 在桌面上运行,但 Mac 上的 Safari 在我按下播放时只会显示一个活动微调器。据我所知,这是因为 Safari 尝试使用 DASH 作为播放方法但未能成功,尽管缺乏 Webm 支持并且 HLS 被列在首位。

对于 MPEG-DASH,我使用了带有 VP9 和 Opus 的 Webm,我的 <video> 标签看起来像这样:

<video controls style="display:inline-block;max-width:174.22vh;max-height:98vh;width:98vw;height:55.125vw;background-color:#ccc;" preload="auto" poster="my-preview-image.jpg" data-dashjs-player>
    <source src="myvideo/hls/playlist.m3u8" type="application/x-mpegURL">
    <source src="myvideo/dash/manifest.mpd" type="application/dash+xml">
    <source src="myvideo/myvideo-vp9.webm" type="video/webm; codecs=vp9,opus">
    <source src="myvideo/myvideo-vp8.webm" type="video/webm; codecs=vp8,vorbis">
    <source src="myvideo/myvideo-h264.m4v" type="video/mp4; codecs=h264,aac">
</video>

我只是使用

导入参考 DASH 实现
<script src="dash.all.min.js"></script>

我正在使用 ffmpeg 从从 Final Cut Pro 导出的高质量主视频生成 HLS 和 DASH 流。静态 Webm 后备文件也是使用 ffmpeg 生成的,而 H264 静态后备文件是从 Final Cut Pro 导出的较低比特率的文件。

有没有办法:

  • 告诉 DASH 尊重源的顺序,不要跳过 HLS 流
  • 或者,如果浏览器不支持video/webm; codecs=vp9,opus,则不启动。

最后,如果这两个都不可能,我可以使用 DASH 同时支持多个不同的编解码器吗?即我是否可以同时提供 VP9 和 H264 DASH 流,并让它在支持的情况下选择 VP9 而不是 H264,否则会退回到 H264(更高的比特率或更低的质量)?我将如何生成该流数据?

【问题讨论】:

    标签: safari html5-video http-live-streaming mpeg-dash


    【解决方案1】:

    根据您分享的内容,当您的浏览器遇到具有“data-dashjs-player”属性的视频标签时,您的浏览器将使用 dashjs 播放器,并且 DASH 播放器将专注于它支持的不包括 HLS 的格式。

    作为一个粗略的解决方案,您可以检查浏览器是否可以播放 HLS,如果可以,则使用本机视频标签,如果不能,则使用您的 DASH 播放器。检查 HLS 播放有点不确定,但以下方法目前似乎有效:

     document.createElement('video').canPlayType('application/vnd.apple.mpegURL')
    

    这应该在可以播放 HLS(目前只有 Safari AFAIK)的浏览器上返回“可能”,如果不能播放,则什么都不会 - 我刚刚在 Safari 和 Chrome 上对其进行了测试,它的行为似乎是这样的。

    值得注意的是,dash.js 应该能够在 safari 上播放 MPEG DASH 文件,因此可能值得查看控制台或日志以尝试找出它无法播放 DASH 视频的原因。

    【讨论】:

    • 感谢您的回答。我目前只有 DASH 的 VP9/Opus 流,这可能是 Safari 上的问题。听起来我需要使用其他编解码器生成流,尽管正如我在问题中提到的那样,我不清楚我将如何去做 - 我没有设法找到太多的文档方式。跨度>
    猜你喜欢
    • 2021-01-24
    • 2017-10-10
    • 2019-08-09
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多