我有一个我想通过RTMP广播的videostream。
我使用ffmpeg来做到这一点,使用下面的命令:
ffmpeg -i http://192.168.1.77:18000/stream.flv -c copy -f flv rtmp://localhost/myapp/mystream
据我所知,转码videostream会引入一些延迟。 所以我的问题是:是否有可能通过使用此ffmpeg命令(副本)引入输出stream中的延迟?
附注:我试图将我的实时videostreamredirect到一个nginx服务器,以便(通过RTMP)播放几个jwplayers。 到目前为止,我得到了1秒的延迟和一些帧,我想知道是否有可能减less它。
那么,我解决了我的问题!
我最终尝试了一个不同的播放器和不同的设置,并设法得到一些帧的延迟(或根本没有延迟),所以我想这个ffmpeg命令并没有引入延迟。
只是为了记录,我使用以下设置的流水游戏:
$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秒对rtmp来说真的很好。 为了减少延迟,您需要减少摄取和交付之间的步骤。 做到这一点的最好方法是使用检测到的服务器产品,如wowza或FMS。