RTMP 直播協議與監控有何關係?
RTMP(Real-Time Messaging Protocol,即時訊息協議)是一種在互聯網上串流音訊、視訊與數據的通訊協議,源於 Macromedia(後被 Adobe 收購)的 Flash 串流技術。雖然 Flash 已經淘汰,RTMP 至今仍是直播「推流」的事實標準。本頁講解 RTMP 的原理、與監控常用的 RTSP 有何分別,以及攝影機推流直播的實際應用。
RTMP 是什麼?由 Flash 串流到直播推流標準
RTMP 最初是 Macromedia 開發的專有協議,用於 Flash Player 與 Flash Communication Server 之間的串流傳輸;Adobe 收購 Macromedia 後公開了協議規格(不完整版本)供公眾使用,令 RTMP 生態迅速擴展至各類編碼器、伺服器與平台。協議的完整技術細節可參閱 RTMP 1.0 規格文件。協議基於 TCP 運作,預設使用 1935 端口,把音訊、視訊與控制數據切分為小塊(chunk)交錯傳送,維持穩定而低延遲的串流。
Flash 播放器退場後,瀏覽器觀看直播已改用 HLS、DASH、WebRTC 等技術,但在「來源到伺服器」的推流一段,RTMP 因為簡單、延遲低、支援廣泛而繼續通用——主流直播平台至今仍以 RTMP 作為接收推流的標準入口。業界組織 Veovera 亦持續推進 Enhanced RTMP 規格,為協議加入 HEVC、AV1 等新編碼支援;瀏覽器端播放則多採用 IETF RFC 8216 定義的 HLS 協議。
RTMP 與 RTSP:推流與拉流的分工
監控工程師最常接觸的串流協議是 RTSP,兩者經常被混淆,其實方向與用途不同:
| 比較項目 | RTSP | RTMP |
| 典型方向 | 拉流:NVR/播放器向攝影機請求視訊 | 推流:攝影機/編碼器主動送流上伺服器 |
| 主要用途 | 監控系統內部取流、錄影 | 對外直播、雲端平台分發 |
| 傳輸基礎 | 控制走 RTSP,媒體多以 RTP 傳送 | TCP 單一連接,音視訊與數據分塊交錯 |
| 預設端口 | 554 | 1935 |
| 標準性質 | IETF 開放標準 | Adobe 公開的專有協議規格 |
| 加密變體 | 可配合其他機制加密 | RTMPS(RTMP over TLS/SSL) |
簡單記法:內部監控用 RTSP,對外直播用 RTMP。兩者並非互相取代,而是在同一系統中分工合作。