https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatencyhtml
編碼器:不一樣的編碼器(免費或開源的),延遲也是不一樣的。nginx
流媒體服務器:SRS2git
流協議:好比:rtmp是實時性比較高的,http_flv也是實時性比較高的,HLS就不行了,官方說60s以內的均可以容忍……github
播放器:主要是播放器的緩衝區時長,好比flash播放器的緩存時長是3s,那麼必定會有3s的延時。算法
網絡:有網絡問題致使的累積延遲。shell
視頻碼率:200k和2M的碼率這個比較,固然也能夠歸到網絡緣由中去。api
listen 1935; max_connections 1000; srs_log_tank file; srs_log_file ./objs/srs.log; http_api { enabled on; listen 1985; } http_server { enabled on; listen 80; dir ./objs/nginx/html; } stats { network 0; disk sda sdb xvda xvdb; } vhost __defaultVhost__ { #最小延遲打開,默認是打開的,該選項打開的時候,mr默認關閉。 min_latency on; #Merged-Read,針對RTMP協議,爲了提升性能,SRS對於上行的read使用merged-read,即SRS在讀寫時一次讀取N毫秒的數據 mr { enabled off; #默認350ms,範圍[300-2000] #latency 350; } #Merged-Write,SRS永遠使用Merged-Write,即一次發送N毫秒的包給客戶端。這個算法能夠將RTMP下行的效率提高5倍左右,範圍[350-1800] mw_latency 100; #enabled on; #https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#gop-cache gop_cache off; #配置直播隊列的長度,服務器會將數據放在直播隊列中,若是超過這個長度就清空到最後一個I幀 #https://github.com/simple-rtmp-server/srs/wiki/v2_CN_LowLatency#%E7%B4%AF%E7%A7%AF%E5%BB%B6%E8%BF%9F queue_length 10; #http_flv配置 http_remux { enabled on; mount [vhost]/[app]/[stream].flv; hstrs on; } }
編碼器:OBS緩存
播放器:SRS-Player(http://www.ossrs.net/srs.release/releases/demo.html?ip=192.168.1.170) 服務器
測試協議:rtmp、http-flv網絡
碼率:
200K延時 rtmp:1-2s(1s7) http_flv: 2s2
800K延時 rtmp:2s http_flv:3s30