Http Live Streaming不支持Apache

时间:2011-06-22 10:54:19

标签: apache mime-types http-live-streaming

My Http Live Streaming设置:Apache托管html,m3u8和ts文件

ts 文件从http:devimages.apple.com/iphone/samples/bipbop/gear1/fileSequence*.ts复制过来。视频编码没有任何问题(通过实际播放这些文件进行验证)

m3u8 文件(多比特率和叶级)都是从apple的示例中复制出来的,语法正确,如下所示:

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10, no desc
fileSequence0.ts
...
#EXTINF:1, no desc
fileSequence180.ts
#EXT-X-ENDLIST

videoplay.html (下方)无法从我的apache服务器流式传输视频

<video src="bipbop/bipbopall.m3u8" controls autoplay ></video>

然而,在修改videoplay.html(下面)时,视频流从Apple的网站

就好了
<video src="http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8" controls autoplay ></video>

我怀疑mime类型设置有问题,因为Chrome以不同方式处理http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8http://localhost/bipbop/bipbopall.m3u8。 Chrome尝试播放前者时会下载并保存后者。所以我仔细检查了我的mime类型设置,在我的httpd.conf

中设置如下
AddType application/x-mpegURL .m3u8
AddType video/MP2T .ts
  • 我的mime类型设置是否正确?
  • 我们如何计算苹果网站宣传的哑剧类型协会?
  • 或者我们是否必须到别处去解决这个问题?

3 个答案:

答案 0 :(得分:3)

这可能看起来很奇怪但我也遇到了类似的问题,经过大量调试后我发现.m3u8索引文件中的空行可能会导致此类问题。请仔细检查索引文件中的空行。

答案 1 :(得分:0)

迟到了,但为了清楚起见:

File extension |                 MIME type
-------------------------------------------------------------
.M3U8          | application/x-mpegURL (or vnd.apple.mpegURL)
.ts            | video/MP2T

来源:Apple Developer Streaming Media Guide – HTTP Streaming Architecture

答案 2 :(得分:0)

根据HLS rfc文档,您应该使用“application / vnd.apple.mpegurl”或“audio / mpegurl”,但您也可以简单地使用.m3u8或.m3u结束路径。

  

每个播放列表文件必须可以通过路径识别   其URI的组件或HTTP Content-Type。在第一种情况下,   路径必须以.m3u8或.m3u结尾。在第二,   HTTP Content-Type必须是“application / vnd.apple.mpegurl”或   “音频/ mpegurl”。客户端应该拒绝解析那些播放列表   没那么明确。

~rfc8216第4章,HTTP直播