RTMP低延时配置
优质
小牛编辑
152浏览
2023-12-01
配置SRS为Realtime模式,使用RTMP可以将延迟降低到0.8-3秒,可以应用到对实时性要求不苛刻的地方,譬如视频会议(其实视频会议,以及人类在开会的时候,正常时候是会有人讲,有人在听在想,然后换别人讲,其实1秒左右延迟没有问题的,除非要吵架,就需要0.3秒左右的延迟)。
配置最低延迟的服务器详细信息可以参考:LowLatency,本文举例说明部署的实例步骤。
假设服务器的IP是:192.168.1.170
第一步,获取SRS。详细参考GIT获取代码
git clone https://github.com/ossrs/srs
cd srs/trunk
或者使用git更新已有代码:
git pull
第二步,编译SRS。详细参考Build
./configure && make
第三步,编写SRS配置文件。详细参考LowLatency
将以下内容保存为文件,譬如conf/realtime.conf
,服务器启动时指定该配置文件(srs的conf文件夹有该文件)。
# conf/realtime.conf
listen 1935;
max_connections 1000;
vhost __defaultVhost__ {
tcp_nodelay on
min_latency on;
play {
gop_cache off;
queue_length 10;
mw_latency 100;
}
publish {
mr off;
}
}
第四步,启动SRS。详细参考LowLatency
./objs/srs -c conf/realtime.conf
第五步,启动推流编码器。详细参考LowLatency
使用FFMPEG命令推流:
for((;;)); do \
./objs/ffmpeg/bin/ffmpeg -re -i ./doc/source.200kbps.768x320.flv \
-vcodec copy -acodec copy \
-f flv -y rtmp://192.168.1.170/live/livestream; \
sleep 1; \
done
或使用FMLE推流:
FMS URL: rtmp://192.168.1.170/live
Stream: livestream
备注:测量延迟,可以使用FMLE推流时,将智能手机的秒表功能打开,用FMLE摄像头对着秒表,然后对比FMLE的摄像头的图像,和服务器分发的头像的延迟,就知道精确的延迟多大。参考:延迟的测量,如下图所示:
第六步,观看RTMP流。详细参考LowLatency
RTMP流地址为:rtmp://192.168.1.170/live/livestream
注意:不要使用VLC观看,VLC的延迟会很大,虽然VLC能看到流。
备注:请将所有实例的IP地址192.168.1.170都换成部署的服务器IP地址。