顯示廣告
隱藏 ✕
※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2017-04-15 03:02:52
看板 Soft_Job
作者 xxoo1122 (魯魯打工仔)
標題 [心得] 自建串流Edge CDN Server
時間 Wed Mar  1 00:58:15 2017


大家好,這一年網紅直播非常熱門,商機也非常大帶動了CDN及ISP不少的流量成長,
今天要來介紹一下要怎樣自建RTMP HLS等串流Edge CDN,有人會問現成的串流CDN

解決方案不是很多嗎?Akamai,網宿科技,Wowza CDN等,俗話說的好「賠錢的生意沒人做」

,CDN業者的產品也是有分等級的,因為台灣的網路比較畸形,國內頻寬比國外頻寬貴很多,
所以購買等級低的方案一般就會被分配到美國的節點,好一點到香港,但是中華電信到
香港也是塞到不行,因此要購買等級比較高的方案才有機會使用到台灣節點,相對的費
用就非常貴。


直播這東西可能卡頓個幾秒或是點下去慢個幾秒開用戶就會流失,為了用戶體驗很多
老闆也是咬著牙捏著LP也是買很貴有台灣節點的CDN方案,回到主題為什麼要來自建,

很大的一個理由是可控制性高,使用現有的CDN業者的方案,一來你不知道他跟國內業者

到底買多少頻寬,他的網路目前塞不塞?,超賣的狀況如何?,二來伺服器部署的數量
夠不夠?再來當有問題發生的時候是否有人員可以在第一時間處理,還是得通過開
ticket的方式層層報修?另外一個理由是大量採購頻寬時單價相對低,目前commit

10G的國內頻寬大概落在250-300塊/mbps上下,20G以上大概可能在210-250塊/mbps上下

,如果你想便宜延遲長一點沒關係,那可以只買國際頻寬那單價就能5塊美金以下。

最近剛好完成了一個小案例,架構圖如下

http://imgur.com/a/5s3k6
[圖]
 

訊源encoder後先打到Wowza Server,Wowza處理三件事,
1.錄影
2.打流到FB直播
3.打流到Edge CDN Server

在Edge CDN Server的部分我採用了Simple-RTMP-Server
( https://github.com/ossrs/srs ),SRS是一位中國人開發的,功能齊全,
GitHub - ossrs/srs: SRS is an industrial-strength live cluster, with simple code and best conceptual integrity.
[圖]
srs - SRS is an industrial-strength live cluster, with simple code and best conceptual integrity. ...

 
效能也不馬虎,安裝與設定非常簡單,開發者的Github都有很詳細的教學文章
https://github.com/ossrs/srs/wiki/v2_CN_Home ),目前上線後用到現在
v2_CN_Home ·  ossrs/srs Wiki ·  GitHub
[圖]
srs - SRS is an industrial-strength live cluster, with simple code and best conceptual integrity. ...

 
都相當穩定,大家可以參考一下。

補充一下,目前台灣各家電信的用戶比例

中華電信固網加行動大概佔45~50%左右
遠傳電信固網加行動大概佔20%左右
台灣固網加行動大概佔20%左右

要做這分析不難,寫個shell script去撈log裡面的ip,再用uniq去重複
接著用whois去查這個ip的netname就能做統計分析,不過用whois去查挺慢的但準確。

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.50.183
※ 文章代碼(AID): #1OjQmi51 (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1488301100.A.141.html
ripple0129: 沒研究這塊,有分享有推1F 03/01 01:34
cliffk321: 無私分享給推2F 03/01 08:35
enthos: 推推3F 03/01 08:58
gerojeng: 推4F 03/01 09:20
t78973677: 給推,很久沒看到技術文了5F 03/01 09:43
herbacin: 讚6F 03/01 10:11
sky791127: 給推~我也是自架CDN  XDDD7F 03/01 10:53
lastdreamer: 大神!!!!!!8F 03/01 11:53
penolove: 推9F 03/01 12:56
s25g5d4: Wowza 不是要錢嗎 可惜 SRS 不支援 redirect10F 03/01 12:59
lyforever: 直接用 nginx-rtmp 打到 edge cdn 就可以惹11F 03/01 16:20
wingture:12F 03/01 16:21
xxoo1122: 哈哈,我比較懶一點,wowza是很方便簡單使用的13F 03/01 16:26
xxoo1122: youtube跟facebook推流就交給wowza處理
xxoo1122: 因為Edge端的數量多,所以就不用wowza了,授權費會有點高
s25g5d4: 很久以前有簡單 google 過 發現免費且 open source16F 03/01 17:44
s25g5d4: 的解決方案只有 nginx-rtmp, 那時候沒看到 SRS
s25g5d4: 後來因緣際會下看到 SRS 但是隔一陣子整個 repo 被砍掉
s25g5d4: 最近又突然出現在我眼前... orz
s25g5d4: 以前有做過一個類似 twitch 註冊帳號拿 token 作 stream
s25g5d4: 播放的時候由 http hooks 去跟伺服器要 redirect 位址
s25g5d4: 不過沒做到 server-edge 分離, 也沒有 load balance
s25g5d4: 剛好前陣子看到 SRS 又研究了一下 但是卡在無法作
s25g5d4: redirect, 後來想到讓 nginx-rtmp 收上傳 stream 進來
s25g5d4: edge 採用 srs 並且不採用 nginx 主動推流
s25g5d4: 而是當用戶端向 edge 請求播放時, SRS 在跟 nginx 要
s25g5d4: 然後讓 nginx 這邊處理 redirect 的問題
※ 編輯: xxoo1122 (1.34.50.183), 03/01/2017 20:49:01
※ 編輯: xxoo1122 (1.34.50.183), 03/01/2017 20:49:36
xxoo1122: s25g5d4大大,SRS有Rtmp Cluster的模式28F 03/01 22:18
xxoo1122: https://goo.gl/WUyysZ
v3_CN_SampleRTMPCluster ·  ossrs/srs Wiki ·  GitHub
[圖]
srs - SRS is an industrial-strength live cluster, with simple code and best conceptual integrity. ...

 
s25g5d4: TWNIC 那邊有 IP 網段列表 分發的公司也都有寫出來30F 03/01 22:38
s25g5d4: 撈 IP 分析的時候可以直接參考網段分配表
jjwei: push!!32F 03/02 12:10
licson: 除了Wowza以外nginx-RTMP也是個很可以的解決方案,不過統33F 03/02 13:20
licson: 計的部分我建議用Logstash把log匯入去如ElasticSearch等平
licson: 台再分析會方便很多
licson: 我也試過做這種串流,當初是痛心買下去Akamai的方案,現在
licson: 看到你這邊我也想自建串流CDN了
sky791127: 用cluster的方式架的話HLS要另外處理38F 03/02 16:00
sky791127: 不然edge沒pull rtmp進來的話HLS沒辦法切片
xxoo1122: licson大,akamai真心好貴...nginx-rtmp一台大概可稱3k左40F 03/02 16:58
xxoo1122: 右連線,srs官方是寫可承載9k左右,目前我們打出去一個
xxoo1122: 連線大該是1Mb左右,9k的話剛好能撐滿一個10G port
xxoo1122: sky大,看起來srs可以一併處理,拉流近來後,可以轉hls
sky791127: Cluster的模式是有人要收看的時候才從origin拉流44F 03/02 17:07
sky791127: 但如果收看的人是用HLS那edge並不會主動去拉RTMP流來切
sky791127: 我指的是這部分
sky791127: 所以每台edge上必須要有一個rtmp收看者
sky791127: 這樣才會去拉rtmp流回來切HLS
xxoo1122: 了解,哎呀!沒有想到這部分49F 03/02 17:52
matthewka: 有分享有推50F 03/02 18:07
s25g5d4: 感謝 sky791127 大大點破盲點51F 03/02 18:56
genius945: 推 感謝分享52F 03/03 00:27
rsom: 推原po 。曾經因為工作上提案需要而自行摸索過這個,但是沒53F 03/03 09:08
rsom: 有資源和基礎底而做罷。

--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 1414 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇