7

我想在网页中嵌入视频。
我不想使用闪存,因为它不适用于大量平台。
我不愿意使用 HTML5,因为它还不是太标准(它是标准的,但大多数人没有支持它的浏览器)

还有其他方法吗?还是我应该坚持使用 HTML5 和一个巨大的横幅告诉人们升级他们的浏览器?

4

6 回答 6

8

有几种方法可以将 HTML5 视频与不支持的浏览器的后备结合起来。已经展示了一些具体的解决方案。

一个例子是Camen Design 的Video for Everyone,它符合 HTML5,对 IE 使用条件注释,对旧浏览器使用嵌套对象标签。这应该是符合标准的、向后兼容的和面向未来的。

于 2009-12-31T06:04:43.933 回答
6

HTML 5 不是标准的。这是一份草案。它可能有一天会成为标准。它可能会首先改变。

如果您想在页面中嵌入视频,那么至少在今天,Flash 是您可用的最受支持的选项。我会为没有 Flash 的人(或只想在专用视频播放器中观看视频的人)提供一个指向常规可下载版本的链接作为选项。

告诉人们升级他们的浏览器不会有太大帮助。据我所知,在稳定版本中唯一支持视频的浏览器是 Firefox。Chrome 不支持它,除非在开发版本中。我认为 Opera 并没有在支持下带来稳定的构建。微软当然还没有将它添加到 Internet Explorer 中。Safari我不确定。

如果您真的想避免使用 Flash,那么您可以使用 HTML 4.01 对象。

<object data="myVideo.ogv" type="video/ogg">
  <!-- fallback content here -->
</object>

…并希望用户有一个能够处理安装的视频的插件。

于 2009-07-29T14:38:16.080 回答
2

我刚刚遇到Cortado。这是一个播放 OGG 的 Java 小程序。我实际上必须为此感谢David Dorward,因为检查 HTML5 的状态让我遇到了它。Firefox 建议使用类似的东西:

 <video src="my_ogg_video.ogg" controls width="320" height="240">  
   <object type="application/x-java-applet"  
           width="320" height="240">  
      <param name="archive" value="cortado.jar">  
      <param name="code" value="com.fluendo.player.Cortado.class">  
      <param name="url" value="my_ogg_video.ogg">  
      <p>You need to install Java to play this file.</p>  
   </object>  
 </video>  

Java 可用于比 flash 更多的平台,在这种情况下,如果只是回退到 HTML5。

来源

于 2009-07-29T14:49:35.890 回答
1

我知道这有点晚了,但你看过 VLC 吗?

它可以嵌入到网站中,在 Windows、Mac OS 和 Linux 上运行,免费、开源,支持很多视频/音频格式...

缺点是它没有带有播放/暂停/设置音量/...功能的漂亮GUI,您必须自己创建它们。

你可以看看这篇文章: http: //www.videolan.org/doc/play-howto/en/ch04.html#id310965

于 2009-12-30T15:25:18.450 回答
0

我解决了这个问题,因为我对 xHtml+RDFa 非常感兴趣,并且我找到了一种在 HTML5 浏览器上播放 xHtml 1.0 严格文档中的视频而不会阻止非 HTML5 浏览器的方法。

我在这里发布了一个 jQuery 插件:https ://github.com/charlycoste/xhtml-video

这里有一个演示:http: //demo.ccoste.fr/video

实际上,这比使用 HTML5 标记要弱得多,但至少……它有效!

该解决方案依赖于 javascript 和 canvas,但可以通过使用<object>标签来优雅地降级(这就是我的 jQuery 插件所做的)。

我做的其实很简单:

  1. 我在内存中创建了一个新的视频元素(不是标签),但我没有将它添加到 DOM 文档中:

    var video = document.createElement('video');
    
  2. 我在内存中创建了一个新canvas 元素,但没有将其添加到 DOM 文档中:

    var canvas = document.createElement('canvas');
    
  3. 我创建了一个新img 元素并将其添加到 DOM。

    // var parent = ... ;
    // var width = ...;
    // var height = ...;
    var img = document.createElement('img');
    
    img.setAttribute('width', width);
    img.setAttribute('height', height);
    
    parent.appendChild(img);
    
  4. 当视频正在播放时video.play()

    canvas.getContext("2d").drawImage(video, 0, 0, width, height);
    
  5. 最后我使用元素的toDataURL()方法,canvas获取帧的base64编码图像,并将其放到元素的src属性中img

    img.setAttribute('src', canvas.toDataURL());
    

通过这样做,您可以让 javascript 对象从 DOM 中播放视频并将每一帧推送到imgDOM 元素中。因此,您可以使用浏览器的 HTML5 功能播放视频,而无需 HTML5 文档。

如果浏览器没有 HTML5 功能,或者如果它不能处理使用的编解码器,它将退回到本机<object>行为(一般......浏览器会寻找像 VLC 之类的插件......)

如果无法播放视频(没有插件),<object>将使用标签内提供的替代内容。

性能方面:因为它​​会导致非常高的消耗过程,播放可能会闪烁......为了避免这种情况,您可以通过这种方式使用 jpeg 压缩来降​​低渲染质量:canvas.toDataURL('image/jpeg', quality)其中quality是 0 和 1 之间的值。

于 2014-11-08T21:46:54.187 回答
0

为什么你认为很多大型网站都使用 Flash 播放视频?可能不是因为它不可用……当然,在网页中嵌入视频内容还有其他选择,但如果可用性是一个问题,Flash 是目前最好的方法。

于 2009-07-29T14:39:28.120 回答