用SRS和ZLMediaKit分别都搭建过一个局域网的流媒体服务端,流协议使用SRT,只推音频
设备:MacBook
从麦克风推流指令:
ffmpeg -f avfoundation -i ":0" -c:a aac -f mpegts 'srt://ip_address:10080?streamid=#!::r=live/livestream,m=publish'
拉流指令
ffplay 'srt://ip_address:10080?streamid=#!::r=live/livestream,m=request'
以上10080是SRS默认的SRT端口号,使用ZLMediaKit时换成9000,ip_address换成服务端地址
此时,在本机执行拉流+推流指令,并开始读秒,发现延时高达8秒左右!
各种在服务端差延时,看日志,均未发现服务端延时会达到这么高。
最后发现竟然是ffplay的问题。
修改指令为
ffplay 'srt://ip_address:10080?streamid=#!::r=live/livestream,m=request' -infbuf -analyzeduration 20000 -probesize 32 -fflags nobuffer -flags low_delay
延时降低至1秒以下