ffmpeg和Red5问题:向Red5同步流的ffmpeg数量增加导致数据包丢失

时间:2014-10-28 20:14:37

标签: windows ffmpeg rtmp red5 flv

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

为此,我使用ffmpeg命令将存储在本地的FLV文件传输(上传)到Red5服务器,而不是传输实时捕获的屏幕。在接收客户端,我开始下载(传输)相同的FLV文件,自上载开始后5秒。当我为少于10对上游下游会话运行此测试时,这工作正常。但是,当数量增加到10以上时,我观察到传输中的重大数据包丢失。

以下是我在循环中运行的命令。循环计数是流对的数量。

    上游:ffmpeg -re -i <file_name1> -f flv -ar 22050 "rtmp://<stream_name>" -report
  1. 下游:ffmpeg -re -i "rtmp://<stream_name> live=1" <file_name2> -report
  2. 以这种方式设置,在下游我将下载相同的上传文件。 &#34;设rtmp://&#34;两种情况都是一样的。我没有在记录模式下进行上游,因此,没有物理文件在服务器端保存。当我分析我在接收客户端收到的文件时,由于帧丢失,这是一个质量差的视频。上传和下载机器是两种不同的机器。我运行了几个小时的测试,重复了同样的10个流媒体集。每一组都给出了相同的结果。

    让我感到困惑的是,这种工作正常,没有任何丢包,少于10个同时流式传输。我在各种论坛中搜索过它,但没有一个答案适用于这种情况。有一段时间我认为Red5的容量有限,但我发现很多帖子都说Red5可以轻松扩展以承担很大的负担。这是否意味着,问题出在我的配置中?我不确定要关注哪些。

    示例日志片段:

    下游方面有大量缺失的数据。对于例如在帧101和102之间存在25秒的差异。在重播视频时,这段时间会停止。在这段时间内,所有帧都会丢失。

    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
    

    感谢任何帮助!

0 个答案:

没有答案