尝试使用HTML5视频设置jPlayer,并为同一视频设置Flash后备广告。
HTML5视频播放速度非常快(仅约1秒“缓冲”时间)!
我遇到的问题是Flash后备。使用HTML5版本在1秒内开始播放的同样精确视频需要50秒以上才能开始播放Flash版本(我使用的是1.5 Mbps DSL连接)。在这段时间里,根本没有“进步”栏......只是一个黑屏。
这几乎就像是在开始播放之前尝试下载整个视频。我已经在Firefox,Chrome,IE9,IE8和IE7中对此进行了测试。所有浏览器都一样。 Flash播放器在所有浏览器中都是最新的。另外,我总是在每次测试之间清除浏览器的缓存,这样我就可以确定每个测试都是准确的。
任何可能导致这种情况的想法?
我尝试过很多不同的视频编码器...... Sony Vegas,Handbrake,Miro,Super,Freemake,Any Video Converter,但每个视频编码器的结果都差不多(使用HTML5视频时即时播放,但使用Flash后备时的缓冲时间非常长。
那么我想我的服务器可能存在MIME问题,所以我将以下代码添加到根目录中的.htaccess文件中......
# AddType TYPE/SUBTYPE EXTENSION
AddType audio/mpeg mp3
AddType audio/mp4 m4a
AddType audio/ogg ogg
AddType audio/ogg oga
AddType audio/webm webma
AddType audio/wav wav
AddType video/mp4 mp4
AddType video/mp4 m4v
AddType video/ogg ogv
AddType video/webm webm
AddType video/webm webmv
但这没有任何区别。
然后作为测试,我从jPlayer服务器下载了“Big Buck Bunny”视频(m4v,ogv,webm),并将它们上传到我的服务器,令我惊讶的是,即使Flash版本也立即播放! (1秒内)。很奇怪。
然后,对于另一个测试,我使用我拥有的每个编码器(Sony Vegas,Handbrake,Miro,Super,Freemake,Any Video Converter)将Big Buck Bunny视频重新编码为mp4 / m4v,将所有这些文件上传到我的服务器,然后单独测试每个文件的Flash回退。对于每一个,Flash播放开始花了很长时间(甚至是我编码为超小文件大小的那些)。然而,所有HTML5版本仍然会立即播放。
我真的很困惑,因为导致Flash后备需要花费这么长时间来开始播放。在过去的几天里,我已经尝试过每一个我能想到的可能的测试来查明问题,但仍然无法弄明白。
有什么想法吗?
如果有帮助,下面是我用来测试它的页面之一。在该特定页面上,我使用了来自其中一个jPlayer演示的完全相同的HTML代码,并将默认解决方案设置为“flash”。唯一不同的是我已经重新编码了m4v文件,以便演示Flash延迟(对于这个特定的视频,我的结束时间约为30秒)......
http://thebestinfo.org/jplayer/flash.html
就像我上面提到的,无论我使用什么编码器,或者我压缩文件有多小,使用Flash后备时都会有很大的延迟。
如果有任何帮助,我会非常感激!在此先感谢!!
答案 0 :(得分:1)
根据jPlayer dev guide's server response部分,您描述的行为可能是由服务器无法接受字节范围请求或文件头中缺少媒体长度元数据引起的。
字节范围请求
您的服务器必须启用范围请求。通过查看服务器的响应是否包含其标题中的Accept-Ranges,可以轻松检查这一点。大多数HTML5浏览器允许在下载期间寻找新的文件位置,因此服务器必须允许请求新的Range。
无法接受字节范围请求会导致某些HTML5浏览器出现问题。通常无法从文件中读取持续时间,因为某些格式要求读取文件的开头和结尾以了解其持续时间。如果服务器上没有启用Range请求,Chrome往往会成为大多数问题的浏览器,但是所有浏览器都会遇到一些问题,即使只是你必须等到所有媒体加载才跳到接近结尾
众所周知,这个问题会影响Jetty 6服务器的默认配置。
jPlayer社区编写了一个PHP函数,可以提供支持Range请求的媒体文件。请参阅此主题的jPlayer Support Group Post。