默默前行的livego——基於go語言的rtmp直播伺服器
為什麼go語言,原因太多了!
- 輕量級協程,隨時goroutine
- 方便的channel
- 方便的interface
- 強大的伺服器性能
簡單點GO語言---為伺服器而生!
我們來看看: livego--基於go語言的rtmp直播伺服器
github地址: https://github.com/runner365/livego
什麼是livego
livego是基於golang開發的rtmp伺服器
為什麼基於golang
- golang在語言基本支持多核CPU均衡使用,支持海量輕量級線程,提高其並發量當前開源的缺陷:
- srs只能運行在一個單核下,如果需要多核運行,只能啟動多個srs監聽不同的埠來提高並發量;
- ngx-rtmp啟動多進程後,報文在多個進程內轉發,需要二次開發,否則靜態推送到多個子進程,效能消耗大;
golang在語言級別解決了上面多進程並發的問題。
- 二次開發簡潔快速golang的開發效率遠遠高過C/C++
livego支持哪些特性
- rtmp 推流,拉流
- 支持hls觀看
- 支持http-flv觀看
- 支持gop-cache緩存
- 靜態relay支持:支持靜態推流,拉流(支持對rtmp/http-flv拉流)
- 動態replay支持:支持http動態控制拉流、推流
- 支持push,push_done事件的外掛進程啟動
- 統計信息支持:支持http在線查看流狀態
livego性能有多強
go語言為伺服器性能而生,看看性能有多強吧!
測試機型:阿里雲32核64G獨享伺服器
測試方法:
- 用ffmpeg向livego的rtmp服務推流:ffmpeg -re -i source.200kbps.768x320.flv -c copy -f flv rtmp://10.111.59.49/live/stream
- 啟動3個sb_rtmp_load的拉流進程,每個進程拉流10000路
./objs/sb_rtmp_load -c 10000 -r rtmp://127.0.0.1:1935/live/stream&
測試結果:
30000路並發拉流,cpu佔用率不到50%!
※原型原型鏈學習記錄
※iOS用域名或主機名獲取IP地址
※JStorm與Storm源碼分析(四)——均衡調度器,EvenScheduler
※編寫使用多線程的希爾排序(shell sort)
※ABP從入門到精通(2):aspnet-zero-core 使用MySql資料庫
TAG:科技優家 |
※首款基於Pascal腳本語言的全功能Web伺服器Moon Http Server即將上線
※為什麼成立中韓語言交流會?The Language Exchange of Dreamtalk in Shanghai
※vscode寫c語言(windows)
※Salmon:一個基於Python語言的郵件伺服器
※大師語言 | John William Godward
※Semantic Experiences網站:用自然語言同AI交流
※Facebook Libra的Move語言與其他語言有什麼不同?
※用R語言的Blogdown+Hugo+Netlify+Github建博客
※身體的語言 ya.tender
※對話 Salesforce 首席科學家 Richard Socher:選擇 ML 是出於對數學和語言的熱愛
※Swift for TensorFlow 已在 GitHub 上開源,Tensor 成為 Swift 語言裡面的一等公民
※用深度學習實現自然語言處理:word embedding,單詞向量化
※VSCode 引入 Python 語言伺服器;Canonical 請求幫助測試 Ubuntu 伺服器安裝程序
※Canonical宣布Kotlin編程語言Snap包格式上線
※使用PaddleFluid和TensorFlow訓練RNN語言模型
※Firefox Reality VR瀏覽器支持7種新語言,書籤等
※Google Assistant 語音助手將支持更多語言,比 Siri 更加智能
※Google Assistant大升級:新增多種語言
※微軟推最新程序語言Bosque 以Functors取代Loop循環
※走向世界 Google Assistant新增30種語言