HUB 8735 Ultra 全方位開發指南-影像串流篇

本篇將介紹如何設定廣角鏡頭、使用 mJPEG 進行網頁監控,以及使用 RTSP 進行帶聲音的高畫質串流

現在 IoT 與 AIoT 裝置越來越常搭配影像感測功能,但「拍照」與「串流」是兩種完全不同的設計思維:拍照是「單張快照」,而串流是「連續影像 + 可能含聲音的高頻資料傳輸」。

本篇教學除了介紹如何設定鏡頭與解析度,還會帶你一步一步理解各種串流協定的特性與使用方式,讓你的 HUB 8735 Ultra 真正做到「看得見」與「傳得穩」的影像串流系統。

為什麼要做影像串流?

在智慧監控、遠端即時觀測、機器視覺辨識等應用中,影像串流是最核心的資料輸出方法之一。例如:

  • 智慧監視系統:即時觀察廠區、門口、車道畫面
  • 行動機器人:遠端查看周遭環境
  • AI 物件辨識:讓影像推論可視化
  • 生產線監控:即時畫面與警示聯動

HUB 8735 Ultra 具備高解析影像擷取能力與強大的 AI 運算引擎,可配合各種串流協定來達成「直播級畫面分享」,不僅能在 local network 顯示,也能透過網際網路傳送至遠端平台。

一、拍照存檔與鏡頭設定

在進入串流前,首先要理解 鏡頭模組與解析度設定

廣角鏡頭 vs 標準鏡頭

若您更換了廣角鏡頭 (PS5268),必須在 Arduino IDE 中進行設定,否則影像可能會異常。請至 工具 (Tools) > 鏡頭選項 (Camera Options) 選擇 PS5268

鏡頭類型標準款 (JXF37)廣角款 (PS5268)
視角 (FOV)71.9°154°
應用場景室內監控、倒車顯影全景、無人機、360度攝像

解析度設定與拍照範例

拍照存檔範例

在進行串流前,可以先確認基本的拍照功能是否正常。這包括:

  • 設定好鏡頭型號
  • 定義解析度
  • 編寫「按鈕觸發拍照 → 存檔」功能

這樣做的目的,是先讓裝置能「清楚輸出單張圖片」,再進一步處理「高頻影像串流」。
程式碼中可定義不同 Channel 的解析度,例如 Channel 0 為 1080P,Channel 1 為 720P。

若需要實作「按鈕觸發拍照並存檔」的功能,可參考以下範例程式:

二、mJPEG Stream (無聲串流)

mJPEG 是什麼?

mJPEG(Motion JPEG)是一種簡單的串流方式,它將每一幀畫面都當作一張 JPEG 圖片,然後快速連續傳輸,讓瀏覽器看起來像影片一樣。

mJPEG 的優缺點

優點

  • 瀏覽器原生支援(不需安裝外部播放器)
  • 延遲較低、實作簡單

缺點

  • 沒有聲音
  • 影像壓縮效率較低
  • 對網路帶寬需求較高

如何使用

開啟範例:AmebaMultimedia > CaptureJPEG > HTTPDisplayJPEGContinuous (參考圖片路徑)。

瀏覽器觀看 mJPEG 畫面

這種串流方式適合作為「快速驗證影像輸出」或在 LAN 內即時監看。

三、RTSP Stream (H.264 + 聲音)

RTSP 是什麼?

RTSP(Real Time Streaming Protocol)是目前監視系統與串流設備最常使用的標準協定之一。與 mJPEG 不同,它可同時傳送高效率壓縮的影像(H.264/H.265)與聲音資料

影像文件的相關宣告: https://github.com/Ameba-AIoT/ameba-arduino-pro2/blob/3e3ca18cf1c304d944b9fa0e6f7f27bf5ddce03e/Arduino_package/hardware/libraries/Multimedia/src/VideoStream.h#L34-L52

特性

  • 壓縮技術: 透過 H.264 或 H.265 壓縮,將影像檔案縮小到一半以上。
  • 支援聲音: 與 mJPEG 不同,RTSP 可以同時傳輸聲音。
  • 相容性: 市面上的 DVR 主機或 NAS 系統 (如 QNAP) 皆支援接收 RTSP 進行長時間錄影。

使用範例與觀看方式

  1. 開啟範例: AmebaMultimedia > StreamRTSP > SingleVideoWithAudio (單影像+聲音) 。
  1. 下載播放器: 電腦或手機端需下載 VLC Player 
  2. 輸入網址: 在 VLC 中開啟「網路串流」,填入 rtsp://你的IP位置:554
VLC 播放器設定畫面

透過這種方式,你的裝置不只是能抓圖,它可以像監控攝影機一樣在網路上提供高品質影像與聲音。

四、注意事項:傳 LINE 影像

⚠️ 服務終止提示:
簡報中特別標註「傳 LINE 影像」功能之教學或服務 只到 03/30,請留意相關 API 或服務是否已變更。

五、傳 MQTT 影像 (廣域網路)

為什麼要用 MQTT?

在 IoT 世界中,跨網域(WAN) 的即時資料傳輸常常會受限於 NAT、防火牆等因素。透過 MQTT 協定,可以將影像資料「先上傳到 Broker → 再由訂閱端取得」,實現跨地域監看。

如果需要在不同網域 (廣域網路) 之間傳輸影像,MQTT 是一個很好的解決方案。它透過中介方式轉傳資訊,概念類似 Email 信箱。

MQTT 傳輸原則

  • 伺服器 (Broker): MQTTGO.io
  • 主題 (Topic): 類似信箱地址,可自行取名,原則上以斜線 / 區分階層。
    例如: alice/class205/image 或 艾瑞克/AI教室/即時影像
  • 傳輸效能: 經測試最高大約每秒 8 張 (解析度 640×480 或 800×600)。

📥 程式碼下載:
https://twgo.io/xwznc

查看MQTT照片(手機也可以)

1. 使用瀏覽器輸入網站:mqttgo.io

2. 先點連線

3. 點選訂閱,輸入Arduino所輸入MQTT影像主題的名稱後,點選圖片,並修改適合的名稱(ID),ID每一個圖表都需不相同

4. MQTT APP(Android):twgo.io/mqttd

MQTT影像傳輸結果

Nodered接收即時影像

若你想在本地伺服器做更多自動化處理(例如畫面標註、人臉偵測、儀表板顯示),可以透過 Node-RED 串接 MQTT 並將影像顯示在 Dashboard。此流程能讓你的監控系統具備更多延伸功能,不只是觀看。

Nodered匯出的JSON格式:
https://docs.google.com/document/d/1Z265trdLOvrGeg11agV3k8_CKJtHvGwVGBqA2xmThPY/edit

要安裝的套件

  1. node-red-contrib-image-output
  2. node-red-node-base64
Nodered接收即時影像結果

結語

透過本篇的介紹,你已經了解:

📌 如何針對不同需求選擇適合的串流方式
📌 mJPEG vs RTSP 的差異
📌 如何在本地監看或跨域傳送影像
📌 如何整合現有 IoT 架構與訊息協定

無論是智慧監控系統、機器人遠端控制或長時間影像紀錄,影像串流都是 AIoT 系統中不可或缺的一環。HUB 8735 Ultra 的強大影像與 AI 能力,讓這些串流技術不只是理論,而能真正落地於你的專案。

電子報更新

請在下方輸入你的電子郵件地址並訂閱我們的電子報

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *