使用RTMP实时视频ffmpeg延迟

时间:2014-03-20 14:21:57

标签: video nginx ffmpeg video-streaming

我想要通过RTMP播放视频流。

我正在使用ffmpeg执行此操作,使用以下命令:

ffmpeg -i http://192.168.1.77:18000/stream.flv -c copy -f flv rtmp://localhost/myapp/mystream

据我所知,转码视频流会引入一些延迟。所以我的问题是:我是否有可能通过使用此ffmpeg命令(副本)在输出流中引入延迟?


旁注: 我正在尝试将我的实时视频流重定向到nginx-server,以便为几个jwplayers广播它(通过RTMP)。到目前为止,我有1秒的延迟和一些帧,我想知道是否有可能减少它。

2 个答案:

答案 0 :(得分:3)

好吧,我解决了我的问题!

我最终尝试使用不同的播放器和不同的设置并设法获得一些帧延迟(或根本没有延迟),所以我猜这个ffmpeg命令根本不会引入延迟。

仅供记录,我使用带有以下设置的flowplayer:

$f("streams", "http://releases.flowplayer.org/swf/flowplayer-3.2.18.swf", {

                clip: {
                    url: 'mystream',
                    provider: 'rtmp',
                    live: true,
                    bufferLength: 0,
                    bufferTime: 0,
                },

                plugins: {
                     rtmp: {
                        url: 'flowplayer.rtmp-3.2.3.swf',
                        netConnectionUrl: 'rtmp://192.168.1.196:1935/myapp'
                    }
                }
            });

答案 1 :(得分:1)

一切都会带来一点延迟。没有什么是免费的,时间不断向前发展。 1秒对于rtmp非常有用。要减少延迟,您需要减少摄取和传递之间的步骤。执行此操作的最佳方法是使用检测到的服务器产品,例如wowza或FMS。