Flash/Flex: 渐进式下载 vs. RTMP

7
我正在尝试理解并准确确定何时在flex/flash中使用渐进式下载和rtmp。主要区别似乎是rtmp不是通过http提供的,而渐进式下载则是。由于它不是rtmp,因此资源受到保护,因为从swf外部无法连接到rtmp服务器。
即使用户可以看到该对象代码并找出其位置。
<object data="http://media.example.com/jw-player/player.swf" >
    <param value="streamer=rtmp://sub.example.com/video
           &amp;file=1330/title/folder2/theflvresource.flv
           &amp;id=FlvPlayer" name="flashvars">
</object>

如果无法连接到RTMP,则它们将无法连接。所以当您想要保护资源时,RTMP似乎更有用?就只有这些吗?

3个回答

6

我同意xtat的观点,但是想要更多地添加。

在我不那么谦逊的看法中,RTMP(或任何基于UDP的流媒体协议)与“渐进式下载”(实际上只是基于HTTP的流媒体的一部分)的利弊:

  • 基于UDP的流媒体
    • 优点
      • 目前更难盗取流
      • 目前支持实时直播,而基于HTTP的协议不支持
      • 多播能力,在企业内网中可能很有用
    • 缺点
      • 相对于基于http的方法,资源使用率大幅增加
      • 需要专门的服务器(FMS,Red5,Wowza等)
      • 缓冲更加明显
      • 防火墙问题,尤其是企业客户
  • 基于HTTP的流媒体
    • 优点
      • 非常简单易懂
      • 可以在媒体中查找。FLV和MP4(需要一些努力)
    • 缺点
      • 易于盗取流。例如:Real Downloader
      • 实时流目前不可能,但给它一年时间。苹果正在使这成为现实。
      • 没有多播

整个基于HTTP的方法充满了and/but/if情况,对什么是可能和什么是不可能有许多误解,以及缺乏共同的定义。

人们在讨论基于HTTP的流媒体时会考虑两个基本特征:查找规定带宽。从这里,我们得到了所有这些术语,如“伪流媒体”、“渐进式下载”等。

这些是我用来描述基于HTTP的流媒体服务器的定义:

  • 规定比特率:平面媒体文件由服务器分析,并将媒体发送到播放器需要无缓冲播放媒体的速度。
  • 查找:网络服务器能够查找媒体并有效地创建一个客户端可用的新“文件”。类似于http字节范围请求,只是添加/修改标头和媒体元数据。
  • 渐进式下载:尽快发送文件。基本上,将媒体文件放置在网站服务器上,该服务器以“哑”的方式将文件发送到客户端,就像大型.iso或.zip文件一样。
  • 伪流媒体:网络服务器能够使用规定比特率发送媒体文件并查找文件。

2

个人认为选择RTMP而非渐进式下载的主要原因是它允许用户在不必下载整个文件的情况下跳转到视频中间部分。


2
嗯,你确定这只限于渐进式下载吗?我记得有人从视频网站(可能是YouTube,但我可能记错了)说他们使用渐进式下载来播放视频,但你仍然可以跳过并从尚未下载的中间部分开始观看。 - drummer
1
我相信YouTube是某种混合体,但那些视频肯定是流媒体...真正的渐进式需要等待每个字节下载完毕才能播放。 - Leon Gaban
1
“真正的渐进式下载”?你这么说好像有一个规范一样。Youtube.com 通过发出另一个 HTTP 请求来实现。他们的服务器然后寻找文件的中间部分,填充适当的标头,并从那个点发送媒体。这并不是什么高深的技术。详细了解“mod_flv”和“mod_h264_streaming”等术语。 - Stu Thompson
让我澄清一下——我的意思是它可以开箱即用,无需调整。我知道技术娴熟的 IT/Ops 部门可以在没有 RTMP 服务器的情况下使其工作,但通常情况下,如果你为客户做 Flash 工作(据我所知有 98% 的 Flash 工作属于此类),你需要安装某些东西(或让任何随机人员安装),然后在离开进行下一个项目时删除它。 - Cory Petosky
这是错误的,因为由于HTTP范围请求,当用户寻找时,播放器将使用HTTP请求来获取文件的特定块。 - Benja
你现在可能是对的。当我写下那条评论的时候,也就是2009年,我的客户端都不支持HTTP范围请求。 - Cory Petosky

2

现在除非你需要录制,否则使用RTMP没有什么意义。HTTP更加简单,显然得到了更广泛的支持,易于调试,而且它确实允许在CDN上进行寻找。这就是我在Viddler上设置的方式。


有趣,但你是在谈论真正的HTTP流媒体还是修改后的HTTP渐进式下载?我可能会看看Viddler,因为他们似乎有一些我不知道的白标服务,但我仍然对了解这项技术感兴趣。 - drummer
1
在我看来,“渐进式”这个术语有些误导,但这就是我们正在做的事情 :) - user140730
尽量不要过于市场化--如有任何问题,请随时通过 todd@viddler.com 与我联系:) - user140730

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接