因此,我一直在 CDN 之间犹豫不决,试图优化我们的服务解决方案。我们将短视频剪辑投放到我们的代码中,这些代码要么显示 html5 视频元素(MP4 或 OGG),要么显示 flash swf(FLV)作为后备。
我们使用 Amazon S3 存储这些媒体文件,并使用 CloudFront 作为内容交付网络。我们一直在尝试使用 CloudFront 的 Flash Media Server 发行版进行闪存回退,并将 FLV 流式传输到 Flash 回退中。效果很好 :)
但是,我想使用相同的设置 (Origin > Streaming CDN > Client) 将 MP4 和 OGG 文件放入 HTML5 位置。为此,我需要通过 RTP 或 RTSP 而不是 CloudFront 和 FMS 的 RTMP 来流式传输它们。
到目前为止,我还没有找到支持 RTSP 流的 CDN。有没有办法使用 CloudFront 的流媒体服务器,并以 mp4 和 ogg 作为源文件将流协议转换为 RTSP?
(我还应该指出,价格在这里是一个相当大的因素。该项目有点依赖于每 TB/GB/MB 级别的价格点。)
答案1
我认为 HTML5 浏览器并不普遍支持 RTSP/RPT 协议。Apple 设备可能能够使用 RTSP,IE9 或许也能使用(因为在 Silverlight 中出现 Smooth Streaming 之前,较旧的 Windows Media 服务器也使用 RTSP)。但 HTML5 标准并未定义要使用的协议或编解码器。
我们当前的视频服务逻辑是:
如果安装了 Flash 10.1 或更高版本,则通过 Flash 使用多种比特率的 MP4 和 HTTP 动态流
如果存在 Flash v9 或更高版本,则在 Flash 播放器中通过 HTTP 逐步下载回退到 MP4
- 回退到 HTML5 视频,其中包含 MP4 和 WebM 文件的源元素,让浏览器进行排序。MP4 被列在第一位,因此是首选。这也是 HTTP 渐进式下载。
这种方案使我们向所有观众(主要是企业用户而非家庭用户)的传输率达到 99% 以上。在我们的体验中,企业防火墙和专用流媒体协议(如 RTMP 和 RTSP)通常不会混用 - 它们经常被阻止。我们的访问者中很少有人能通过防火墙接收 RTSP 或 RTMP 流,而且在 HTTP 流中隧道传输 RTP 或 RTMP 的“解决方案”比简单的 HTTP 下载更不节省带宽。