中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

幾種開源的媒體服務(wù)器對比

2018-07-20    來源:編程學(xué)習(xí)網(wǎng)

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

1 概念

1.1 RTP

實(shí)時(shí)傳輸協(xié)議 - 維基百科,自由的百科全書

實(shí)時(shí)傳輸協(xié)議(Real-time Transport Protocol或簡寫RTP)是一個網(wǎng)絡(luò)傳輸協(xié)議,它是由IETF的多媒體傳輸工作小組1996年在RFC 1889中公布的。

RTP協(xié)議詳細(xì)說明了在互聯(lián)網(wǎng)上傳遞音頻和視頻的標(biāo)準(zhǔn)數(shù)據(jù)包格式。它一開始被設(shè)計(jì)為一個多播協(xié)議,但后來被用在很多單播應(yīng)用中。RTP協(xié)議常用于流媒體系統(tǒng)(配合RTSP協(xié)議),視頻會議和一鍵通(Push to Talk)系統(tǒng)(配合H.323或SIP),使它成為IP電話產(chǎn)業(yè)的技術(shù)基礎(chǔ)。RTP協(xié)議和RTP控制協(xié)議RTCP一起使用,而且它是創(chuàng)建在 UDP 協(xié)議上的。

1.2 RTMP

實(shí)時(shí)消息協(xié)議 - 維基百科,自由的百科全書

實(shí)時(shí)消息協(xié)議(英語:Real-Time Messaging Protocol,縮寫RTMP)也稱實(shí)時(shí)消息傳輸協(xié)議,是最初由Macromedia為通過互聯(lián)網(wǎng)在Flash播放器與一個服務(wù)器之間傳輸流媒體音頻、視頻和數(shù)據(jù)而開發(fā)的一個專有協(xié)議。Macromedia后被Adobe Systems收購,該協(xié)議也已發(fā)布了不完整的規(guī)范供公眾使用。

RTMP協(xié)議有許多變種:

  1. 默認(rèn)使用TCP端口1935的純粹(plain)協(xié)議。
  2. RTMPS ,通過一個TLS/SSL連接傳輸RTMP。
  3. RTMPE ,使用Adobe自有安全機(jī)制加密的RTMP。雖然實(shí)現(xiàn)的細(xì)節(jié)為專有,但該機(jī)制使用行業(yè)標(biāo)準(zhǔn)的密碼學(xué)原函數(shù)。
  4. RTMPT ,用HTTP封裝以穿透防火墻。RTMPT通常在TCP通信端口80和443上使用明文請求來繞過大多數(shù)的公司流量過濾。封裝的會話中可能攜帶純粹的RTMP、RTMPS或RTMPE數(shù)據(jù)包。
  5. RTMFP , 使用UDP而非TCP的RTMP,取代RTMP Chunk Stream。Adobe Systems開發(fā)了安全的實(shí)時(shí)媒體流協(xié)議包,可以讓最終用戶直接地相互連接(P2P)。

1.3 WebRTC

https://webrtc.org/

WebRTC is a free, open projectthat provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.

The WebRTC initiative is a project supported by Google , Mozilla and Opera , amongst others.

支持的瀏覽器和平臺:

  • Chrome
  • Firefox
  • Opera
  • Android
  • iOS

特點(diǎn):

  • 基于瀏覽器,且主流瀏覽器都支持,跨平臺能力強(qiáng)
  • 默認(rèn)P2P,但是需要TURN服務(wù)器作為fallback
  • 自適應(yīng)碼率
    • webrtc 視頻編碼之 h264 自動調(diào)節(jié)分辨率 — newrtc
    • webm - Does WebRTC support Adaptive Bitrate Streaming for video? - Stack Overflow

相關(guān)資料:

  • 2013 Google I/O 大會上WebRTC的幻燈片
  • Getting Started with WebRTC - Sam Dutton
  • WebRTC in the real world: STUN, TURN and signaling - Sam Dutton
  • IETF Real-Time Communication in WEB-browsers (rtcweb) Working Group
  • RFC7742 - WebRTC Video Processing and Codec Requirements

1.4 HLS

HTTP Live Streaming - 維基百科,自由的百科全書

HTTP Live Streaming(縮寫是HLS)是一個由蘋果公司提出的基于HTTP的流媒體網(wǎng)絡(luò)傳輸協(xié)議。它的工作原理是把整個流分成一個個小的基于HTTP的文件來下載,每次只下載一些。當(dāng)媒體流正在播放時(shí),客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,允許流媒體會話適應(yīng)不同的數(shù)據(jù)速率。在開始一個流媒體會話時(shí),客戶端會下載一個包含元數(shù)據(jù)的extended M3U (m3u8) playlist文件,用于尋找可用的媒體流。

HLS只請求基本的HTTP報(bào)文,與實(shí)時(shí)傳輸協(xié)議(RTP)不同,HLS可以穿過任何允許HTTP數(shù)據(jù)通過的防火墻或者代理服務(wù)器。它也很容易使用內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)來傳輸媒體流。

2017年8月, RFC 8216 發(fā)布,描述了HLS協(xié)議第7版的定義

RFC 8216

2 開源方案

2.0 開源方案選型要考慮的因素:

10 Tips for Choosing the Right WebRTC Open Source Media Server Framework

  1. 你是否深刻理解其代碼?
  2. 代碼版本是否足夠新?
  3. 有誰在使用它?
  4. 它的文檔是否齊全?
  5. 它可以debug嗎?
  6. 它可以伸縮嗎?
  7. 它使用哪種語言?
    • 對于媒體服務(wù)器而言,這種語言的性能是否足夠?
    • 團(tuán)隊(duì)是否足夠了解這門語言?
  8. 是否適應(yīng)你現(xiàn)有的Signaling范式?
    • 你在看的Media Server是否容易與你決定使用的STUN/TURN服務(wù)器集成
  9. 許可證是否適合你?
  10. 誰在提供支持?
    • 很多成功的、被良好維護(hù)的開源項(xiàng)目背后都有一個商業(yè)模式,尤其是中小型的項(xiàng)目,這意味著有一個團(tuán)隊(duì)以此為謀生手段。
    • 具備可選的付費(fèi)支持意味著:
      • 有人愿意全職來改善這東西,而不是作為愛好來維護(hù)。
      • 如果你需要緊急幫助,只要花錢就能得到。

2.1 Red5

官網(wǎng) http://red5.org/

Github https://github.com/Red5

非官方資料:

  • red5-development-series

特性:

  • Server
    • 自動伸縮集群
    • Adaptive Stream Rebuffering
    • 支持多協(xié)議:
      • WebRTC
      • RTMP
      • RTSP
      • HLS
      • FLV
      • MP4
    • 實(shí)時(shí)流錄制
    • 離線部署
  • Browser
    • 定制化HTML5播放器,支持旋轉(zhuǎn)
    • 實(shí)時(shí)HLS流
    • 支持Flash作為后備方案
  • 移動端SDK(iOS, Android)
    • 自適應(yīng)比特率發(fā)布
    • 硬件編碼和解碼
    • 定制視頻源
    • 直播攝像頭切換
    • 雙路視頻聊天
    • 多方視頻會議
    • Adaptive Stream Rebuffering
    • 低延遲播放器
    • 高級通知API
    • 消息與RPC
    • HD h.264, AAC編碼高達(dá)4k

粗略的特性收費(fèi)情況調(diào)查結(jié)果:

- 開源版本 付費(fèi)版本
自動伸縮集群 不支持 \$279/MO
多協(xié)議支持 支持 支持
轉(zhuǎn)碼 不支持 \$109/MO
離線部署 支持 \$999+/MO

來自 Red5 open source vs Red5pro · rajdeeprath/red5-development-series Wiki 的數(shù)據(jù)

FEATURES RED5 OS RED5 PRO
實(shí)時(shí)流 ? ?
視頻錄制 ? ?
WebSockets ? ?
移動端回放(HLS) Community ?
Adobe Flash 支持 ? ?
WebRTC ? ?
第二屏 ? ?
自動伸縮 ? ?
集群 ? ?
移動端SDK ? ?
擴(kuò)展文檔 ? ?
客戶支持 Community ?
管理API (RESTful) ? ?

缺點(diǎn):

  • 開源版本很難用,官方幾乎沒有文檔,即使有,也是幾年前的了,也沒有教程。

考察點(diǎn)總結(jié):

考察點(diǎn) OS PRO
語言 Java Java
最新發(fā)布日期 2017-01-12 ?
誰在用 ? Intel, LimeLight,…,etc(最經(jīng)典的方案)
文檔 ? ?
伸縮 ? ?
debug ? ?
許可證 Apache License v2 付費(fèi)
網(wǎng)絡(luò)協(xié)議 HLS, WebSockets, RTSP, RTMP, RTMPT, RTMPS, RTMPE HLS, WebSockets, RTSP, RTMP, RTMPT, RTMPS, RTMPE, WebRTC
自適應(yīng)碼率 ? ?
流控 ? ?
錄制 ? ?
回放 ? ?

2.2 kurento

主頁: http://www.kurento.org/

github: https://github.com/kurento

服務(wù)端采用C++實(shí)現(xiàn): https://github.com/Kurento/kurento-media-server

特性:

  • 支持HTTP、RTP和WebRTC
  • 集成OpenCV,支持分析圖像抽取信息
  • 轉(zhuǎn)碼(這個是剛需了)
  • 廣播
  • 提供Kurento API,可以在此基礎(chǔ)上構(gòu)建服務(wù)器的高層邏輯,并提供了Java和NodeJS的實(shí)現(xiàn),基于此可以實(shí)現(xiàn)權(quán)限校驗(yàn)等業(yè)務(wù)邏輯
  • 支持NAT穿越

文檔地址: http://readthedocs.org/projects/doc-kurento/downloads/pdf/stable/

考察點(diǎn)總結(jié):

考察點(diǎn) 情況
語言 C++
最新發(fā)布日期 2018-03-21
誰在用 沒有業(yè)界權(quán)威在用,Github 800+Star
文檔 比較全
伸縮 ?
debug ?
許可證 LGPL v2.1
網(wǎng)絡(luò)協(xié)議 HTTP, RTP, WebRTC
自適應(yīng)碼率 ?
流控 ?
錄制 ?
回放 ?

2.3 RestComm

官網(wǎng) https://www.restcomm.com/

GitHub https://github.com/RestComm

文檔 https://www.restcomm.com/docs/

免費(fèi)版本功能受限

考察點(diǎn)總結(jié):

考察點(diǎn) 情況
語言 Java
最新發(fā)布日期 2018-04-20
誰在用 ?
文檔 齊全
伸縮 付費(fèi)
debug ?
許可證 AGPL-3.0
網(wǎng)絡(luò)協(xié)議 WebRTC
自適應(yīng)碼率 ?
流控 ?
錄制 ?
回放 ?

2.4 Ant Media Server

官網(wǎng) https://antmedia.io/

文檔 https://antmedia.io/documentation

Github https://github.com/ant-media/ant-media-server

Star Fork

服務(wù)端采用Java實(shí)現(xiàn),是Red5-server的分叉版本

特性:

  • 實(shí)時(shí)流發(fā)布
  • 支持RTMP、RTSP、WebRTC、HLS
  • WebRTC轉(zhuǎn)RTMP適配器
  • IP攝像頭支持
  • 錄制實(shí)時(shí)流(FLV、MP4和HLS容器)
  • 同步重制流到社交媒體(企業(yè)版里Facebook和Youtube)
  • 低延遲1:N WebRTC實(shí)時(shí)流(企業(yè)版)
  • 實(shí)時(shí)流自適應(yīng)比特率轉(zhuǎn)換(FLV、MP4、HLS)(企業(yè)版)

考察點(diǎn)總結(jié):

考察點(diǎn) 情況
語言 Java
最新發(fā)布日期 2018-05-01
誰在用  
文檔 齊全
伸縮 收費(fèi)
debug ?
許可證 Apache License v2
網(wǎng)絡(luò)協(xié)議 RTMP、RTSP、WebRTC、HLS
自適應(yīng)碼率 ?
流控 ?
錄制 ?
回放 ?

2.5 BigBlueButton

官網(wǎng) https://bigbluebutton.org/

文檔 http://docs.bigbluebutton.org/

github https://github.com/bigbluebutton/bigbluebutton

Star Fork

采用Java開發(fā),主要針對場景是授課

特性:

  • 實(shí)時(shí)添加字幕
  • 屏幕共享
  • 分組討論室
  • 錄制與回放

考察點(diǎn)總結(jié):

考察點(diǎn) 情況
語言 Java
最新發(fā)布日期  
誰在用  
文檔  
伸縮  
debug  
許可證  
網(wǎng)絡(luò)協(xié)議  
自適應(yīng)碼率  
流控  
錄制  
回放

2.6 NextRTC

主頁 https://nextrtc.org/

Github https://github.com/mslosarz/nextrtc-signaling-server

考察點(diǎn)總結(jié):

考察點(diǎn) 情況
語言 Java
最新發(fā)布日期 2018-04-05
誰在用 (估計(jì)沒人)
文檔 簡單
伸縮 ?
debug ?
許可證 MIT
網(wǎng)絡(luò)協(xié)議 WebRTC
自適應(yīng)碼率 ?
流控 ?
錄制 ?
回放 ?

2.7 OpenBroadcaster

https://obsproject.com/

https://github.com/obsproject

TBD

Comparison of streaming media systems - Wikipedia

名稱 創(chuàng)建者 最新穩(wěn)定版(發(fā)布日期) 最新發(fā)布日期 價(jià)錢 (USD) 許可證 支持媒體
Cameleon Yatko 1.0.7 (2016-11-11) 2016-11-11 Free 專有 Audio/Video
Helix Universal Server RealNetworks 15.2.1 (2014-09-16) 2014-09-16 Free for 12 months (Basic) and \$1,000-\$10,000 專有 Audio/Video
IIS Media Services Microsoft 4.1 (2011-11-09) 2011-11-09 Free 專有 Audio/Video/Data
Nimble Streamer WMSPanel 2.15.1-3 (2016-03-21) 2016-03-21 Free 專有 Audio/Video
Open Broadcaster Software OBS Project 0.657 (2015-11-24) 2015-11-24 Free GPL v2 Audio/Video
OpenBroadcaster OpenBroadcaster 5.0.0 (2018-01-27) 2018-01-27 Free AGPLv3 Audio/Video
Plex (software) Plex Media Server 1.0.3.2461-35f0caa (2016-07-28) 2016-07-28 Free GPL Audio/Video
Red5 (open source) Infrared5/community 1.0.6 (2015-09-08) 2015-09-08 Free Apache License v2 Audio/Video/Data
Unified Streaming Platform Unified Streaming 1.7.18 (2016-04-11) 2016-04-11 Free Trial license; Perpetual License; Amazon EC2 with embedded license; Microsoft Azure 專有 Audio/Video
Unreal Media Server Unreal Streaming Technologies 12.0 (2017-04-03) 2017-04-03 \$995 perpetual license 專有 Audio/Video
VLC media player VideoLAN 2.2.4 (2016-06-05) 2016-06-05 Free GPL v2 Audio/Video
Wowza Streaming Engine Wowza Media Systems 4.5.0 build 18676 (2016-06-23)[2] 2016-06-23 Free Developer and Trial licenses; Subscription Licenses at \$65/month; Perpetual Pro License at \$1995; Amazon EC2 with embedded license starting at \$0.15/hour 專有 Audio/Video/Data

-

 

來自:http://bungder.github.io/2018/05/06/compare-of-some-open-source-media-server/

 

標(biāo)簽: Google ssl ssl連接 安全 代理服務(wù)器 代碼 防火墻 服務(wù)器 互聯(lián)網(wǎng) 媒體 權(quán)限 通信 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:如何寫一手漂亮的模型:面向?qū)ο缶幊痰脑O(shè)計(jì)原則綜述

下一篇:從源碼看微信小程序啟動過程