※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2017-04-15 03:02:52
看板 Soft_Job
作者 標題 [心得] 自建串流Edge CDN Server
時間 Wed Mar 1 00:58:15 2017
大家好,這一年網紅直播非常熱門,商機也非常大帶動了CDN及ISP不少的流量成長,
今天要來介紹一下要怎樣自建RTMP HLS等串流Edge CDN,有人會問現成的串流CDN
今天要來介紹一下要怎樣自建RTMP HLS等串流Edge CDN,有人會問現成的串流CDN
解決方案不是很多嗎?Akamai,網宿科技,Wowza CDN等,俗話說的好「賠錢的生意沒人做」
,CDN業者的產品也是有分等級的,因為台灣的網路比較畸形,國內頻寬比國外頻寬貴很多,
所以購買等級低的方案一般就會被分配到美國的節點,好一點到香港,但是中華電信到
香港也是塞到不行,因此要購買等級比較高的方案才有機會使用到台灣節點,相對的費
用就非常貴。
所以購買等級低的方案一般就會被分配到美國的節點,好一點到香港,但是中華電信到
香港也是塞到不行,因此要購買等級比較高的方案才有機會使用到台灣節點,相對的費
用就非常貴。
直播這東西可能卡頓個幾秒或是點下去慢個幾秒開用戶就會流失,為了用戶體驗很多
老闆也是咬著牙捏著LP也是買很貴有台灣節點的CDN方案,回到主題為什麼要來自建,
老闆也是咬著牙捏著LP也是買很貴有台灣節點的CDN方案,回到主題為什麼要來自建,
很大的一個理由是可控制性高,使用現有的CDN業者的方案,一來你不知道他跟國內業者
到底買多少頻寬,他的網路目前塞不塞?,超賣的狀況如何?,二來伺服器部署的數量
夠不夠?再來當有問題發生的時候是否有人員可以在第一時間處理,還是得通過開
ticket的方式層層報修?另外一個理由是大量採購頻寬時單價相對低,目前commit
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. ...
srs - SRS is an industrial-strength live cluster, with simple code and best conceptual integrity. ...
( 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. ...
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
推 : 沒研究這塊,有分享有推1F 03/01 01:34
推 : 無私分享給推2F 03/01 08:35
推 : 推推3F 03/01 08:58
推 : 推4F 03/01 09:20
推 : 給推,很久沒看到技術文了5F 03/01 09:43
推 : 讚6F 03/01 10:11
推 : 給推~我也是自架CDN XDDD7F 03/01 10:53
推 : 大神!!!!!!8F 03/01 11:53
推 : 推9F 03/01 12:56
推 : Wowza 不是要錢嗎 可惜 SRS 不支援 redirect10F 03/01 12:59
→ : 直接用 nginx-rtmp 打到 edge cdn 就可以惹11F 03/01 16:20
推 :12F 03/01 16:21
→ : 哈哈,我比較懶一點,wowza是很方便簡單使用的13F 03/01 16:26
→ : youtube跟facebook推流就交給wowza處理
→ : 因為Edge端的數量多,所以就不用wowza了,授權費會有點高
→ : youtube跟facebook推流就交給wowza處理
→ : 因為Edge端的數量多,所以就不用wowza了,授權費會有點高
推 : 很久以前有簡單 google 過 發現免費且 open source16F 03/01 17:44
→ : 的解決方案只有 nginx-rtmp, 那時候沒看到 SRS
→ : 後來因緣際會下看到 SRS 但是隔一陣子整個 repo 被砍掉
→ : 最近又突然出現在我眼前... orz
→ : 以前有做過一個類似 twitch 註冊帳號拿 token 作 stream
→ : 播放的時候由 http hooks 去跟伺服器要 redirect 位址
→ : 不過沒做到 server-edge 分離, 也沒有 load balance
→ : 剛好前陣子看到 SRS 又研究了一下 但是卡在無法作
→ : redirect, 後來想到讓 nginx-rtmp 收上傳 stream 進來
→ : edge 採用 srs 並且不採用 nginx 主動推流
→ : 而是當用戶端向 edge 請求播放時, SRS 在跟 nginx 要
→ : 然後讓 nginx 這邊處理 redirect 的問題
※ 編輯: xxoo1122 (1.34.50.183), 03/01/2017 20:49:01→ : 的解決方案只有 nginx-rtmp, 那時候沒看到 SRS
→ : 後來因緣際會下看到 SRS 但是隔一陣子整個 repo 被砍掉
→ : 最近又突然出現在我眼前... orz
→ : 以前有做過一個類似 twitch 註冊帳號拿 token 作 stream
→ : 播放的時候由 http hooks 去跟伺服器要 redirect 位址
→ : 不過沒做到 server-edge 分離, 也沒有 load balance
→ : 剛好前陣子看到 SRS 又研究了一下 但是卡在無法作
→ : redirect, 後來想到讓 nginx-rtmp 收上傳 stream 進來
→ : edge 採用 srs 並且不採用 nginx 主動推流
→ : 而是當用戶端向 edge 請求播放時, SRS 在跟 nginx 要
→ : 然後讓 nginx 這邊處理 redirect 的問題
※ 編輯: xxoo1122 (1.34.50.183), 03/01/2017 20:49:36
v3_CN_SampleRTMPCluster · ossrs/srs Wiki · GitHub
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. ...
推 : TWNIC 那邊有 IP 網段列表 分發的公司也都有寫出來30F 03/01 22:38
→ : 撈 IP 分析的時候可以直接參考網段分配表
→ : 撈 IP 分析的時候可以直接參考網段分配表
推 : push!!32F 03/02 12:10
推 : 除了Wowza以外nginx-RTMP也是個很可以的解決方案,不過統33F 03/02 13:20
→ : 計的部分我建議用Logstash把log匯入去如ElasticSearch等平
→ : 台再分析會方便很多
推 : 我也試過做這種串流,當初是痛心買下去Akamai的方案,現在
→ : 看到你這邊我也想自建串流CDN了
→ : 計的部分我建議用Logstash把log匯入去如ElasticSearch等平
→ : 台再分析會方便很多
推 : 我也試過做這種串流,當初是痛心買下去Akamai的方案,現在
→ : 看到你這邊我也想自建串流CDN了
推 : 用cluster的方式架的話HLS要另外處理38F 03/02 16:00
→ : 不然edge沒pull rtmp進來的話HLS沒辦法切片
→ : 不然edge沒pull rtmp進來的話HLS沒辦法切片
→ : licson大,akamai真心好貴...nginx-rtmp一台大概可稱3k左40F 03/02 16:58
→ : 右連線,srs官方是寫可承載9k左右,目前我們打出去一個
→ : 連線大該是1Mb左右,9k的話剛好能撐滿一個10G port
→ : sky大,看起來srs可以一併處理,拉流近來後,可以轉hls
→ : 右連線,srs官方是寫可承載9k左右,目前我們打出去一個
→ : 連線大該是1Mb左右,9k的話剛好能撐滿一個10G port
→ : sky大,看起來srs可以一併處理,拉流近來後,可以轉hls
推 : Cluster的模式是有人要收看的時候才從origin拉流44F 03/02 17:07
→ : 但如果收看的人是用HLS那edge並不會主動去拉RTMP流來切
→ : 我指的是這部分
→ : 所以每台edge上必須要有一個rtmp收看者
→ : 這樣才會去拉rtmp流回來切HLS
→ : 但如果收看的人是用HLS那edge並不會主動去拉RTMP流來切
→ : 我指的是這部分
→ : 所以每台edge上必須要有一個rtmp收看者
→ : 這樣才會去拉rtmp流回來切HLS
→ : 了解,哎呀!沒有想到這部分49F 03/02 17:52
推 : 有分享有推50F 03/02 18:07
推 : 感謝 sky791127 大大點破盲點51F 03/02 18:56
推 : 推 感謝分享52F 03/03 00:27
推 : 推原po 。曾經因為工作上提案需要而自行摸索過這個,但是沒53F 03/03 09:08
→ : 有資源和基礎底而做罷。
→ : 有資源和基礎底而做罷。
--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 1414
回列表(←)
分享