Official Blog
從測試到整合:如何讓上萬款攝影機在 Synology 系統中穩定運作?
Avery Lee
2025-08-27

從測試到整合:如何讓上萬款攝影機在 Synology 系統中穩定運作?

選購監控攝影機時,你應該或多或少聽過 ONVIF(開放式網路影像介面論壇) 這個名詞,這是由影像監控業界共同制定的開放標準,讓各種設備彼此可以兼容通用、即插即用。ONVIF 的出現,大幅提升不同品牌設備之間的互通性,但這項協議更新的速度,還追不上各家廠商每年新增的各種功能,加上不同廠商的實作落差很大,代表著並非標示為 ONVIF 的攝影機,就一定能順暢使用。

對於 Synology 一站式影像管理系統 Surveillance Station 來說,我們同樣支援了 ONVIF 協定,但要讓來自上百個品牌、成千上萬種型號的 ONVIF 攝影機,順利與 Synology 系統溝通連線,並不是一件容易的事情。開發團隊經常得處理各種例外與異常,像是某些功能無法運作、影像傳輸不穩定,這些突發狀況究竟是如何發生的?

市場現況:一套標準無法套用在所有行為

1. 與第三方的整合之路不一定永遠順暢

曾有使用者表示,他透過 ONVIF 新增一台第三方攝影機時遇到障礙,經追查後發現,由於該品牌在新版韌體中,修改了 ONVIF 的實作方式,導致 Surveillance Station 無法套用標準流程進行串接。類似的情形在目前市場上並不少見,許多攝影機雖然標榜支援 ONVIF,實際上廠商經常在更新韌體時,反而讓 ONVIF 無法使用。萬幸的是,我們先前已透過內部工具,整合了這台攝影機的原生 API,因此無需藉助 ONVIF 亦能連線,可以應對廠商韌體更新後造成的標準差異。

2. 攝影機回傳的資訊充滿陷阱

攝影機雖然會主動回報資訊與其支援的功能,但這些內容卻不能全信。開發團隊就不只一次遇過以下幾種情況:

  • 功能過度宣稱:有些攝影機標示支援三路串流,但硬體其實只能穩定處理兩路。

  • 資料混用:有的 PTZ 攝影機會把使用者自訂的巡邏點,跟預設的快捷操作(像是自動掃描)混在一起回傳,導致設定錯亂。

  • 缺少基本功能:部分攝影機甚至沒實作 ONVIF 中的 CreateProfile 指令,導致設定流程從一開始就出現問題。

面對這些狀況,開發團隊就不能只照著標準流程走,而是要加入額外的驗證與校正,針對每台攝影機實際行為修正。根據攝影機回傳的資料,透過整合工具主動檢查與篩選,必要時使用其他方法來達成相同目的。

3. 從源頭修正不標準的格式

另一位使用者回報,他無法透過 Surveillance Station 對攝影機進行雙向語音通話,但該品牌我們已經整合完畢,系統也顯示支援音訊輸出,乍看之下一切都該順利運作才對。然而經追查後發現,先前開發團隊為該品牌建立通用整合模組(Generic Conf)時,把 audio output(聲音輸出)的功能,套用到該品牌所有的攝影機,但實際上只有某幾個型號才支援此功能。

這些經驗都讓我們有所學習,並調整了開發策略:一套成熟的攝影機整合方案,要有能力處理第三方廠商帶來的問題,同時內部還需要一套檢查機制,減少回報錯誤、沒有支援特定功能的情況發生。

整合哲學:在混亂中建立秩序

前面提到的案例,只是整合工作的其中一小部分。我們透過這些經驗了解到單靠標準規範,無法處理現實世界的各種狀況。因此開發團隊打造了一套「整合工具(Integration Tool)」,讓影像監控系統即使處於不穩定、複雜的環境下,也能可靠地完成任務。而具體作法可以分為三個方向:

1. 避免斷線干擾,保障設備穩定

現實網路環境常會發生訊號干擾和頻寬變化,當攝影機因為網路不穩而重新連線,設備回傳的資訊就可能改變。然而,當系統只照著標準流程走,攝影機產生變化後的狀態,就會單純被當成「認證失敗」,導致系統顯示難以排解的錯誤訊息。因此,當認證失敗之後,必須讓系統進一步自動檢查哪邊發生變化,並據此提供具體的提示,幫助使用者快速找出問題所在。

另一個類似的例子則是 UPnP 廣播。在某些情況下,原本已設定好的攝影機,因為離線而重新連線後,系統可能會接收到來自 UPnP 的通用連線資訊,覆蓋掉原本正確的設定。為了避免這種錯誤,我們調整搜尋邏輯,讓系統在處理已知設備時,優先使用原有的連線資訊,並忽略不可靠的內容,就能確保設備離線後還能找得回來。

2. 顧及舊系統的相容性,讓更新更安心

我們希望使用者更新系統之後,原本的設定能完整保留下來,尤其是他們自行建立的攝影機設定檔,不能在更新時被清除,因此開發團隊將這些設定存放於獨立空間,便不會受到系統版本變更的影響。

另外,整合工具會不斷更新,開發團隊就要確保軟體在不同年份推出的 Synology NAS 上皆能運作。舉例來說,我們曾經發現新版工具在 DSM 6.2.4 上,因為編譯器行為的差異,造成一個計數器多加了一筆,進而讓整個 ONVIF 驗證流程提前中斷。類似的問題不容易在單一測試環境中重現,我們便重新調整了內部開發流程,要求每次更新都得在多個不同版本的作業系統上測試,及早找出這類相容性問題。

3. 不只驗證過程,也檢查結果是否正確

測試各功能是否正常時,自動化是開發團隊經常使用的工具之一,卻曾發生過自動測試顯示一切正常,實際檢查攝影機設定檔之後,才發現內容竟然是空的。原因是自動化測試處理失敗的能力設定檔Capability File時,沒有妥善處理異常狀況,所以得增加一個步驟,主動掃描產出的設定檔是否完整、有內容,交給使用者的結果才是真的可用。

另外,開發團隊遇過設定檔案中,沒有明確標示設備的設計限制。例如一款攝影機的 OSD 功能畫面文字疊加無論如何都無法啟用。最後發現,這款攝影機必須同時收到「要顯示的文字格式」和「要顯示的座標位置」兩個參數,少一個都不行,而且失敗了也不會回報錯誤。

為了避免未來再次遇到類似的狀況,團隊在整合工具的手動驗證介面中,將格式與位置兩個項目綁定在一起,只要測試人員驗證 OSD 格式,工具就會自動補上位置的參數,這樣一來不僅提升了驗證效率,更能將這個「隱藏規則」納入標準流程之中。

為什麼經過驗證的攝影機才值得信賴?

ONVIF 提供了跨品牌設備溝通的共同語言,但要讓這個語言在每一台攝影機上都能彼此溝通,靠的是一連串實際測試、錯誤排查與不斷修正的過程。這也是為什麼選擇攝影機時,不能只看規格表上有沒有支援 ONVIF,真正的相容性,是團隊花費無數時間與努力,一步步驗證出來的成果。

我們深信這份理所當然的穩定,正是由這數百萬行對細節不妥協的程式碼,一行一行所構築而成。所以當你在 Synology 攝影機支援清單中看到某個型號時,這代表它不只是支援 ONVIF,而是經過各種網路環境、不同韌體版本、甚至攝影機回傳資料不一致等狀況的考驗,確保在 Surveillance Station 上能穩定運作。當然,如果希望能完全免去這些相容性的煩惱,Synology Camera 也是能提供最無縫整合體驗的選擇。