默默前行的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獨享服務器
測試方法:
  1. 用ffmpeg向livego的rtmp服務推流:ffmpeg -re -i source.200kbps.768x320.flv -c copy -f flv rtmp://10.111.59.49/live/stream
  2. 啟動3個sb_rtmp_load的拉流進程,每個進程拉流10000路

./objs/sb_rtmp_load -c 10000 -r rtmp://127.0.0.1:1935/live/stream &

測試結果:

30000路並發拉流,cpu占用率不到50%!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM