CloudFront HLS流无法正常工作 - S3(HLS v4)

时间:2015-07-21 02:01:22

标签: amazon-web-services amazon-s3 video-streaming html5-video

我使用CloudFront设置基于S3的HLS流,但HLS流似乎不起作用。我使用此网络广播创建了存储桶和转码内容: https://www.youtube.com/watch?v=MuQ_qg7U0l8

内容似乎具有正确的权限,但缺少mime类型(我看到m3u8有mime类型的text / plain。难道' transcoder设置正确吗?

我不确定这是视频无法播放的原因。在Chrome中,它只显示一个使用HTML5标记的空白屏幕,而在Safari中,如果我尝试直接播放它,它会显示播放按钮,但没有别的。

任何想法在哪里看?我原来的内容是mp4(在使用弹性转码器之前)

更新:啊似乎是HLS-v4的问题,如果我转码到HLS-v3,工作正常。所以也许与mime-type(v3中相同的mimetypes)无关

2 个答案:

答案 0 :(得分:1)

我检查了你的测试流,并且mime类型是正确的:

curl -I http://.../master.m3u8
HTTP/1.1 200 OK
Content-Type: application/x-mpegURL

curl -I http://.../hls_1m_.ts
HTTP/1.1 200 OK
Content-Type: video/MP2T

流也可以正常播放。

有些客户只支持协议的版本3 ,我认为这是您的问题。

版本4 通过EXT-X-BYTERANGE添加了字节范围支持。查看播放列表:

#EXTINF:3.754688999999999,
#EXT-X-BYTERANGE:118258@1990168
hls_1m_.ts

这肯定会引起一些不支持新功能的玩家的问题。最安全的方法是暂时使用版本3

答案 1 :(得分:0)

在我的情况下,我正在使用s3公共存储桶,但无法流式传输

我尝试在s3中设置CORS配置,效果很好

我在S3控制台的CORS配置中添加了以下内容(s3>“公共存储桶”>权限> CORS配置)

 <?xml version="1.0" encoding="UTF-8"?>
 <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
 <CORSRule>
     <AllowedOrigin>*</AllowedOrigin>
     <AllowedMethod>GET</AllowedMethod>
     <MaxAgeSeconds>3000</MaxAgeSeconds>
 </CORSRule>
 </CORSConfiguration>

有关更多详细信息,this可能会帮助您