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.m3u8和http://localhost/bipbop/bipbopall.m3u8。 Chrome尝试播放前者时会下载并保存后者。所以我仔细检查了我的mime类型设置,在我的httpd.conf
中设置如下AddType application/x-mpegURL .m3u8
AddType video/MP2T .ts
答案 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直播