iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
1
Modern Web

前端影片與直播筆記系列 第 7

Day07 RTMP 直播協議簡介

今天來簡介 RTMP 直播協議。

RTMP 全名 Real-Time Messaging Protocol ,是由 Adobe 所有的媒體傳輸協議,其走的是 TCP 協議,RTMP 有很多兄弟協議(例如 RTSP )或衍生協議(例如 RTMPS ),可以參考維基百科

既然是 Adobe 所屬,RTMP 所傳輸的影片自然是以 FLV 為主,當然 RTMP 影片也可以是非直播 (具有明確片長、完整的影片) ,這個直播協議的即時性很好,延遲也比較小。

一個 RTMP 的影片連結是長這樣
rtmp://184.72.239.149/vod/BigBuckBunny_115k.mov

我們可以用 HLS Player 來播放看看

 
RTMP 的延遲性比 HLS 還低,但它的其他缺點也很明顯:

  1. RTMP 無法在手機的瀏覽器上播放。
  2. 在 PC 瀏覽器上需要開啟 Flash 才能播放。

雖然網頁播放器如Video.js、Clappr Payer、JWPlayer.js..等各種播放器都有方法可以播放RTMP,但根本上還是要打開 Flash 才能觀看。

上述兩點已經非常麻煩了,最致命的還是

  1. Adobe 將於2020年停止支援 Flash

Adobe決心賜死Flash 科技網站:沒人會掉一滴淚

賈伯斯2010年即預言:Flash不適合行動時代

上述三點主要是以網頁瀏覽器的角度來看,如果今天是要以 APP 的方式來播放RTMP,那以上自然不是大問題。
 
最後,單純以網頁前端的角度來看,繼續使用 RTMP 在網頁上的理由不多。
據我所知,現在仍在使用 RTMP 直播的,多半是一些歐美電視台直播(尤其運動類),其他產業則多半是博弈業 (因為賽事比分很重要所以延時性越小越好),然而現在正處於網頁上的過渡期,公司若決定使用 RTMP 至少會有兩個缺點:

  1. 開發上較為瑣碎囉嗦

由於 PC 瀏覽器預設把 Flash 關閉,所以前端還要額外去找一些方法或 Library 提醒/誘導使用者開啟 Flash。

萬一公司今天還混了其他類型直播(例如 HLS ),同時處理兩個協議真的是很煩,雖然這正是工程師的價值所在。

  1. 使用者體驗不好/反平靜科技

雖然 Chrome 或 Edge 等瀏覽器,開啟 Flash 還是能觀看 RTMP協議影片,但每個瀏覽器開啟的位置不一樣,如果是IE11,還需要額外安裝 Adobe Flash Player 才行。

在IE上


 

Edge上 開啟Flash

google上 開啟Flash

 
 
對使用者來說,他們不會在意什麼 Flash,使用者只關心影片可不可以看,影片不能播放,使用者就會以為壞了而向公司回報,在回應/客服的處理上會非常麻煩。
 
 
 
如果是在意延時性問題而不想用 HLS ,那現在也有其他選擇,例如 HTTP-FLV。
 
 
參考
Adobe RTMP規範


上一篇
Day06 HLS 直播協議簡介
下一篇
Day08 DASH ( MPEG-DASH ) 直播協議簡介
系列文
前端影片與直播筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言