使用 HTML5 视频时,我需要 WebM 和 ogv 格式吗?

Posted

技术标签:

【中文标题】使用 HTML5 视频时,我需要 WebM 和 ogv 格式吗?【英文标题】:Do I need both WebM and ogv formats when using HTML5 video? 【发布时间】:2012-06-26 14:08:39 【问题描述】:

来自videojs.com's documentation,我的印象是我需要同时包含 ogv 和 webm 文件格式(除了 mp4)。

然后我读了http://www.htmlgoodies.com/html5/client/how-to-embed-video-using-html5.html#fbid=erNepglDbZl,从中看来我只需要mp4和(ogv或webm)。

什么是正确的?我需要这三个吗?

【问题讨论】:

这些答案已经过时了,不是吗?我认为现在全面支持 mp4..caniuse.com/#search=mp4 根据videojs' "troubleshooting" guide,“现在大多数浏览器都播放带有 h264 视频的 MP4。如果您想拥有单一来源,并且既不考虑直播也不考虑自适应流,则 MP4 带有 h264 视频和 acc音频是一个不错的选择。”。我不知道为什么他们总是在他们的例子中包含webm 【参考方案1】:

对于那些提出这个老问题的人:现在只需要 mp4!

http://caniuse.com/#feat=mpeg4

【讨论】:

http://caniuse.com/#feat=mpeg4 Safari 9.5 支持 mp4(不支持 ogv 和 webm) 我说不是吗? 您没有这么说,但是如果您查看您链接的caniuse 页面(桌面),据报道 Safari 从版本 10 开始支持 mp4,这是不准确的,因为 9.5 支持它。 (或者我错过了什么......?) 啊我明白你的意思了。你应该把它报告给 caniuse :)【参考方案2】:

根据Dive Into HTML5:

Firefox 3.5+、Opera 10.5+ 和 Chrome 3+ 支持 ogv Firefox 4+、Opera 10.6+ 和 Chrome 6+ 支持 WebM(和 ogv,假设它们将来不会放弃支持)

所以 ogv 需要用于:

火狐 3.5 和 3.6 Opera 10.5 铬 3、4 和 5

如果您对这些版本通过 Flash 获取视频感到满意(我认为这就是 VideoJS 在没有 Ogg 版本的情况下会为他们做的事情),或者如果他们没有安装 Flash,则根本没有视频,那么您不需要 Ogg 版本。

就个人而言,我很想跳过 Ogg,因为将视频转换为三种格式而不是两种格式(大概)需要多花 50% 的时间。虽然我对视频没有太多经验,所以我不知道每种格式的优缺点是什么。

【讨论】:

谢谢保罗。现在它是有道理的。基于那些旧浏览器的显着渗透,我需要了解是否要跳过 ogv 的详细信息。 @nitech:不客气。请注意,这些浏览器的用户可能也安装了 Flash,因此可以看到视频。 是的,我意识到这一点。正如你所说,Videojs 有一个 Flash 后备。我还没有测试过它是否会在缺少一个 ogv 或 webm 时启动,但我希望它会这样做。 这里是跨浏览器视频/音频支持的表格:developer.mozilla.org/en-US/docs/Web/HTML/…【参考方案3】:

Check here并非所有浏览器都支持所有原生格式(无需额外插件)

IE9 只播放 MP4、firefox 4 WebM 和 OGV,Chrome 播放所有(但有传言说他们不支持新版本的 MP4,如果我没记错的话),Safari 播放 MP4、Opera WebM 和 OGG

因此,如果您检查编解码器,您应该选择 MP4 和 WebM 或 MP4 和 OGG 以匹配所有当前浏览器。

【讨论】:

这似乎合乎逻辑。但是为什么你认为像videojs.com/docs/setup 这样的网站会告诉你同时使用 ogv 和 webm? @nitech:支持旧版本的 Firefox、Opera 和 Chrome。见my answer。

以上是关于使用 HTML5 视频时,我需要 WebM 和 ogv 格式吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 HTML5 视频标签播放视频

HTML5视频元素中mp4之前或之后的webm?

HTML5 视频无法在 Firefox 中播放

播放html5视频时,火狐浏览器显示MIME类型不支持怎么解决?

通过 PHP fpassthru() 加载 mp4/webm 的 Chrome HTML5 视频:无法设置 currentTime?

从 html5 视频中获取音频