首頁  >  文章  >  後端開發  >  App與Web內如何實現即時拉取其他直播平台的視訊串流並播放?

App與Web內如何實現即時拉取其他直播平台的視訊串流並播放?

WBOY
WBOY原創
2016-10-11 14:03:544395瀏覽

本人不是技術背景的,體驗過很多內容聚合類的 app,如「即刻」、「豌豆莢一覽」等,但是這些內容的形式都屬於非即時的。

請問,技術上可否實現自動且實時的拉取其它人家的直播 app 裡的內容,並在自己的產品框架下去播放(不交互)?不透過談判合作,自己透過科技是否可以實現?

另外,想知道,這個問題的答案對於手機 app 或 web 是否有區別。

謝謝,希望我的描述能讓勉強各位聽明白。

回覆內容:

這其實就是一種盜播。這種做法的核心特點是:

自己不花流量費,用戶觀看影片時直接請求目標平台的伺服器——這也是為什麼叫「盜播」而不是「轉播」的原因,你是用別人的錢給自己發家致富,而「轉播」則是自己掏流量費,只是內容來自外部(當然轉播也應當合法才行)。所以很容易理解如果第三方平台發現你這麼做他們會有多憤怒。

道德方面不評價,單從技術上來說是可行的,但也存在一些限制。

可行的原因是:
  • 目前大部分直播平台的技術底層使用的都是RTMP(Real-Time Messaging Protocol) 協議來實現直播流的發送(主播方)與接收(觀眾方)
  • 為了在行動裝置Web 環境下實現直播觀看,這些直播平台還會額外使用HLS(HTTP Live Streaming)協議
  • 上述兩種協議,都是開放的。 RTMP 協定源自 Adob​​​​e 公司,技術規格請參考:Real-Time Messaging Protocol (RTMP) specification 。而HLS 協議則源自Apple 公司,技術規格請參考:developer.apple.com/strdeveloper.apple.com/streaming/


  1. 主要是三部分:
採集——主播使用OBS 之類的軟體來錄製視頻,並能夠將數據發送向伺服器

轉播——伺服器使用SRS/Red5 之類的軟體實現接收採集端發來的資料並轉發給回放端(觀眾)

回放——實質上就是指播放器,通常嵌入在Web 頁面或App 裡,觀眾透過它們來觀看

    對於盜播方,只需要實現回放功能即可。而回放怎麼實現呢?其實你很容易就可以找到一個開源的播放器,支援 RTMP 和 HLS 協定。那麼剩下的最後一步,就是抓取到那些直播平台的節目的播放位址了。注意這不是指直播節目的網頁位址,而是指節目底層協定規定的位址,例如RTMP 協定規定每個節目都有一個rtmp:// 開頭的位址,而HLS 則是每個節目都有一個http: // 開頭的位址(HLS 實際上是基於HTTP 協定的,因此其節目位址就是一個普通的網址)
  1. 是的,只要你能抓取到那些直播節目的視訊串流位址,再找一個播放器,就能直接播放了。這種方案基本上能夠盜播國內絕大多數平台的視訊資源。
  2. 但也有少數平台做了防範,基本上有幾類防範手法:
  3. 不使用RTMP 和HLS 而是基於自研的未公開協議,這大大提高了盜播難度(雖然這些平台原本並不是要防盜播,而是為了實現P2P、低延遲等)
透過技術手段阻撓你獲得直播視訊的串流地址(有一定效果,但也存在很多疏漏)

透過分析請求方是從哪個平台發起請求的,判斷是否盜播(類似HTTP 協議的referer 防盜鏈機制,可以阻斷低水平盜播)

通過檢查登陸令牌的方式阻止盜播(對於許多登錄才能看的移動端直播APP 來說這可以說是防盜播的殺手鐧,但是對於鬥魚熊貓之類不需要登入就能看的平台來說,這種效果不佳)

🎜技術方面大致的情況就是這樣。 抖個機靈…🎜🎜嵌入一個 指定直播的IFRAME頁面 即可🎜🎜安全可靠無公害… 理論可以 實際上很難🎜你看過qq第三方客戶端有嗎 或有了活得久的沒 市場上已經有此類app了
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn