Sitecore媒体库与iOS不兼容?

时间:2011-06-29 18:46:50

标签: ios iis video sitecore sitecore6

我遇到了在iOS设备上播放正确编码视频的问题。以下是一些背景/信息:

  • 我们正在使用jwPlayer进行播放
  • 视频通过Flash和HTML5播放效果很好
  • 视频是通过zencoder的默认设置编码的
  • 我们正在提供来自同一服务器的视频,该服务器适用于iOS设备(但该网站不是Sitecore)
  • 通过dropbox同步时,我的iPad上播放的视频

通过Zencoder的支持人员的一些调查和一些帮助,我们认为问题可能与标题有关(顶部是视频不起作用,底部工作正常):

$ curl -I http://fraternity.computol.com/~/media/Fraternity/mp4/leadership_zen.mp4
HTTP/1.1 200 OK
Date: Wed, 29 Jun 2011 16:30:29 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Content-Disposition: attachment; filename="leadership_zen.mp4"
Transfer-Encoding: chunked
Set-Cookie: fraternity#sc_wede=1; path=/
Cache-Control: public, max-age=604800
Expires: Wed, 06 Jul 2011 16:30:29 GMT
Last-Modified: Wed, 29 Jun 2011 16:28:26 GMT
ETag: 9cba9593424645bfb372a01bfe522f97
Content-Type: application/octet-stream

$ curl -I http://www.rhythmonthevine.org/videos/SHR_ROTV_Dierks_v02.mp4
HTTP/1.1 200 OK
Content-Length: 16091772
Content-Type: video/mpeg
Last-Modified: Thu, 24 Mar 2011 14:05:49 GMT
Accept-Ranges: bytes
ETag: "8374ff932ceacb1:335c"
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Date: Wed, 29 Jun 2011 16:30:32 GMT

有没有人知道这个问题是否真的与标题相关?如果是这样,有没有办法让sitecore正确地为媒体提供服务?

编辑:此外,如果它有任何不同,我们在IIS6上。

编辑:特别麻烦的区别是:

  • 转移编码(无效的转码)
  • 内容长度(顶部视频中缺失)
  • 内容类型(我认为这是最重要的一个。我在sitecore中设置了正确的mime类型 - 我不知道Sitecore没有提供它)

3 个答案:

答案 0 :(得分:4)

我有一个类似的问题,我在SDN上发布了。它大约是getting videos to play on the iPad,可以从媒体库中获得。有用的响应是Sitecore媒体请求HTTP处理程序(sitecore_media.ashx)以块(HTTP transport, Transfer-Encoding: chunked)传递媒体响应,这与Apple协议冲突(响应必须在一个块中传递给客户端) 。您可能想要尝试查看是否可以覆盖MediaRequestHandler。

答案 1 :(得分:3)

我遇到了同样的问题,并且能够通过以下几点来解决这个问题:

  1. 我将mime-type添加到MimeType.config中,如下所示:

    <mediaType extensions="mp4"><mimeType>video/mp4</mimeType></mediaType>
    
  2. 进入媒体库中的项目,并将项目的Mime类型更改为&#34; video / mp4&#34;。

  3. 进入服务器,并删除&#34; C:\ inetpub \ wwwroot \ Sitecore62 \ Website \ App_Data \ MediaCache&#34;

  4. 下的所有文件

    我在Curl下有不同的标题值,但错误的mime类型与你的一致。一旦我完成了上述所有操作,就会正确返回mime-type并播放视频 - 下面的HTML:

    <video class="video-js" width="640" height="360"  autoplay controls loop>
      <source src="http://<server>/~/media/client/videos/video.mp4" type="video/mp4" />
    </video>
    

答案 2 :(得分:0)

我给马克+1了,但我也会提供另一种选择,你是否可以通过在CDN(如Akamai)上镜像提供内容或将其完全托管在视频CDN(如奔跑的比特(http://www.longtailvideo.com/bits-on-the-run/)?

这可能会带来更低的带宽成本和更好的性能,而不是不断地从Sitecore提供视频。