srs直播內網拉流帶寬飆升問題記錄

問題背景

srs部署在云服務器上,32核cpu,64G內存,帶寬300M.
客戶端從srs拉流,發現外網客戶端拉流,cpu和帶寬都正常。然而內網客戶端拉流,拉流人數超過5人以上,帶寬就會迅速飆升。
在這里插入圖片描述

排查

用srs-bench進行srs壓測,vlc播放器srs拉流,以及客戶端srs拉流

推流

推流選擇ffmpeg推流

ffmpeg -re -i C:\Users\w\Desktop\test.mp4 -vcodec copy -acodec copy -f flv -y rtmp://27.128.236.38/live/livestream

A.srs-bench拉流

./objs/srs_bench -sr webrtc://27.128.236.38/live/livestream -nn 10

srs-bench編譯及部署參考文章:SRS壓測–SRS-Bench

B.vlc拉流

媒體->打開網絡串流
輸入url:https://ip:8088/live/livestream.flv

分別在西安,南京,北京三地進行srs-bench,客戶端及vlc壓測
測試記錄如下:

環境1人5人6人10人30人
西安服務器壓測A網段正常正常異常異常異常
西安服務器壓測B網段正常正常正常不穩定不穩定
西安真實客戶端正常正常正常異常異常
西安客戶端壓測正常正常正常異常異常
南京服務器正常正常正常正常正常
南京真實客戶端正常正常正常正常/
南京客戶端壓測正常正常正常正常/
北京服務器正常正常異常異常異常
北京真實客戶端正常正常正常正常/
外網壓測正常正常正常正常正常
vlc壓測正常正常正常正常/

驗證結果

外網環境壓測,帶寬正常,cpu正常
內網環境壓測,5人以上帶寬就會飆升至10倍

抓包對比

在這里插入圖片描述

分析

異常環境延遲率比正常環境的延遲率高,并且有丟包重傳現象

查詢srs官網srs官網
核心協議–webrtc中config對于webrtc部分的配置

第一部分,rtc_server是全局的RTC服務器的配置,部分關鍵配置包括:

enabled:是否開啟RTC服務器,默認是off。
listen:偵聽的RTC端口,注意是UDP協議。
candidate:服務器提供服務的IP地址,由于RTC的特殊性,必須配置這個地址。詳細參考Config: Candidate
tcp.listen: 使用TCP傳輸WebRTC媒體數據,偵聽的TCP端口。詳細參考WebRTC over TCP

第二部分,每個vhost中的RTC配置,部分關鍵配置包括:

rtc.enabled:是否開啟RTC能力,默認是off。
rtc.rtmp_to_rtc:是否開啟RTMP轉RTC。
rtc.rtc_to_rtmp:是否開啟RTC轉RTMP。
rtc.stun_timeout:會話超時時間,單位秒。
rtc.nack:是否開啟NACK的支持,即丟包重傳,默認on。
rtc.twcc:是否開啟TWCC的支持,即擁塞控制的反饋機制,默認on。
rtc.dtls_role:DTLS角色,active就是DTLS Client(主動發起),passive是DTLS Server(被動接受)

發現rtc.nack配置默認為on,也就是說如果srs發現有丟包,就會不斷的重傳數據

結論

經過排查公司內網環境,發現內網環境做了帶寬限制,當客戶端拉流帶寬超過一定大小后,就限制拉流。
此時srs視為網絡異常,丟包重傳,因此帶寬不斷飆升

解決

方案1:內網環境放開帶寬限制

優勢:保證直播拉流的穩定性
缺陷:公司無法監控客戶端帶寬,成本增加

方案2:

優勢:內網及外網的網絡正常情況下,直播拉流正常,帶寬消耗少
缺陷:網絡異常,srs不進行丟包重傳,此時會出現馬賽克,卡頓等問題

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41963.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數學建模論文寫作文檔word

目錄 1. 摘要寫法1.1 確定題目與方法1.2 編寫開頭段落1.3 填寫問題一1.4 重復步驟3填寫其他問題1.5 編寫結尾段落1.6 編寫關鍵詞 2. 問題重述2.1 問題背景2.2 問題提出 3. 問題分析4. 問題X模型的建立與求解5. 模型的分析5.1 靈敏度分析5.2 誤差分析(主要用于預測類…

Milvus lite start 及存儲策略

背景 今天開始寫下Milvus,為了方便,我直接使用的是 milvus-lite 版本,default 情況下,你可能不知道他到底將 db 存儲到什么位置了。啟動 default-server,看下Milvus 的start及存儲邏輯 主邏輯 def start(self):sel…

adb參數詳解

文章目錄 1. -d2. -e3. -s4. -t5. -H6. -P7. -L8. --one-device9. --exit-on-write-error10. connect / disconnect11. pair12. forward13. forward --list14. reverse15. mdns check16. mdns services17. push18. pull19. sync20.shell21. install22. uninstall23. bugreport2…

最小二乘支持向量機(Least Squares Support Vector Machine,LSSVM)及其Python和MATLAB實現

LSSVM(Least Squares Support Vector Machine)又稱最小二乘支持向量機,是支持向量機(SVM)的一種變體,它通過將SVM的優化問題轉化為帶約束的二次規劃問題,利用最小二乘法進行優化求解&#xff0c…

redis集群部署 (通過redis工具快速部署,手動部署)

目錄 一、快速部署集群 1、 進入集群目錄,創建集群 2、 查看正常啟動 二、部署集群 1、分配集群節點 2、驗證集群可用性 3、停止redis進程 三、手動部署集群 1、配置redis.conf配置文件 2、啟動redis集群 3、手動創建redis集群 4、驗證 四、集群…

mysql異常數據損壞處理,報錯:Operating system error number 2 in a file operation

一、問題描述 某次一線反應,某主庫表全部丟失,查看為空,登陸主機查看mysqld.log后報錯:Operating system error number 2 in a file operation數據目錄OS重裝后修改過,但只是指向方式不同,目錄還是同一目錄…

【綠色版】Mysql下載、安裝、配置與使用(保姆級教程)

大家都知道,Mysql安裝版的卸載過程非常繁瑣,而且卸載不干凈會出現許多問題,很容易讓大家陷入重裝系統的窘境。基于此,博主今天給大家分享綠色版Mysql的安裝、配置與使用。 目錄 一、Mysql安裝、配置與使用 1、下載解壓 2、創建…

vue對axios進行請求響應封裝

一、原因 像是在一些業務邏輯上,比如需要在請求之前展示loading效果,或者在登錄的時候判斷身份信息(token)等信息有沒有過期,再者根據服務器響應回來的code碼進行相應的提示信息。等等在請求之前,之后做的一…

ABAP注釋快捷鍵修改(留著備用)

ABAP注釋快捷鍵修改(留著備用) 在使用ABAP編輯器的時候,原有的添加代碼注釋和取消代碼注釋的快捷鍵未生效,這時我們可以考慮對注釋快捷鍵進行修改 在事務碼SE38(ABAP編輯器)屏幕右下角,點擊【Options選項】圖標 在【鍵盤】|【命令】輸入欄中…

DWM 相關實現代碼 [自用]

1. DWM 縮略圖和模糊隱藏實現半透明 #include <windows.h> #include <dwmapi.h> #include <string> #pragma comment(lib, "dwmapi.lib")// 檢查 UWP 窗口是否可見 bool IsUWPWindowVisible(HWND hwnd) {DWORD cloaked 0;DwmGetWindowAttribute(…

【c語言】玩轉文件操作

&#x1f31f;&#x1f31f;作者主頁&#xff1a;ephemerals__ &#x1f31f;&#x1f31f;所屬專欄&#xff1a;C語言 目錄 引言 一、文件的打開和關閉 1.流 2.標準流 3.文本文件和二進制文件 4.控制文件打開與關閉的函數 二、文件的順序讀寫 三、文件的隨機讀寫 1…

深入理解OAuth 2.0:原理、流程與實踐

一、什么是OAuth 2.0 1. 什么是OAuth 2.0 OAuth 2.0 是一套關于授權的行業標準協議。 OAuth 2.0 允許用戶授權第三方應用訪問他們在另一個服務提供方上的數據&#xff0c;而無需分享他們的憑據&#xff08;如用戶名、密碼&#xff09;。 2. OAuth 2.0 應用場景 OAuth 2.0的…

非參數檢測6——優缺點

優點&#xff1a; 參量檢測的特點在于以似然比處理器為基礎&#xff0c;并建立在假定干擾或噪聲的統計特性已知的基礎上。但實際上&#xff0c;干擾環境往往十分復雜&#xff0c;包括自然和人為因素&#xff0c;且常常隨時改變。這使我們很難確定噪聲的統計特性。因此人們提出…

服務器U盤安裝Centos 7時提示Warning:/dev/root does not exist

這是沒有找到正確的鏡像路徑導致的&#xff0c;我們可以在命令行輸入ls /dev看一下有哪些盤符 像圖中紅色圈起來的就是我插入U盤的盤符&#xff0c;大家的輸幾盤可能做了多個邏輯盤&#xff0c;這種情況下就可以先將U盤拔掉再ls /dev看一下和剛才相比少了那兩個盤符&#xff0c…

在Spring Boot中實現多線程任務調度

在Spring Boot中實現多線程任務調度 大家好&#xff0c;我是微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 1. Spring Boot中的任務調度 Spring Boot通過集成Spring框架的Task Execution和Scheduling支持&#xff0c;提供…

Double 4 VR仿真情景實訓教學系統在法律專業課堂上的應用

隨著科技的飛速發展&#xff0c;VR技術逐漸滲透到各個領域&#xff0c;為教育行業帶來了革命性的變化。 VR技術以其獨特的沉浸式體驗&#xff0c;為法律課堂帶來了前所未有的學習體驗。通過Double 4 VR仿真情景實訓教學系統&#xff0c;學生可以身臨其境地進入虛擬的仿真情景中…

vue前端面試

一 .v-if和v-show的區別 v-if 和 v-show 是 Vue.js 中兩個常用的條件渲染指令&#xff0c;它們都可以根據條件決定是否渲染某個元素。但是它們之間存在一些區別。 語法&#xff1a;v-if 和 v-show 的語法相同&#xff0c;都接收一個布爾值作為參數。 <div v-if"show…

權力之望怎么下載客戶端 權力之望一鍵下載

《權力之望》是一款由NX3 Games開發、Smilegate發行的多人在線動作MMORPG游戲。這款游戲最大的特點是高度的自由度和豐富的角色定制選項。我們在游戲中不僅可以自由更換武器&#xff0c;而且游戲還提供了54種能力和60多種職業選擇&#xff0c;讓我們可以根據自己的游戲風格和喜…

繼 承

為什么要有繼承&#xff0c;繼承的作用&#xff1f; 繼承(inheritance)機制&#xff1a;是面向對象程序設計使代碼可以復用的最重要的手段&#xff0c;它允許程序員在保持原有類特性的基礎上進行擴展&#xff0c;增加新功能&#xff0c;這樣產生新的類&#xff0c;稱派生類。 …

【人工智能】—基于成都市各區(市)縣租房價格預測建模研究

引言 隨著城市化進程的加速&#xff0c;人口流動日益頻繁&#xff0c;租房市場作為城市生活的重要組成部分&#xff0c;其價格波動對居民生活質量和城市經濟發展具有顯著影響。成都市&#xff0c;作為中國西部地區的經濟、文化、交通和科技中心&#xff0c;近年來吸引了大量人…