2026-10-15

RTSP 轉 WebRTC:監控攝影機與無人機怎麼做到瀏覽器即時播放?

多數 IP 攝影機預設輸出 RTSP,高階企業無人機、無人機停機站(Drone Docking Station)、戰術 UAS 也多半走這個協定;消費級與準專業無人機則大多從飛行 App 推 RTMP。問題是,現在的瀏覽器原生都不吃 RTSP,也不吃 RTMP。把畫面轉包成 HLS 能解決播放問題,但操作員看到的往往是 20 秒甚至更久之前發生的事。Wowza Streaming Engine 把 RTSP、RTMP 轉成 WebRTC,同一支畫面能在 1 秒內送進 Chrome、Edge、Firefox、Safari,不需要外掛或專屬播放器。

全球影像監控市場規模預計在 2028 年達到 833 億美元,相較 2023 年成長近 10%,成長動能一部分來自智慧城市、建築生態系對安全與成本節省的重視,但更關鍵的是技術本身的進展,讓過去只存在於想像裡的監控場景變得可行。


監控場景為什麼在乎即時性

即時影像在分秒必爭的緊急狀況裡至關重要,畫面愈快送到決策者面前,執法與第一線應變的反應速度就愈快。危險工作環境、軍事任務、甚至醫療場域都需要即時監控:有醫療機構用 Wowza 對 NICU 新生兒的家長提供全天候病房監看,也有業者用 IP 攝影機做海岸線即時監控。即時影像也能當成法庭證物、讓屋主安心,或是在洪水、野火偵測上發揮作用。

常見的即時監控應用場景包括:工業設備稽核、礦場作業、醫療監看、治安應變、天災偵測與應變、工安事故處理、交通管理、無人機巡檢、緊急應變通話。這些場景的共通點是:畫面慢一步,付出的代價可能就是安全或成本。


RTSP 是什麼

RTSP(Real-Time Streaming Protocol,即時串流協定)最早由 RealNetworks、Netscape 跟哥倫比亞大學在 1996 年合作開發,設計目的是在原始影像來源跟串流伺服器之間建立並維持連線,同時支援即時媒體操作。RTSP 是應用層協定,實際傳輸媒體資料靠的是 RTP(Real-Time Transport Protocol);RTSP 則讓伺服器能對來源端下指令,支援暫停、倒轉這類即時互動,這也是為什麼 IP 攝影機普遍選用這個協定。

RTSP 預設走 TCP 554 埠,加密版本 RTSPS 預設走 TCP 322 埠。高階企業無人機較常見 RTSP 輸出,消費級與準專業無人機的飛行 App 則多半推 RTMP;Wowza Streaming Engine 用同一套工作流程把 RTMP、SRT 無人機訊源也轉成 WebRTC。


WebRTC 是什麼

WebRTC(Web Real-Time Communications)是一組協定、標準跟 JavaScript API 的組合,2011 年由 Google 收購一套原本設計給少數人視訊通話用的開源瀏覽器視訊技術而來。它天生是為低延遲對話設計的,不是為一對多廣播設計的,所以沒有額外的伺服器基礎架構支援,很難撐起大規模觀眾群。

WebRTC 速度快,部分原因是它用 UDP 連續傳輸媒體,而不是下載、緩衝一段一段的影片片段;每個現代瀏覽器都原生支援播放 WebRTC。單純的點對點連線缺乏擴展性,這也是 WebRTC 的弱點,搭配媒體伺服器跟影片 CDN 這類串流基礎架構之後,WebRTC 才能應付更多樣、更大規模的使用情境。Wowza Streaming Engine 的 WebRTC 堆疊支援 simulcast(多畫質同步輸出)、頻寬估算、封包遺失復原(NACK 與 RTX)、ICE restart,以及 data channel,讓瀏覽器端的播放在各種不穩定的網路條件下都更有韌性。


RTSP 跟 WebRTC 怎麼在監控場景裡搭配

一套串流工作流程裡可以同時用到不同的傳輸協定。RTSP(搭配 RTP)通常用在收錄端(把來源端的資料打包送進媒體伺服器),而不是用在發送端(從媒體伺服器送到觀眾端的裝置)。

多數 IP 攝影機預設用 RTSP,許多企業無人機平台跟 UAS 工具也是,但網頁瀏覽器原生不支援 RTSP,除非媒體伺服器先把畫面轉包成更適合播放的協定(像 HLS 或 WebRTC),否則根本看不了。RTSP 轉 HLS 可能造成最多 20 秒的延遲(沒特別優化的情況下),監控場景根本等不起這個時間。HLS 用分段方式送出影片,播放器要先緩衝好幾個片段才會開始播放,概略的估算方式是把 HLS 延遲設定在片段長度的三倍左右——一個 6 秒的片段,大概就會多出 18 秒延遲。

WebRTC 可以同時用在收錄端跟發送端,不會拖累延遲表現。把 RTSP、RTMP 串流轉成 WebRTC,等於讓營運方留著既有的 IP 攝影機跟無人機,同時拿到即時速度。要達到最廣的瀏覽器相容性,Wowza 建議攝影機用 H.264、720p、每秒 30 幀、Baseline 設定檔,使用 Main 或 High 設定檔的攝影機則建議關閉 B-frame;攝影機端的低延遲調校也有幫助。轉碼(包含 WebRTC 要求的 AAC 轉 Opus 音訊轉換)會增加一點處理時間。


無人機怎麼做到超低延遲串流到瀏覽器

消費級與準專業無人機的飛行 App 多半推 RTMP,高階企業無人機、無人機停機站、戰術 UAS 則較常見 RTSP 或 RTSPS。RTMP 跟 RTSP 都無法在瀏覽器裡原生播放,無人機畫面因此走跟 IP 攝影機一樣的路徑:媒體伺服器把畫面轉包成 HLS,或轉成 WebRTC 做次秒級傳送。Wowza Streaming Engine 把 RTMP、RTSP、SRT 這些協定統一轉成 WebRTC,同一套工作流程能把 IP 攝影機畫面跟無人機畫面都以極低延遲送進瀏覽器。

推 RTMP 的無人機直接發布到直播應用程式;走 RTSP 的無人機則跟一般 IP 攝影機一樣,透過 .stream 檔案連線。Wowza Streaming Engine 也能把 RTMP 無人機訊源重新輸出成 RTSP,供只接受 RTSP 的影像管理系統(VMS)或分析工具使用。


Wowza Streaming Engine 怎麼做到即時監控

Wowza 支援地端、雲端、混合三種部署方式。Wowza Streaming Engine 把 IP 攝影機的 RTSP 訊源,或無人機的 RTMP/RTSP 訊源收進來,轉包成 WebRTC 做次秒級傳送,可以跑在地端、氣隙隔離環境、雲端、邊緣,或混合式部署,同一份收錄來源還能同時餵給 HLS 播放跟錄影。

在 Wowza Streaming Engine 4.12 設定 WebRTC 的大致流程:為直播應用程式設定 TLS 並啟用 WebRTC;用 .stream 檔案連接攝影機,或讓無人機把畫面推送到 RTMP 網址;來源帶有音訊時,把 AAC 轉碼成 Opus 供 WebRTC 播放;正式上線前,先在 WebRTC 測試頁確認畫面正常。WebRTC 需要加密,伺服器要有 TLS 憑證,且要在 TLS 主機埠上設好 WebRTC 信令(Signaling),才能開始播放。

攝影機端建議設定:編碼器 H.264,解析度 720p,每秒 30 幀,設定檔選 Baseline,這組設定能拿到最廣的瀏覽器相容性。多數監控攝影機跟無人機只送畫面沒有聲音,這類訊源可以完全略過音訊轉碼;來源帶有 AAC 音訊時,才需要在 Wowza Transcoder 裡加一道影像直通、音訊轉 Opus(48 kHz、立體聲)的轉碼設定,並留意 Wowza Streaming Engine 4.8.14 之後預設會幫影像加 B-frame,若影像也要轉碼,記得關掉這個選項。


常見連線問題排解

以下六種狀況是 Wowza 支援工單裡最常被問到的情境:

攝影機在 VLC 能播,但 Wowza Streaming Engine 播不出來?

先確認同一支攝影機能不能直接在 Wowza Streaming Engine 伺服器主機上用 VLC 或 ffplay 播出來,工作站播得出來不代表伺服器端連得到。有些攝影機還會送出 ONVIF 中繼資料或其他伺服器解析不了的軌道,這時可以用 rtspFilterUnknownTracks 這個屬性把這些軌道過濾掉。


攝影機連上了,卻完全沒畫面?

防火牆或 NAT 裝置常常擋掉 RTP 用的 UDP 埠,把 RTPTransportMode(或 .stream 檔案裡的 rtpTransportMode)切成 interleave 模式,讓媒體資料改走 RTSP 的 TCP 連線,可以解決大多數這類狀況。NAT 後方的攝影機有時會在 SDP 裡回報一個私有 IP,導致 DESCRIBE 請求成功卻收不到媒體,Wowza Streaming Engine 4.12 新增的 rtspIgnoreAdvertisedHost 屬性能處理這個情況,設為 true 後,伺服器會改用設定好的串流網址裡的主機與埠號送出 SETUP 跟 PLAY 請求。同時跑 RTSP 跟 WebRTC 的伺服器,官方建議兩者分開設定不同的 UDP 區段,因為兩者預設都是用 6970 到 9999。


WebRTC 播放器出現黑畫面或斷線?

黑畫面通常代表 ICE 找不到一條伺服器跟觀眾之間能通的網路路徑。WebRTC 需要 TCP 443 做信令、UDP 6970 到 9999 傳媒體、TCP 1935 作為備援,這三個埠都建議避開深度封包檢測。如果網路會擋外送 UDP,Wowza Streaming Engine 4.11.3 之後可以透過 TURN 伺服器改用 TCP 或 TLS 中繼媒體。4.12 的 ICE/Network 頁籤會列出伺服器蒐集到的 ICE 候選項,是第一個該檢查的地方;連線中途 UDP 斷掉時,4.12 也會自動重啟 ICE、改走 ICE-TCP 續播,不會直接中斷連線。


有畫面卻沒有聲音?

Wowza Streaming Engine 的 WebRTC 音訊只支援 Opus 或 PCM 格式,多數帶音訊的 IP 攝影機送出的是 AAC,沒做 AAC 轉 Opus 的轉碼,WebRTC 畫面就會是無聲的。影像編碼則建議維持 H.264,相容性最穩;Wowza Streaming Engine 的 WebRTC 也支援 VP8、VP9。


無人機或無線攝影機畫面會頓格、凍結?

無人機跟無線攝影機訊號常常走行動網路或無線回傳,封包容易延遲或亂序抵達。啟用 RTP jitter buffer 能讓不穩定的 RTSP 收錄變平滑,代價是增加一點延遲;播放端則可以打開 4.12 新增的 NACK 與 RTX 封包遺失復原(預設關閉,在 Advanced/RTP Feedback 頁籤),用一點延遲換取更穩定的畫面。


升級到 4.12 之後有什麼變化?

從舊於 4.11 的版本升級,伺服器會繼續跑舊版 WebRTC 邏輯,直到管理者手動更新 VHost.xml 跟 Application.xml。WebRTC 設定現在分散在 General、ICE/Network、Simulcast、Advanced/RTP Feedback 幾個頁籤裡。4.12 也換了新的密碼雜湊機制,升級後新增或改過 Manager 使用者,若退回 4.11 可能會把這些使用者鎖在外面;4.12 也會對 WebRTC 發布與播放連線驗證 SecureToken,缺少、無效或過期的 token 都會被拒絕連線。


常見問題


瀏覽器原生支援播放 RTSP 嗎?

不支援。Chrome、Edge、Firefox、Safari 都需要像 Wowza Streaming Engine 這樣的媒體伺服器,先把 RTSP 攝影機或無人機畫面轉成 WebRTC 或 HLS 才能播放;要在瀏覽器裡用次秒級延遲播 RTSP 畫面,必須轉成 WebRTC。


RTSP 用哪個連接埠?

RTSP 預設走 TCP 554 埠,加密版本 RTSPS 預設走 TCP 322 埠。RTP 媒體資料走 UDP,Wowza Streaming Engine 預設用 UDP 6970 到 9999 埠接收 RTSP/RTP 訊源。


怎麼讓 RTSP 攝影機畫面送進瀏覽器不會延遲 20 秒?

當媒體伺服器把 RTSP 轉成 WebRTC 而不是 HLS,就不會有 20 秒延遲的問題。WebRTC 不需要緩衝影片片段,Wowza Streaming Engine 能用次秒級延遲送出畫面。


無人機畫面可以用 WebRTC 串進瀏覽器嗎?

可以,透過媒體伺服器就能做到。消費級與準專業無人機多半推 RTMP,高階企業無人機則較常見 RTSP 或 RTSPS,Wowza Streaming Engine 兩種協定都能收,轉成 WebRTC 後以次秒級延遲送進任何現代瀏覽器。


RTMP 能在瀏覽器裡播放嗎?

不能,現代瀏覽器都不支援直接播放 RTMP。Wowza Streaming Engine 可以把 RTMP 訊源轉成延遲較高的 HLS 做大範圍播放,或轉成 WebRTC 做次秒級播放。


WebRTC 播放沒有聲音,是什麼原因?

最常見的原因是來源送的是 AAC 音訊,而 Wowza Streaming Engine 的 WebRTC 只輸出 Opus 或 PCM 格式。Wowza Transcoder 把 AAC 轉成 48 kHz 的 Opus,就能把聲音補回來。


免費下載試用

請先到愛上雲eSHOP下載 Wowza Streaming Engine 免費試用,實際測試把監控攝影機或無人機的 RTSP/RTMP 訊源轉成 WebRTC 送進瀏覽器的設定流程。

RTSP 轉 WebRTC:監控攝影機與無人機怎麼做到瀏覽器即時播放?