有没有办法通过网站中嵌入的Flash小部件或其他方法流式传输存储在Amazon S3上的MP3?
答案 0 :(得分:35)
是的。首先,您需要在S3帐户中创建一个桶,该桶全部为小写,全局唯一且与DNS兼容;例如,我创建了一个名为“media.torusknot.com”的存储桶。
然后为了使一切看起来不错,您需要创建一个DNS CNAME条目,以将您网站的子域映射到该S3存储桶。这样您就可以通过“http://media.example.com/somefile.mp3”访问上传到该S3存储桶的文件。您只需要在文件和文件上设置ACL。确保允许公共访问的存储桶。
最后,如果您想通过Flash播放器将视频文件从S3流式传输到另一个域,您还必须告诉Flash,可以从其他域中提取内容。在存储桶中创建一个名为“crossdomain.xml”的文件,其中包含以下内容:
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
</cross>
允许从任何地方访问媒体 - 如果您愿意,可以更具体,但这是最简单的方法。
相关资源:
答案 1 :(得分:26)
要更新此问题的答案,如果您想真正对客户端进行STREAM,您可以在S3存储桶之上使用Amazon Cloudfront(如Rudolf所述)。在Cloudfront中创建一个指向S3存储桶的“流式传输分发”。
这将通过RTMP流式传输(适用于网络和Android设备)。您可以使用JW Player或类似播放器播放流式文件。
Cloudfront Streaming使用Adobe Flash Media Server 3.5。
还可以使用签名网址播放安全内容。
答案 2 :(得分:0)
如果您指的是“真正的流式传输”(不是渐进式下载),那么仅使用S3就无法做到这一点。
您需要将文件存储在S3上,使用MediaConvert将mp3转换为HLS流(与其他相比,我建议使用HLS),这会将mp3分解为.m3u8和.ts文件,然后使用播放器例如VideoJS,然后您可以将音频作为真正的流播放。
或者您也可以使用s3 audio streaming player之类的https://s3mediavault.com/demo/s3-streaming-audio-player/