ffmpeg和Red5问题:将ffmpeg并发stream数量增加到Red5,导致数据包丢失

我有一个用flex编写的屏幕共享应用程序,使用这个应用程序,一个人可以通过Red5服务器(版本:1.0.3)与另一个人共享他的屏幕。 平台是Windows Server 2008.现在,我想加载testing这个红色的5服务器,以找出最多可以同时屏幕共享会话,它可以允许,没有任何质量妥协。 质量我的意思是,传输速度和传输过程中没有数据丢失。 我使用ffmpeg命令模拟了负载。

为此,我使用ffmpeg命令将传输(上传)存储在本地的FLV文件到Red5服务器。 在接收方客户端,自上传开始5秒后,我开始下载(发送)同一个FLV文件。 当我运行这个testingless于10对上游 – 下游会话时,这工作正常。 但是,当数量增加到10以上时,我正在观察传输中的重大丢包。

这是我在一个循环中运行的命令。 循环数是stream对的数量。

  1. 上游: ffmpeg -re -i <file_name1> -f flv -ar 22050 "rtmp://<stream_name>" -report
  2. 下游: ffmpeg -re -i "rtmp://<stream_name> live=1" <file_name2> -report

和设置的方式,在下游我会下载相同的上传文件。 “rtmp://”在两种情况下都是相同的。 我没有在logging模式下进行上游,因此没有物理文件被保存在服务器端。 当我分析我在接收客户端收到的文件时,由于帧丢失,这是一个质量差的video。 上传和下载机器是两个不同的机器。 我跑了好几个小时的testing,重复同样的10个同步stream媒体集。 每一组都一直给出相同的结果。

令我困惑的是,这个工作正常,没有任何数据包丢失less于10个同步stream媒体。 我在各种论坛上进行了search,但没有任何答案适用于这种情况。 有一段时间我以为Red5的容量有限,但是我发现很多post都说Red5可以很容易地扩展到很大的负载。 这是否意味着,问题是在我的configuration? 我不确定哪些是重点。

示例日志片段:

下游有许多缺失的数据。 例如,在帧101和102之间存在25秒的差异。 在重放video时,这段时间会停顿。在这段时间内,所有的帧都会丢失。

 frame= 101 fps=1.0 q=14.5 size= 2650kB time=00:01:41.00 bitrate= 214.9kbits/s frame= 102 fps=1.0 q=13.2 size= 2763kB time=00:02:06.00 bitrate= 179.6kbits/s 

任何帮助表示赞赏!