我想要通过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秒的延迟和一些帧,我想知道是否有可能减少它。
答案 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。