[發明專利]提高nginx-rtmp拉流服務質量的方法及裝置有效
| 申請號: | 201710761733.0 | 申請日: | 2017-08-30 |
| 公開(公告)號: | CN109428864B | 公開(公告)日: | 2021-11-09 |
| 發明(設計)人: | 何紹富;張文明;陳少杰 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L29/08;H04L12/24 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 王瑩;吳歡燕 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 提高 nginx rtmp 服務質量 方法 裝置 | ||
本發明提供提高nginx?rtmp拉流服務質量的方法及裝置,所述方法包括:S1,當后端服務連接出現異常時,調用中繼會話關閉方法,判斷當前中繼會話是否為擁有主備的拉流;S2,若判斷結果為是,則從所述中繼會話中獲取會話加載時所注冊的主備模式間切換的異步處理事件,并為所述異步處理事件添加第一定時器;S3,關閉當前中繼會話,待所述第一定時器時間到后,調用所述異步處理事件所對應的事件處理函數,為后端服務器創建新的服務連接。本發明通過在nginx?rtmp中添加主備邏輯,當某個服務連接斷開時,啟動主備用服務之間的無縫切換進行拉流轉發,能使拉流轉發服務質量提高一個量級,且前端展示基本不受影響。
技術領域
本發明涉及直播技術領域,更具體地,涉及提高nginx-rtmp拉流服務質量的方法及裝置。
背景技術
如何保證直播的流暢性和穩定性,保證用戶的觀看直播體驗是每個直播平臺都會關注的焦點,而目前在直播流CDN拉流轉發到前端展示的過程中,偶然會出現后端服務與CDN服務連接異常導致前端用戶觀看直播的過程中卡住或者黑屏,給用戶不好的直播體驗,用戶可能會選擇直接退出直播間。
目前解決后端服務與CDN服務連接異常的問題,通常需要人工定位關鍵節點,并重啟相關服務。這種方案存在的問題是定位關鍵節點時間會較長,因為CDN后端可能又有多次跳轉,使得恢復服務連接的時間較長,進而導致前端展示很長時間沒有響應,用戶體驗仍然較差。
發明內容
本發明提供一種克服上述問題或者至少部分地解決上述問題的提高nginx-rtmp拉流服務質量的方法及裝置。
根據本發明的一個方面,提供提高nginx-rtmp拉流服務質量的方法,包括:
S1,當后端服務連接出現異常時,調用中繼會話關閉方法,判斷當前中繼會話是否為擁有主備的拉流;
S2,若判斷結果為是,則從所述中繼會話中獲取會話加載時所注冊的主備模式間切換的異步處理事件,并為所述異步處理事件添加第一定時器;
S3,關閉當前中繼會話,待所述第一定時器時間到后,調用所述異步處理事件所對應的事件處理函數,為后端服務器創建新的服務連接。
其中,在所述步驟S1之前還包括:
S0,在nginx-rtmp模塊配置文件的pull配置項中添加backups參數,所述backups參數的值為備用拉流的url;
S01,通過解析所述配置文件對主備模式進行初始化,并根據解析結果創建主備模式間切換的異步處理事件和第二定時器,并注冊所述異步處理事件觸發后的事件處理函數;
S02,啟動第二定時器任務,若主服務連接異常,則待所述第二定時器超時后,執行所述事件處理函數。
其中,所述步驟S01進一步包括:
S011,解析所述配置文件,將解析所述backups參數所得的結果和解析主服務所對應的url所得的結果同時存入拉流所對應的target結構中,并在所述target結構中添加初始化后的控制切換標識;
S012,根據所述target結構中的數據,創建主備模式間切換的事件處理對象;
S013,注冊所述事件處理對象的事件處理函數,并為所述事件處理對象添加第二定時器。
其中,步驟S011中解析所述配置文件進一步包括:
在nginx-rtmp relay模塊中添加解析backups參數的命令,將主服務和備用拉流所對應的url均解析為ip地址、端口地址和http參數。
其中,所述步驟S012進一步包括:
從nginx-pool中申請一個新的事件存儲空間;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710761733.0/2.html,轉載請聲明來源鉆瓜專利網。





