RTMP服务器的延迟,多级边缘不影响延迟,gop为最大因素
轉自:http://blog.chinaunix.net/uid-26000296-id-4932826.html
編碼器用FMLE,用手機秒表作為延遲計算。
結論:
1. 影響延遲的三個重要因素:網絡帶寬不足延遲越大,服務器算法緩存越多延遲越大,編碼gop越大延遲越大
2. 若只考慮服務器,NGINX-RTMP做源站時延遲在2-3秒以上。
3. 若只考慮服務器,SmartServer做邊緣延遲最小在0.3秒,多級邊緣服務器沒有影響。
服務器結構如下:
源站:NGINX-RTMP
一級邊緣:SmartServer
二級邊緣:SmartServer
圖片從左到右為:手機秒表,源站,一級邊緣,二級邊緣;
一、H264-Baseline-1秒GOP
H264,baseline,gop=1秒,fps=20,bitrate=500kbps
可見,延遲主要是在NGINX-RTMP,邊緣服務器的延遲算法讓延遲最低。
改變編碼參數:
二、H264-Baseline-5秒GOP
H264,baseline,gop=5秒,fps=20,bitrate=500kbps
可見,gop變大后,每層都會有隨機的延遲,原因是緩存了一些數據。
基本上5秒gop,就會有5/2秒延遲,即2.5秒左右延遲。
改變編碼參數gop為10秒:
H264-Baseline-10秒GOP
H264,baseline,gop=10秒,fps=20,bitrate=500kbps
gop大了之后,延遲就要拼人品了。
改變編碼參數為main:
三、H264-Main-1秒GOP
H264,main,gop=1秒,fps=20,bitrate=500kbps
基本上和baseline差不多。
沒有什么影響,除了我的CPU上去了。
編碼參數改為VP6:
四、VP6-1秒GOP
VP6 Quality=GoodQuality-GoodFramerate NoiseReduction=None DatarateWindow=Medium CPUUsage=Dedicated gop=1秒 fps=20
可見VP6也是一樣,延遲在NGINX-RTMP源站,邊緣沒有延遲。
編碼參數改為VP6,gop為10秒:
五、VP6-10秒GOP
VP6 Quality=GoodQuality-GoodFramerate NoiseReduction=None DatarateWindow=Medium CPUUsage=Dedicated gop=10秒 fps=20
可見VP6時也一樣受gop影響。
六、HTTP切片方式的延遲
H264 Baseline gop=1秒 fps=20
HTTP切片長度為1秒
從左到右依次為:編碼器,NGINX-RTMP源站,SmartServer邊緣,HTTP切片邊緣
可見:
NGINX-RTMP源站延遲在1.4秒
SmartServerRTMP邊緣延遲0.6秒
HTTP切片邊緣延遲1.1秒
實際環境中,1秒一個切片,在CDN分發時,下載的速度可能沒有這么快,所以延遲應該會比這個高。
總結
以上是生活随笔為你收集整理的RTMP服务器的延迟,多级边缘不影响延迟,gop为最大因素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: top 命令
- 下一篇: 邮箱格式验证测试用例