我有一个以MP4以及HLS(m3u8)格式编码的视频。我希望VideoJS将MP4用于桌面浏览器,而将m3u8用于设备。 VideoJS的最新版本支持两种格式。我正在尝试确定videojs是否可以自动找出要使用的源。还是我的代码必须检测浏览器并将最佳的源类型传递给videojs。
答案 0 :(得分:0)
MP4和HLS实际上是视频交付生态系统中不同类型的事物。
MP4是一种容器格式,在单个文件中包含编码的视频,音频等轨道,而HLS是一种流协议,可以将像MP4这样的容器中的视频从服务器流传输到客户端。
术语可能有点混乱,这些术语通常无法精确使用,但简单的概述如下:
流协议促进了自适应比特率流(ABR),简单来说,这意味着您提供了视频的多个不同比特率版本,并且客户端设备或播放器可以分块(例如10秒)下载视频,并选择比特率中最适合设备和当前网络状况的下一个块。还可以在此答案中查看更多信息:https://stackoverflow.com/a/42365034/334402
通常,ABR协议将提供更好的性能,因此,在流式传输视频时,您通常总是选择一个,而不是简单地逐步下载和播放MP4文件本身。
可能是您担心某些不支持HLS的设备或浏览器。大多数设备和HTML5播放器现在可能都会使用,但是主要的视频流服务通常会为每个视频提供HLS和MPEG-DASH流,这将覆盖绝大多数设备。
答案 1 :(得分:0)
您不能一次将这两种资源同时提供给任何视频播放器,更不用说VideoJS。
一个或另一个。
<video>
标记中的源应该是.mp4(带符号或正整数)。
或者应该是.m3u8播放列表。
您的存储桶/文件夹中可能同时具有这两个功能。但是您一次只能提供其中一个作为单个玩家的来源。
-拉维·贾亚戈帕(Ravi Jayagopal)