看板 Soft_Job 關於我們 聯絡資訊
大家好,這一年網紅直播非常熱門,商機也非常大帶動了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都有很詳細的教學文章 ( https://github.com/ossrs/srs/wiki/v2_CN_Home ),目前上線後用到現在 都相當穩定,大家可以參考一下。 補充一下,目前台灣各家電信的用戶比例 中華電信固網加行動大概佔45~50%左右 遠傳電信固網加行動大概佔20%左右 台灣固網加行動大概佔20%左右 要做這分析不難,寫個shell script去撈log裡面的ip,再用uniq去重複 接著用whois去查這個ip的netname就能做統計分析,不過用whois去查挺慢的但準確。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.50.183 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1488301100.A.141.html
ripple0129: 沒研究這塊,有分享有推 03/01 01:34
cliffk321: 無私分享給推 03/01 08:35
enthos: 推推 03/01 08:58
gerojeng: 推 03/01 09:20
t78973677: 給推,很久沒看到技術文了 03/01 09:43
herbacin: 讚 03/01 10:11
sky791127: 給推~我也是自架CDN XDDD 03/01 10:53
lastdreamer: 大神!!!!!! 03/01 11:53
penolove: 推 03/01 12:56
s25g5d4: Wowza 不是要錢嗎 可惜 SRS 不支援 redirect 03/01 12:59
lyforever: 直接用 nginx-rtmp 打到 edge cdn 就可以惹 03/01 16:20
wingture: 03/01 16:21
xxoo1122: 哈哈,我比較懶一點,wowza是很方便簡單使用的 03/01 16:26
xxoo1122: youtube跟facebook推流就交給wowza處理 03/01 16:27
xxoo1122: 因為Edge端的數量多,所以就不用wowza了,授權費會有點高 03/01 16:29
s25g5d4: 很久以前有簡單 google 過 發現免費且 open source 03/01 17:44
s25g5d4: 的解決方案只有 nginx-rtmp, 那時候沒看到 SRS 03/01 17:44
s25g5d4: 後來因緣際會下看到 SRS 但是隔一陣子整個 repo 被砍掉 03/01 17:45
s25g5d4: 最近又突然出現在我眼前... orz 03/01 17:45
s25g5d4: 以前有做過一個類似 twitch 註冊帳號拿 token 作 stream 03/01 17:46
s25g5d4: 播放的時候由 http hooks 去跟伺服器要 redirect 位址 03/01 17:47
s25g5d4: 不過沒做到 server-edge 分離, 也沒有 load balance 03/01 17:48
s25g5d4: 剛好前陣子看到 SRS 又研究了一下 但是卡在無法作 03/01 17:49
s25g5d4: redirect, 後來想到讓 nginx-rtmp 收上傳 stream 進來 03/01 17:50
s25g5d4: edge 採用 srs 並且不採用 nginx 主動推流 03/01 17:50
s25g5d4: 而是當用戶端向 edge 請求播放時, SRS 在跟 nginx 要 03/01 17:51
s25g5d4: 然後讓 nginx 這邊處理 redirect 的問題 03/01 17:51
※ 編輯: 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的模式 03/01 22:18
xxoo1122: https://goo.gl/WUyysZ 03/01 22:19
s25g5d4: TWNIC 那邊有 IP 網段列表 分發的公司也都有寫出來 03/01 22:38
s25g5d4: 撈 IP 分析的時候可以直接參考網段分配表 03/01 22:38
jjwei: push!! 03/02 12:10
licson: 除了Wowza以外nginx-RTMP也是個很可以的解決方案,不過統 03/02 13:20
licson: 計的部分我建議用Logstash把log匯入去如ElasticSearch等平 03/02 13:20
licson: 台再分析會方便很多 03/02 13:20
licson: 我也試過做這種串流,當初是痛心買下去Akamai的方案,現在 03/02 13:23
licson: 看到你這邊我也想自建串流CDN了 03/02 13:23
sky791127: 用cluster的方式架的話HLS要另外處理 03/02 16:00
sky791127: 不然edge沒pull rtmp進來的話HLS沒辦法切片 03/02 16:02
xxoo1122: licson大,akamai真心好貴...nginx-rtmp一台大概可稱3k左 03/02 16:58
xxoo1122: 右連線,srs官方是寫可承載9k左右,目前我們打出去一個 03/02 17:00
xxoo1122: 連線大該是1Mb左右,9k的話剛好能撐滿一個10G port 03/02 17:00
xxoo1122: sky大,看起來srs可以一併處理,拉流近來後,可以轉hls 03/02 17:04
sky791127: Cluster的模式是有人要收看的時候才從origin拉流 03/02 17:07
sky791127: 但如果收看的人是用HLS那edge並不會主動去拉RTMP流來切 03/02 17:08
sky791127: 我指的是這部分 03/02 17:10
sky791127: 所以每台edge上必須要有一個rtmp收看者 03/02 17:11
sky791127: 這樣才會去拉rtmp流回來切HLS 03/02 17:11
xxoo1122: 了解,哎呀!沒有想到這部分 03/02 17:52
matthewka: 有分享有推 03/02 18:07
s25g5d4: 感謝 sky791127 大大點破盲點 03/02 18:56
genius945: 推 感謝分享 03/03 00:27
rsom: 推原po 。曾經因為工作上提案需要而自行摸索過這個,但是沒 03/03 09:08
rsom: 有資源和基礎底而做罷。 03/03 09:08
andy199113: 優質好文推 謝謝分享 06/09 23:31
TFnight: 推 謝謝分享 06/06 14:48