html - 可以使用带有 HTML5 播放器的 Amazon S3/CloudFront 流式传输视频吗?

标签 html amazon-s3 video-streaming html5-video rtmp

我想使用 HTML5 视频播放器和流式传输视频。 S3/CloudFront 可以吗?我了解到亚马逊使用 RTMP 流媒体协议(protocol),而 HTML5 的 video 标签不支持 RTMP。有什么方法可以用 HTML5 播放器播放视频吗?

最佳答案

@Wayne Koorts 发布的大部分内容都为好的答案提供了基础。断开连接似乎是您可以通过渐进式下载“流式传输”视频。正如他所说明的,这适用于任何 html5 兼容的视频文件。

为了在 mp4 文件的渐进式下载中获得最佳性能,您需要将 moov 原子元数据显示在文件的开头。确保您的 mp4 文件具有此属性是 ffmpeg 包含 qtfaststart 程序的原因之一。

当然,渐进式下载并不是“流媒体服务器”。流媒体服务器旨在支持多种不同的功能,包括:

  • 安全和数字版权管理
  • 自适应流媒体/交织(支持将多种比特率交织到特定文件中)
  • 寻求

这里表达的特别关注似乎是搜索功能。碰巧这在 html5 和 s3/cloudfront 中得到很好的支持。

令人困惑的是,视频文件的云端有几个选项。一种选择是让他们的许可 Adob​​e FMS 服务器网络传送文件。这就是关于使用 RTMP 的混淆发挥作用的地方。然而,这只是一种选择。文件可以以标准的“下载”形式分发到云端,并且由于字节范围的实现和对所谓的伪流的支持,它们将具有搜索属性。

“伪流”这个词似乎有很多混淆,但在 html5 的情况下,它只是要求 HTTP 服务器支持 1.1 规范。查找时,客户端发送一个字节范围请求,服务器负责传送文件的那部分。

换句话说...使用 html5 播放器搜索确实可以使用云端服务器,因为它们与 HTTP 1.1 兼容。

至于流媒体服务器提供的其他一些功能,有许多竞争服务器已经实现了“H264 流媒体”或 MPEG-DASH 元素,作为使用 RTMP 和 FMS 兼容服务器的替代方案。许多基于 Flash 的播放器都支持这些功能,这超出了简单的搜索范围。 JWPlayer 和 Flowplayer 是支持部分或全部功能的两个播放器示例,但 HTML5 的视频播放器不支持任何这些功能。您可以在 http://h264.code-shop.com/trac#H264StreamingModuleIntroductionversion2 中了解更多信息

如果这还不足以让您感到困惑,Apple 实现了他们自己的“HTTP Live Streaming”协议(protocol),有时称为 m3u8,他们在 ios 和 quicktime 中支持该协议(protocol)。我提到这一点是因为人们经常想要一种方法来支持各种不同的设备。

我希望这有助于澄清一些事情。

关于html - 可以使用带有 HTML5 播放器的 Amazon S3/CloudFront 流式传输视频吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16275771/

相关文章:

javascript - 最好将数组存储在本地存储或许多变量中?

html - 复选框黑客语法的困难

javascript - 如何从当前插入符移动到具有特定类名的标签

java - Amazon S3 AWS 出于未知原因开始给出错误代码 400

python - 使用 Python 捕获 gstreamer 网络视频

html - 悬停在图像上时使 h2 文本下划线

amazon-s3 - 策略中的 S3 存储桶名称,terraform

python - 将 openpyxl 与 lambda 结合使用

ffmpeg amerge 和 amix 过滤器延迟

.net - 通过 .NET HTML5 流式传输 MP4 视频