我使用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)无关
答案 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可能会帮助您