2017-02-19 75 views
1

我正在努力添加将视频上传到我正在开发的CMS的功能,并且我对上传视频的“最佳做法”有些困惑。视频将使用Video.js库进行播放。HTML5视频格式最佳做法

我对HTML5视频的理解是有三种可能的格式:MP4,OGG和WEBM。 It would appear MP4支持所有浏览器,而其他两个支持较少。

  • 如果我想允许用户上传任何类型的视频,那么我需要将他们上传的任何内容转换为适用于HTML5的格式吗?或者有什么不同的方法可以解决这个问题?
  • 如果到处都支持MP4,那么包括其他两种格式又有什么意义呢?如果我在用户上传后转换视频,我应该将视频转换为全部三种版本吗?
  • 我假设当您将视频上传到YouTube时,他们会将视频转换为正确的格式?或者他们还有什么能够播放任何视频格式?
  • 是否有任何库或技术可以快速转换上传的视频?
+0

您可以使用'ffmpeg'在服务器上将媒体转换为不同的格式,并且在'html'处使用''元素作为'

+0

是的,我正在查看https://github.com/AydinAdn/MediaToolkit来转换视频 - 但我应该将视频转换为所有三种格式,还是让MP4足够? – William

+0

请参阅[''](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/source) – guest271314

回答

5

MP4(详细h.264压缩和MP4容器)拥有一家私人公司MPEG LA的许可/权利。这就是为什么有些浏览器希望避免依赖它。尽管浏览器不太可能放弃其现有的支持,但许可证问题阻止开发人员认为浏览器对MP4/h.264的支持将会持续下去。

Google在2011年宣布了来自Chromium项目的it would remove h.264 support,但Chrome仍支持它。

Google的VP8和VP9(以及WEBM容器)拥有免费的开放许可。但由于竞争,并非所有其他浏览器都愿意为VP8-9/WEBM提供支持。这可能会及时改变/改善。例如,没有任何Internet Explorer版本具有WEBM支持,Edge does。显然,只在主要浏览器中应用Safari,缺乏WEBM支持。

MPEG LA在此期间不断宣布it will not charge for their formats use on the internet,这实际上并没有使h.264/MP4格式完全免费。

因此,这些使网站提供必要的视频内容来仔细考虑他们的浏览器/格式支持。我相信至少应该创建每个视频的MP4和WEBM副本,即使MP4内容的部分内容可能在几年内被安全清除。

上传后的转换几乎是必须的。视频编码器和包装器有很多不同的参数,如果你接受上传的视频,你最终可能会有一个丛林。

Youtube对视频进行了重新编码,并且还有一些evidences,他们至少使用ffmpeg来完成他们的一些任务。

+0

谢谢!这正是我需要的信息类型 -​​ 我将确保每个上传文件的MP4和WEBM副本至少包含在HTML视频中 - – William

+0

欢迎您。我进行了一些语法修正,并在答案中增加了更多细节,而不更改其核心含义,使其对每个人都更有帮助。 –

+0

@BulentVural怎么样HLS?这是支持它的浏览器更好吗?据我了解,它将允许浏览器流式传输文件,而不是下载整个文件? – geoboy