2011-10-08 28 views
3

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

所以......我的问题是:有什么方法可以去调查这个问题?我希望能够在前端(流式播放器)或后端(Cloudfront)上调整一些设置,但是无法测量任何东西甚至无法理解问题出在哪里,我不知所措至于这些可能是什么。

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

回答

5

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

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

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

+0

您能解释一下您的声明“RTMP不理想,因为它通常绕过代理并尝试进行直接连接”与加载速度有什么关系?我不明白如何切换到使用端口80的RTMPT会使速度更快。我对连接的人没有任何问题 - 只需加载速度。谢谢。 –

+1

RTMP试图直接连接...如果这是不可能的,它会回落...但直到它回落的时间可能是相当明显的,因为根据具体的网络screnario,这可能意味着RTMP等待,直到超时发生......你说过需要很长时间才能开始播放......我所描述的可能是一个解释... – Yahia

+0

好的,谢谢你的回应。我还没有尝试过任何建议,但他们确实看起来非常有前途 - 其他人没有回应,所以你得到了奖励!再次感谢您的帮助。 –

0

想必 - 如果你去尝试观看视频 - 然后回来20分钟后再次打 - 它加载很快?

SAN - >边缘服务器--->客户端

这是所有的孔中,在具体使用情况良好(即原产地的内容,大量长时间运行的高速缓存的文件大小小) - 但是,它成为一个问题当它被扩大时,许多媒体主机通过系统运行内容,例如CloudFront。

他们保留在其边缘服务器上的媒体缓存经常被转储 - 在缓存填充后 - 开始从缓存中最老的文件转储 - 因此,如果您有大量视频文件不经常查看 - 他们不会坐在边缘服务器缓存中,并花费很长时间才能转移到边缘 - 因此,给予了绝对可怕的最终用户体验。

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

+0

不,它似乎以相同的缓慢加载,无论请求多少次相同的视频。我看到你在说什么,如果它没有得到很多浏览,需要经常从缓存中重新加载 - 如果是这种情况,这是否意味着我只是运气不好,不应该使用Amazon CloudFront?我认为流视频会更快,因为它可以开始发送内容,而无需首先加载整个文件(但也许*服务器*需要首先加载整个文件?)。感谢您的帮助。 –

0

我注意到从云端流式传输RMTP时存在非常明显的延迟。我发现从亚马逊S3存储桶切换到直连http进程使得延迟时间消失。