如何解决流媒体视频(rtmp)性能问题



我通过rtmp从Amazon Cloudfront流媒体视频。视频需要很长时间才能开始播放,我也不知道为什么。通常我会使用Firebug或Web Inspector中的"Net"面板来获得资源何时开始加载以及发送所需时间的良好第一印象(这可以指示问题是在服务器端还是网络上,而不是浏览器呈现)。但是由于视频是在Flash播放器(Flowplayer在这种情况下)中播放的,因此不可能收集有关流状态的任何信息。而且因为它是由Amazon Cloudfront提供的,所以我不能在服务器上放置任何类型的调试或测量工具(如果这样的工具存在的话)。

所以…我的问题是:我可以用什么方法来调查这个问题?我希望会有一些设置,我可以调整无论是前端(流播放器)或后端(Cloudfront),但没有能够衡量任何东西,甚至了解问题在哪里,我是在损失那些可能是什么。

关于如何解决流媒体视频性能的问题有什么想法吗?

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

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

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

假设-如果你去尝试观看视频-然后在20分钟后回来再次点击它-它加载得很快?

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

在一个特定的用例中(例如,原始内容的小文件大小,长时间运行的大缓存),这一切都很好,但是,当它扩展到大量媒体主机通过系统(例如CloudFront)运行内容时,它就变成了一个问题。

他们在边缘服务器上保存的媒体缓存会相当频繁地被转储——在缓存被填满之后——开始从缓存中最老的文件开始转储——所以如果你有不经常被观看的大型视频文件——它们不会坐在边缘服务器缓存中,并且需要很长时间才能传输到边缘——因此,给一个完全可怕的最终用户体验。

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

我注意到从云前端传输RMTP时出现了非常明显的延迟。我发现从amazon S3桶切换到直接http渐进式可以使延迟时间消失。

最新更新