如何(伪)以跨浏览器和html5的方式传输H.264视频?

如何(伪)以跨浏览器和html5的方式传输H.264视频?,html,video-streaming,html5-video,Html,Video Streaming,Html5 Video,我想嵌入MP4视频(H.264)的方式,应该跨浏览器工作,但使用html5,如果有更好的性能。只要我不提供WebM版本,Firefox就应该回到Flash 问题: Firefox在开始播放之前下载整个视频,而Chrome和其他浏览器则在下载的同时播放 我就是这么做的: <video poster="poster.jpg" preload="auto" autobuffer autoplay loop > <source src="video.mp4" type='video

我想嵌入MP4视频(H.264)的方式,应该跨浏览器工作,但使用html5,如果有更好的性能。只要我不提供WebM版本,Firefox就应该回到Flash

问题:

Firefox在开始播放之前下载整个视频,而Chrome和其他浏览器则在下载的同时播放

我就是这么做的:

<video poster="poster.jpg" preload="auto" autobuffer autoplay loop >
  <source src="video.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' />
</video>
我尝试了一些替代jMediaElement的方法,但在隐藏控件和在flash播放器中使用自动播放/循环时遇到了问题。jMediaElement使用JWplayer作为回退,所有这些东西在视频标记中声明时都可以正常工作

开发版本当前位于:

该视频按预期使用MIME类型“video/mp4”交付。问题可能与JWplayer/jMediaElement有关,或者可能是视频(编码)本身


jMediaElement的另一个替代方案仍然允许视频自动播放、循环和隐藏控件,我们也会很感激。

autobuffer
不再是一个有效的属性,它已被替换为
preload
(设置为
none
metadata
auto

循环
当前不受Firefox支持


试着在
源代码中省略编解码器声明,看看它是如何工作的?

问题在于您的视频。您的视频没有atom moov数据,因此必须完全下载,才能使用flash播放(无渐进下载)。有一个简单的解决办法。有一个AdobeAIR应用程序,它应该在文件的开头添加您的moov数据

你可以下载它。你可以找到更多的信息

关于您对标记所做的更改。您应该始终添加类型属性。关于自动缓冲和预加载。autobuffer实际上不是HTML5编译器,已更改为预加载。FF3.6不支持自动缓冲,但不支持预加载,幸运的是,如果附加了preload=“”/preload=“auto”,JMEDIAELENT将检测到这一点,并将自动将自动缓冲设置为true。但如果您使用的是autoplay,则会自动设置播放器的行为,以便尽快下载视频。循环也由jMediaElement规范化,所以这里没有问题。您的HTML代码应该如下所示:

<video poster="poster.jpg" autoplay loop >
  <source src="video.mp4" type="video/mp4" />
</video>

或者稍微短一点:

<video poster="poster.jpg" src="video.mp4" type="video/mp4" autoplay loop ></video>


我删除了编解码器声明-和
autobuffer
参数-仍然存在相同的问题。我想应该怪jwPlayer…谢谢!在我用这个AIR应用程序(QTIndexSwapper2)处理完视频后,一切正常。非常感谢对html部分的澄清和简化,所以毕竟(使用jme)html5视频没有那么复杂。我甚至找到了AIR应用程序的PHP版本,但尽管AIR应用程序与我的视频配合得很好,但PHP脚本告诉我这一点“moov atom不在文件末尾,该文件已准备好进行渐进下载,或者它是一个无效文件。”-因此,我们似乎必须坚持使用AIR应用程序或使用编码软件,该软件具有此选项。。。
<video poster="poster.jpg" src="video.mp4" type="video/mp4" autoplay loop ></video>