jPlayer-Flash回退比HTML5版本的同一视频开始播放所需的时间长30倍

jPlayer-Flash回退比HTML5版本的同一视频开始播放所需的时间长30倍,jplayer,Jplayer,尝试使用HTML5视频设置jPlayer,同时为同一视频设置Flash回退 HTML5视频播放速度极快(只有大约1秒的“缓冲”时间) 不过,我遇到的问题是闪存回退。在HTML5版本中,同样的视频在1秒内开始播放,而在Flash版本中开始播放则需要50秒以上的时间(我使用的是1.5 Mbps的DSL连接)。在这段时间里,根本没有“进步”栏。。。只是一个黑屏 它几乎就像是在开始播放之前下载整个视频。我已经在Firefox、Chrome、IE9、IE8和IE7中对此进行了测试。在所有浏览器中都是一样的

尝试使用HTML5视频设置jPlayer,同时为同一视频设置Flash回退

HTML5视频播放速度极快(只有大约1秒的“缓冲”时间)

不过,我遇到的问题是闪存回退。在HTML5版本中,同样的视频在1秒内开始播放,而在Flash版本中开始播放则需要50秒以上的时间(我使用的是1.5 Mbps的DSL连接)。在这段时间里,根本没有“进步”栏。。。只是一个黑屏

它几乎就像是在开始播放之前下载整个视频。我已经在Firefox、Chrome、IE9、IE8和IE7中对此进行了测试。在所有浏览器中都是一样的。Flash播放器在所有浏览器中都是最新的。此外,每次测试之间我都会清除浏览器的缓存,这样我就可以确保每次测试都是准确的

你知道这是什么原因吗

我试过很多不同的视频编码器。。。Sony Vegas、Handbrake、Miro、Super、Freemake、任何视频转换器,但我对每一个都有或多或少相同的效果(使用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服务器下载了“大公兔”视频(m4v、ogv、webm),并将它们上传到我的服务器上,令我惊讶的是,甚至Flash版本也会立即播放!(1秒钟内)。很奇怪

因此,在另一个测试中,我使用我所有的编码器(索尼维加斯、手刹、Miro、Super、Freemake、任何视频转换器)将大公兔视频重新编码到mp4/m4v,并将所有这些文件上传到我的服务器,然后分别使用这些文件测试闪存回退。对于每一个,Flash播放都需要很长时间才能开始(即使是那些我编码成超小文件大小的)。然而,所有HTML5版本仍然可以即时播放

我真的很想知道是什么原因导致Flash回退需要很长时间才能开始播放。在过去的几天里,我尝试了我能想到的所有可能的测试来找出问题,但仍然无法解决它

有什么想法吗

如果有帮助的话,下面是我用来测试这个的一个页面。在那个特定的页面上,我使用了一个jPlayer演示中完全相同的HTML代码,并将默认解决方案设置为“flash”。唯一不同的是,我重新编码了m4v文件,以演示闪存延迟(对于这个特定的视频,在我这边大约30秒)

就像我上面提到的,无论我使用什么编码器,或者压缩文件有多小,使用Flash回退时总是会有很大的延迟

如果有人能帮我解决这个问题,我将不胜感激!提前谢谢

根据本节,您描述的行为可能是由于服务器无法接受字节范围请求或文件头中缺少媒体长度元数据造成的

字节范围请求 服务器必须启用范围请求。通过查看服务器的响应是否在其标头中包含接受范围,可以很容易地检查这一点。大多数HTML5浏览器允许在下载过程中查找新的文件位置,因此服务器必须允许请求新的范围

无法接受字节范围请求将导致某些HTML5浏览器出现问题。通常无法从文件中读取持续时间,因为某些格式要求读取文件的开始和结束以了解其持续时间。如果服务器上未启用范围请求,则Chrome浏览器往往是问题最多的浏览器,但所有浏览器都会出现一些问题,即使只是您必须等待所有媒体加载后才能跳到末尾

已知此问题会影响Jetty 6服务器的默认配置

jPlayer社区编写了一个PHP函数,可以为媒体文件提供范围请求支持。请参见本主题


如果我使用的是jplayer的flash播放器,那么是否也支持字节范围请求?