Sitecore 媒体库与 iOS 不兼容?

5
我在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个回答

4
我曾经在SDN上发布过一个类似的问题。它是关于如何在iPad上播放从媒体库中提供的视频的,具体内容可以参考此处。有用的回答是,Sitecore媒体请求HTTP处理程序(sitecore_media.ashx)以块状形式(HTTP transport, Transfer-Encoding: chunked)传递媒体响应,这与苹果协议冲突(响应必须以一个块传递给客户端)。您可能需要尝试查看是否可以覆盖MediaRequestHandler。

3

我遇到了同样的问题,通过以下几个步骤解决了它:

  1. I added the mime-type to MimeType.config as below:

    <mediaType extensions="mp4"><mimeType>video/mp4</mimeType></mediaType>
    
  2. Went into the item in the Media Library, and changed the Mime Type of the Item to be "video/mp4".

  3. Went into the server, and deleted all files under "C:\inetpub\wwwroot\Sitecore62\Website\App_Data\MediaCache"

我在Curl下有不同的标题值,但错误的MIME类型与您的一致。一旦我完成了上述所有操作,MIME类型就会正确返回,并且视频可以播放-以下是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>

0
我给Mark点了个+1,但我也提供一个替代方案,您能否通过在CDN(如Akamai)上镜像传输内容或完全将其托管在视频CDN(如Bits on the Run(http://www.longtailvideo.com/bits-on-the-run/))上来解决问题?
这可能会导致更低的带宽成本和更好的性能,而不是不断从Sitecore提供视频。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接