【发布时间】:2014-10-20 15:07:22
【问题描述】:
我们正在尝试在 Chromecast 设备上播放 HLS 视频。 我们启用了 CORS。 我们可以成功播放正常的 HLS 视频。但我们遇到了 URL 哈希问题。
我们发送 chromecast,一个带有散列的 url(出于安全目的) 例子: http://domainname.com/70000871V/70000871V.m3u8?cp=%2FsFcurrent%2F70000871V%2F*&cf=1403&e=1493&h=cbc90
上面基本上是一个m3u8视频索引文件,chromecast查看索引文件并选择播放的分辨率,当它访问子文件时,它会删除url中提供的哈希。这导致 chromecast 无法访问子文件,因为它删除了 url 中的哈希参数。
考虑 m3u8 文件包含一些文件,例如 70000871V_iphone_med.m3u8,因此当它尝试访问它们时,它会删除散列...
如何告诉 chromecast 在访问索引文件时保留哈希参数。
注意:此网址在移动设备上播放成功。
控制台显示以下问题:
### 媒体元素加载开始 sample_media_receiver.html:573XMLHttpRequest 无法加载 http://domainname.com/s/web_vod/current/90002466V/ROTOX013V_iphone_med.m3u8。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“http://”。 sample_media_receiver.html:1
主机错误 - 致命错误:代码 = 3 sample_media_receiver.html:487
### 媒体元素停滞不前视频网址:http://domainname.com/70000871V/70000871V.m3u8?cp=%2FsFcurrent%2F70000871V%2F*&cf=1403&e=1493&h=cbc90
.m3u8 文件有,
EXTM3U
EXT-X-VERSION:3
EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2037261,CODECS="avc1.4d001f,mp4a.40.5",RESOLUTION=960x540
ROTOX013V_iphone_hi.m3u8
EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=740606,CODECS="avc1.66.30,mp4a.40.5",RESOLUTION=640x360
ROTOX013V_iphone_med.m3u8
EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=296618,CODECS="avc1.66.30,mp4a.40.5",RESOLUTION=416x234
ROTOX013V_iphone_low.m3u8
EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=5094217,CODECS="avc1.4d001f,mp4a.40.5",RESOLUTION=1280x720
ROTOX013V_ipad_hi.m3u8
这个怎么做?
【问题讨论】: