【发布时间】: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