【问题标题】:CloudFront HLS streaming not working - S3 (HLS v4)CloudFront HLS 流不工作 - S3 (HLS v4)
【发布时间】:2015-07-21 02:01:22
【问题描述】:

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

内容似乎具有正确的权限,但缺少 mime 类型(我看到 m3u8 具有 mime 类型 text/plain。不应该'转码器正确设置吗?

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

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

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

【问题讨论】:

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


【解决方案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

【讨论】:

  • duh,由于某种原因,它也刚刚开始在 Safari 上运行,我很难过!感谢 aergistal 的关注!
  • Safari 可能支持它,因为它是由 Apple 制造的,它也制造了 HLS
  • 是的,我现在,但是如果你再次阅读我的问题,它在 Safari 中也没有工作!
  • 如何检查 MIME 类型
【解决方案2】:

在我的情况下,我使用的是 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 可能会对您有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-23
    • 2021-10-01
    • 2014-09-06
    • 2020-10-19
    • 1970-01-01
    • 2013-09-09
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多