我想在网页中嵌入视频。
我不希望使用闪光灯,因为它是平台数量庞大无法使用。
我不愿意用HTML5 becase的,这不是太标准,但(这是标准的,但大多数人没有支持它的浏览器)
有没有其他办法? 或者我应该坚持HTML5和一个巨大的横幅告诉人们升级他们的浏览器?
我想在网页中嵌入视频。
我不希望使用闪光灯,因为它是平台数量庞大无法使用。
我不愿意用HTML5 becase的,这不是太标准,但(这是标准的,但大多数人没有支持它的浏览器)
有没有其他办法? 或者我应该坚持HTML5和一个巨大的横幅告诉人们升级他们的浏览器?
有几个方法可以HTML5视频与回退对非支持的浏览器结合起来。 一些具体的解决方案已经被证明。
一个例子是视频为大家由卡门设计,符合HTML5,并使用IE和有条件的评论对旧版浏览器嵌套对象标签。 这应该是符合标准,向后兼容,以及面向未来的。
HTML 5是不是标准。 这是一个草案。 它可能会成为标准的一天。 它可能会首先改变。
如果要嵌入在网页视频的话,至少在今天,Flash是你所提供的最佳支持的选项。 我会提供一个链接到正规的下载版本为没有安装Flash(或谁只是想观看在一个专用的视频播放器的视频),谁的人的选项。
告诉人们升级他们的浏览器不会帮助很大。 据我所知,与视频支持在一个稳定的版本唯一的浏览器火狐是。 Chrome不支持它除了在开发版本。 我不认为歌剧带来了一个稳定版本的支持。 微软当然也没有它添加到Internet Explorer呢。 Safari浏览器,我不知道。
如果你真的想避免的Flash,那么你可以使用HTML 4.01对象。
<object data="myVideo.ogv" type="video/ogg">
<!-- fallback content here -->
</object>
......希望用户有一个插件能够处理安装视频。
我刚刚遇到科尔塔 。 这是一个Java小程序起着OGG。 我actualy要感谢戴维·多沃德对于这一点,因为检查了HTML5的状态让我遇到它。 火狐建议使用这样的:
<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是提供给比闪存更为平台,而且,在这种情况下,如果只是回退到HTML5。
( 源 )
我知道这是一个有点晚了,但你看看VLC?
它可以嵌入在网站上,可以运行在Windows,Mac OS和Linux中,是免费的,开源的,支持大量的视频/音频格式的...
其缺点是,它没有一个很好的图形界面与播放/暂停/音量设置/ ...功能,你必须自己创建它们。
你可以看看这篇文章: http://www.videolan.org/doc/play-howto/en/ch04.html#id310965
你认为为什么很多大型网站使用Flash来播放视频? 也许不是因为它的不可用......当然还有其他选择嵌入在网页中的视频内容,但如果可用性是一个问题,Flash是去此刻的最佳途径。
我从事这个问题,因为我在XHTML + RDFa的很感兴趣,我找到了一种方法来播放HTML5浏览器的XHTML 1.0严格的文档中的视频,而不是阻止HTML5浏览器。
我在这里发表了jQuery插件: https://github.com/charlycoste/xhtml-video
这里演示: http://demo.ccoste.fr/video
其实,这是强大的比使用HTML5标签相当少,但至少......它的作品!
该解决方案依赖于JavaScript和画布,但可以通过使用退化优雅<object>
标签(这是我的jQuery插件做什么)。
我所做的其实很简单:
我在内存中创建一个新的视频元件 (未标记),但我不把它添加到DOM文档:
var video = document.createElement('video');
我创建了一个新canvas
中的存储元件 ,但我不把它添加到DOM文档:
var canvas = document.createElement('canvas');
我创建了一个新的img
元素 , 我把它添加到DOM。
// var parent = ... ; // var width = ...; // var height = ...; var img = document.createElement('img'); img.setAttribute('width', width); img.setAttribute('height', height); parent.appendChild(img);
当播放视频时( video.play()
我让它吸取在画布每一帧(这是不可见的,因为没有添加到DOM -这使得DOM保持有效的XHTML 1.0文档)
canvas.getContext("2d").drawImage(video, 0, 0, width, height);
最后,我使用toDataURL()
的方法canvas
元件以获得该帧的base64编码图像,并把它的src
的属性img
元件。
img.setAttribute('src', canvas.toDataURL());
通过这样做,你让JavaScript对象播放视频了DOM,并在推每帧img
DOM元素。 所以,你可以使用浏览器的HTML5功能,播放视频,但没有需要的HTML5文档。
如果浏览器不包含HTML5功能,或者如果它不能处理使用的编解码,它将依傍原生<object>
行为(一般...浏览器会寻找像VLC,或等插件。 ..)
如果没有办法用于播放视频(无插件的话),内部提供的代替内容<object>
标签将被使用。
性能方面:因为它会导致非常高的消费过程中,播放可能会闪烁......为了避免这种情况,可以减少使用JPEG压缩这种方式呈现品质: canvas.toDataURL('image/jpeg', quality)
,其中quality
是0和1之间的值。