5

我想在我的网站上提供一些视频。它们以从 FlipShare 相机获取的 .MP4 文件形式提供。

现在我尝试将它们转换为 WMV(成功了,但是当在标签中嵌入 html 时<object id='mediaPlayer' width='320' height='285' classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95' etc',用户必须安装一个插件,并且网站上 10 个 Windows 媒体播放器的用户体验并不是那么好。)

所以然后我查看了 youtube 并想知道他们是如何做到的,但我无法弄清楚他们将视频转换为什么格式。

所以我的问题是:我必须将视频转换为什么格式,才能在不需要安装在用户浏览器中的播放器中显示。我需要什么工具以及嵌入此类视频的 html 代码是什么?

如您所见:从头开始。

PS:我经常听到:这个或那个文件扩展名只是一个容器,里面可以有任何东西。如果你在你的答案中使用这个,你能向我解释一下吗,因为我从来不明白这一点。对我来说,.cs 是 ac# 文件,.doc 是 Word 文件,而不是“容器”。

4

4 回答 4

4

这不是一个简单的问题。基本答案是您需要使用用户计算机已经支持的格式。这个问题没有一个答案。YouTube 将视频编码为 MP4 并使用基于 Flash 的电影播放器​​将它们嵌入到页面中,Flash 得到了相当广泛的支持,但您会注意到 Flash 在许多移动平台上不可用 - 所以任何使用 iPhone 的人都可以如果您走 Flash 路线,请拒之门外。

HTML5 引入了video标签,旨在一劳永逸地解决这个问题,但即便如此,仍然存在一个小问题——大多数支持 HTML5 的浏览器都支持 h.264 编码的视频,但 Mozilla 支持 Ogg Theora。YouTube 目前正在试验<video>基于 -based 的播放器,所以这似乎是未来。

我相信当前支持尽可能多的人的最佳实践是编码为 h.264,尝试作为<video>元素,如果这不起作用,则使用基于 Flash 的播放器作为后备(可以播放相同的 h .264 文件)。

于 2010-04-07T20:55:58.367 回答
3

我想说目前最流行的解决方案——被 YouTube 和其他主要视频门户网站使用——是 H.264 编码的基于 Flash 的视频。Flash 可以播放视频,因为...我认为是第 8 版或第 9 版,并且已经获得了可观的市场份额。

我个人最喜欢的 Flash 播放器是LongTail Player,但它不是免费用于商业用途的。

是一个 SO question,其中包含基于 Flash 的播放器列表,包括开源播放器。

不过,Flash 无法在 iPhone 和 iPad 上播放。

如果您想支持带有 Flash Player 9 的计算机(我见过一些,但我没有任何硬数字),您将需要对 FLV 文件进行编码(我认为它使用名为 Sorenson 的编解码器)。

即将到来的替代方案是HTML 5 视频,但在浏览器中对它的支持远未达到主要的市场份额。

于 2010-04-07T20:55:58.317 回答
1

这个问题现在需要重新回答,因为它不再是 2010 年,HTML5 视频(大多数视频托管网站使用)和基于块的视频(作为对定期 XHR 请求的响应发送 - 正如 Youtube 使用的那样)是常态。虽然没有将视频添加到您的网站的最佳方法,但在撰写此答案时,Flash 肯定还远远不够好。

未经研究的简单答案是:只需使用视频标签即可!

这既简单又直观,应该可以在您的许多用例中正常工作。

经过研究的答案是:不幸的是,将视频上传到 Youtube 并将其嵌入您的网站。

在 Youtube 上嵌入视频标签的优缺点:

优点:

  • 允许您提供多种质量的视频。
  • 非常有效的带宽。Youtube 对您的用户来说是带宽有效的,因为它重新编码视频,并且对您来说也是带宽有效的,因为您将不再在自己的主机上提供您的视频。
  • 提供隐藏式字幕、自动字幕、以多种速度播放、全屏播放器等功能。

缺点:

  • 这是一项非常赚钱的服务,如果视频中的任何内容不是 100% 最初是您的,他们很可能希望在您的视频上投放广告。
  • 至少在我看来,它有您需要遵守的非常严格的法律/条款和条件。
  • 它跟踪您的用户。如果您的应用程序需要隐私并且您不能依靠您的用户来保护自己,那么 Youtube 并不理想。

混合这两个选项的优点和缺点的其他替代方案是:

  • 使用 Javascript 视频库获取 HTML5 视频以及使用 youtube 的一些优点,但没有任何缺点。
  • 在服务器端使用 FFMPEG 来解决带宽问题。
  • 使用一些支持视频的 CDN 来传递视频,以解决可靠性和带宽问题。我目前最喜欢的是那些依赖服务工作者和 bittorent 协议,从用户到彼此的流式传输,但这是否适合您取决于您​​的应用程序。

这个答案的来源:个人经验。尽管我不想从经验中回答,但这个问题确实需要一个新的答案!随意用更具体的东西来编辑它。

于 2020-01-08T08:23:32.903 回答
0

使用 H.264 转换视频 MPEG-4 将使您在桌面和移动设备的当前浏览器上获得 97% 的覆盖率,尽管某些 Android 设备不支持这种格式的硬件加速。为了解决这个问题,您还可以使用 VP9 编解码器为 WebM 提供服务。

我写了一个可能有用的浏览器支持摘要:https ://stuartk.com/posts/whats-the-best-html-video-format-to-serve/

于 2022-01-06T23:11:54.247 回答