如何解决流视频(​​rtmp)性能问题?

时间:2011-10-08 02:38:43

标签: streaming rtmp amazon-cloudfront

我通过Amazon Cloudfront的rtmp播放视频。视频花了很长时间才开始播放,我没有办法弄清楚原因。通常我会使用Firebug或Web Inspector中的“Net”面板来获得关于资产何时开始加载以及发送所需时间的良好第一印象(这可以指示问题是在服务器端还是网络上)与浏览器呈现相比)。但由于视频是在Flash播放器(在本例中为Flowplayer)中播放的,因此无法收集有关流状态的任何信息。此外,由于它是从Amazon Cloudfront提供的,因此我无法在服务器上放置任何类型的调试或测量工具(如果这样的工具存在)。

所以......我的问题是:我可以采取哪些方法来调查这个问题?我希望有一些设置我可以调整前端(流动播放器)或后端(Cloudfront),但是无法测量任何东西甚至无法理解问题所在,我很茫然至于那些可能是什么。

有关如何解决流视频性能问题的任何想法?

3 个答案:

答案 0 :(得分:5)

您可以使用WireShark(可以diesect RTMP)或Fiddler来检查发生了什么...要记住的另一点(客户端和服务器除外)是您的ISP。< / p>

要深入挖掘,您可以使用此http://rtmpdump.mplayerhq.hu/http://www.fluorinefx.com/http://www.broccoliproducts.com/softnotebook/rtmpclient/rtmpclient.php

你需要记住,RTMP并不理想,因为它通常绕过代理并尝试建立直接连接......如果这不起作用,它可以回退,但这意味着已经过了一段时间(它等待连接超时等。)...如果您可以选择将CloudFront / Flowplayer设置为RTMPT,那么我建议这样做,因为它使用端口80进行连接。

答案 1 :(得分:0)

据推测 - 如果你去尝试观看视频 - 然后在20分钟后再回来并再次点击它 - 它会很快加载?

SAN - &gt;边缘服务器---&gt;客户端

这在特定用例中很好(即原始内容的小文件大小,长时间运行缓存) - 但是,当它被扩展时会成为一个问题,许多媒体主机通过系统运行内容即CloudFront。

他们在边缘服务器上保留的媒体缓存经常被转储 - 在缓存填满后 - 从缓存中最旧的文件开始转储 - 所以如果你有大量不经常查看的视频文件 - 它们将不会坐在边缘服务器缓存中,并花费很长时间转移到边缘 - 因此,给予完全可怕的最终用户体验。

例如youtube也是如此 - 去观看一些随机模糊的高持续时间视频 - 并尝试通过几个代理,所以你点击不同的边缘服务器,你会看到完全相同的事情发生。

答案 2 :(得分:0)

我注意到从Cloudfront流式传输RTMP时出现非常明显的延迟。我发现从亚马逊S3水桶切换到直接的http进步使得滞后时间消失了。