前言:
最近REA逆向工程很熱門,連帶著出現一些破解程式的介紹和實驗,我就把之前寫的NVR裡面的軟體啟用拿來說嘴。
設計是跟AI討論後,AI給出的。
軟體授權:
設計邏輯:
前言:
最近REA逆向工程很熱門,連帶著出現一些破解程式的介紹和實驗,我就把之前寫的NVR裡面的軟體啟用拿來說嘴。
設計是跟AI討論後,AI給出的。
軟體授權:
設計邏輯:
前言:
這篇也是一篇回憶,但跟前面主題無關,因為覺得有趣,因此單獨寫一篇。
緣起:
研究所時,這應該是教授一開始希望我做的方向,但要做什麼不明,最終找不到題目,也是差不多看了一年左右。
異質雙核心平台:
何謂異質雙核心平台是什麼?為何多半用於手機?
在手機上,通常會有單獨一顆CPU專門用於通話時的音訊編碼/解碼,這顆CPU在Nokia與TI那個年代,通常是DSP,DSP強項是快速傅立葉變換,關於傅立葉轉換,我一直學不會😂
因此分工上,主系統運作在ARM9(當時還是ARM9),通話時的音訊處理在DSP。
因為2顆CPU不同性質,因此稱為異質雙核心平台。
延伸一點,後來的手機SoC從ARM + DSP變成ARM + ARM,但第二顆ARM延續DSP作用,一樣是用於音訊編碼/解碼,但TI自此跌落手機SoC神壇,因為TI特色與強項是DSP。
異質雙核心平台有個特色,和雙CPU系統不同在於,雙CPU系統通常是多核心或者多Socket,CPU完全相同,設計完全一致,雙CPU甚至可能會要求型號完全一樣,因此在OS裡面,通常當作相同東西處理,也就共用Cache,甚至Interrupt都在OS共同處理。
但異質雙核心平台不同,異質雙核心平台的DSP端,有自己的OS(TI提供的稱為DSP/BIOS),和ARM端有一塊共用的Cache,其他都是各自獨立的,因此,兩端通訊,主要透過互相觸發對方的Interrupt和在Cache上面收放資料進行通訊。
延伸一點,當時Nokia與TI雖然緊密合作,但TI提供了自己的DSP/BIOS以及自己的通訊Driver - DSP/BIOS Link,而Nokia則開發/維護/實做開源的DSP Gateway。
好,終於把異質雙核心平台介紹完了。
異質平台的起源:
現在筆電、手機很常見,音效都沒有卡了,直接做到SoC裡面了,或者有像I2S這樣的界面可以接,連接標準和驅動程式都有了,但在這些東西裡面,其實都帶有很高深的技術,換個場景,就會用在意想不到的地方。
前言:
延續上一篇。
P2P:
MANET 與 P2P:
MANET和P2P因為都有自適應與自我組織的去中心化特性,因此P2P overlay MANET是個常見的組合。
很多Paper都會提到在MANET上面疊加P2P網路以提供檔案服務之類的。
所以其實有沒有發現,不論是MANET還是P2P,兩個的分享機制是相同的,差異只是分享的資訊是什麼,以及分享後的用途不同而已,在MANET中,分享的是路由表,處理的是跳點路由的路徑,而在P2P分享的是檔案資源清單,處理的是誰需要什麼檔案,檔案在哪裡。
所以通常MANET在底層,P2P在上層,兩者相同邏輯,層級不同,處理的Resource不同。
有沒有可能兩者合併?
嗯...這也是當時構想的方向,但兩者的資料屬性和用途差異太大,我後來覺得不太行,的確有Paper提過,但Paper的內容實際上還是2層,上面一樣是P2P,下面一樣是MANET。
UPnP:
UPnP相信很多人都聽過,但好像好一陣子沒聽到UPnP這東西了,UPnP也差不多是那個時代的技術之一。
UPnP的核心設計跟智慧家庭有關,因此它主要出現在MediaCenter和智能家電那個年代。
UPnP的作用是這樣的,它把裝置分為2種角色,控制器和被控制器,最典型的例子,印表機是被控制器,遙控器是控制器。
所有裝置都要用制式的XML內容,先描述自己是控制器還是被控制器,再描述自己具備什麼服務(功能)。
例如:
我是印表機,我是被控制器,我提供的服務有彩色文件列印、黑白文件列印,我的IP,我的Port。
我是DVD播放機,我是被控制器,我提供的服務有DVD影片播放、影片快轉、影片倒轉、彈出托盤,我的IP,我的Port。
我是遙控器,我是控制端,我提供的服務有我能控制DVD播放機、控制電視機。
UPnP還提供了Discovery之類的探索功能,裝置會廣播自己的上述XML描述,然後別人就能根據UPnP廣播知道網路上有哪些UPnP裝置提供哪些服務。
P2P 與 UPnP:
既然P2P提供分享檔案清單,UPnP提供裝置服務資訊,那是否能把P2P和UPnP結合? 用P2P的方式分享UPnP的服務資訊?
對的,這就是進階的P2P服務探索功能,以P2P方式分享各個UPnP裝置資訊,就能做到動態的知道網路上有哪些服務裝置。
MANET + P2P 與 UPnP:
正如上面提到的,MANET 與 P2P 同質性很高,都具有自適應性、自組織性、去中心化能力,而UPnP有服務探索能力,能夠提供出裝置資訊,那麼MANET + P2P + UPnP會如何?
對的,當時有Paper提出這樣的美好願景,手拿著PocketPC進入辦公室,不用連線WiFi,直接透過MANET + P2P + UPnP,PocketPC就能知道有印表機、有鍵盤、有滑鼠、有螢幕,以及這些裝置的功能和作用。
想像:
有沒有一種可能,我們將 MANET + P2P 搭配像是 UPnP 這樣的Service Discovery功能,提供無人載具具備的「能力」,那麼,就能做到自適應、自組織多台無人載具自行組合與協調?
當然,我相信實際使用應該更單純,直接把功能硬編碼,在開機前就先設置好全部的組成功能,甚至制式化的根據特定配置預先定義好,說不定更簡單還方便。
前言:
這篇開始,會有幾篇以回憶的方式,把之前研究所時候的一個方向,無線網路電力路由的構想進行介紹。
緣起:
還記得研究所時,當時我問教授題目方向時,教授跟我說,讓我天馬行空想,那時F-22剛出現,號稱能夠共享數據鍊,於是異想天開跟教授提了無線網路的P2P,就這樣看了一年,後來沒做這方向,只有survey,這個方向最後的構想,就是無線網路電力路由,我想可以用回憶方式介紹技術。
MANET 與 MESH:
現在MESH WiFi已經很常見了,因此應該很容易解釋了。
簡單的說,所謂的MESH或MANET,指的是多個無線網路節點在一個區域內,當我們要從A地點傳資料給B地點,可是A和B地點太遠,無法直接透過一個WiFi AP通訊時,中間可以有多個WiFi AP,以接力轉傳的方式。例如,從A地點經過WiFi 1 → WiFi 2 → B地點,反過來也一樣,從B地點經過WiFi 2 → WiFi 1 → A地點進行資料傳輸,這種中間透過多個無線網路節點轉傳資料的方式,就是MESH或MANET。
MANET的Paper起源可以追溯到美國DARPA研究機構的兩種東西。
一種是越戰時,戰車或人員感測器以空投方式灑在戰場上,這些感測器因為隨機散佈而且範圍大,因此透過MANET這種跳點轉傳的形式傳遞感測器資料。
另一種是子母彈,但炸彈投出在高空打開灑出的一堆子彈頭,每個都是一個感測器,這些感測器之間同樣透過MANET方式轉傳感測器資料。
這兩種研究結果,一個延伸出颱風/颶風的投落送,一個延伸出動物棲息地的環境偵測。
我念研究所當時,SensorNetwork(WSN)(感測網路)很熱門,很多實驗室在做感測網路和802.15.4,號稱這是未來的重要發展,「感測網路」,又是Wireless,很自然就有人研究把MANET做在WSN上面。
MANET原理 - 網路路由:
MANET之所以稱為跳點路由,很直觀的看,它就是資料傳輸時的節點轉送機制,而在TCP/IP與網際網路中,路由轉送發展已久,有設定網路的都會聽過設定Gateway,IT通常都會學到靜態路由和動態路由。
網路概論都會提到常見的路由協定有RIP和OSPF,然後提到RIP是固定路由,OSPF則能根據路由器狀態,例如路由器的流量、CPU使用率之類的資訊,動態決定路徑。
我們把無線拿掉,單看資料轉發這件事,就會發現,其實MESH、MANET就是把OSPF、RIP這樣的路由協定做在Wireless上。
我們可以由此知道MANET第一個組成關鍵路由表。
MANET原理 - P2P與MANET:
一個有趣的問題,為何看P2P會看到MANET?
這就跟MANET第二個組成關鍵有關了。
P2P常見的BT和eMule,曾經是非常獨特的設計,就算到現在也是自成一個特別的體系。
在P2P中一個核心邏輯是,每個人(節點)都有自己的檔案清單,這個清單內列出了我共享的檔案有哪些。
接著,每個人都會把自己的檔案清單分享給別人,或者分享給清單伺服器,每個人透過詢問能夠知道哪些檔案在哪裡。
MANET把路由表以檔案清單的形式分享給其他節點,這讓每個無線節點,都會有一份自己維護的路由清單,裡面列出的是,要到哪個目的地,可以透過誰到達。
可以想像,MANET等於是用P2P的方式分享路由表,然後透過維護路由表了解要傳資料給誰,要透過誰。
MANET原理 - 主流協定AODV、OLSR(、DSDV):
上面提到每個人都有自己的路由表,並透過詢問方式得知別人的路由資訊,如何詢問得知?
一般透過廣播,也就是大家自己用喊的。
A: 我是A,誰聽得到,回答我。
B: 我聽到了,A你可以連我。
C: 我聽到了,A你可以連我,另外,我可以連到D,你可以透過我連D。
於是A的路由表就有
| Target | 經由 |
| C | 直連 |
| B | 直連 |
| D | C |
這種透過廣播方式,維護自己路由表的作法,就是DSDV,也是最簡易的版本。
AODV和OLSR是當時的2種主流路線:
白話的說,兩種方向,一種是平時不維護路由表,要傳資料時才問,一種是平時維護路由表,但會增加網路廣播影響。(細節不確定,這沒有仔細看)
沒有好壞,各有優缺點,平時維護路由表,要傳資料時直接就能傳,但可能遇到路由資料過時之類的問題,平時不維護,能省下維護路由表的負載,包括定時收發路由資料,但當要傳資料時,要先詢問路由狀態,會拖慢反應時間。
而目前常見的MESH WiFi多半是AODV,原因是,MESH WiFi幾乎都是固定放置不會移動的,因此只在第一次傳送時要詢問出路由,之後不用再問,能節省路由維護的負載。
目前與AI說的發展:
OLSRv2最後一次Release是在2018年,AODV也差不多2018年前後,顯然已經不是新技術了。
我詢問AI後,AI說近期學術Paper開始結合GPS之類的資訊,變成所謂的地理路由,根據GPS資訊或者相對位置,預測或選擇路由方式。
我自己的認知是,套用OSPF的概念,也就是把多個路由資訊進行加權評分,例如典型的WiFi信號強度,現在改成相對物理距離進行判斷,決定出路由路線。
研究所時的構想:
當時的構想跟上面一樣,假設感測節點有插電的,有太陽能的,有純粹電池的。
那麼,可以根據電池電量、是否插電為依據,加上WiFi信號強度當作路由的選擇標準,做動態路由。
前言:
IPCAMM NVR寫了好久,我要設定一個里程碑,釋出第一個Alpha版本0.9.0.0。
釋出後,後續NVR的更新重心會放在測試、除錯上,新功能還會有一些,但基本上會收斂整個Scope。
同時,我會準備開始第二階段Dashboard的開發。
IPCAMM NVR可看成是我對於產品開發的全部Know-How,它基本上就是一整套軟體產品的全部內容,因為是Alpha版本還有很多bug,但這整個就是我對產品的完整認知,當然,未來我如果有其他產品開發,也會依循相同模式和設計進行,而這當然也包括第二階段Dashboard。
程式碼:
說明:
IPCAMM NVR包括的範圍很大。已知Bug:
下一步實做:
前言:
上一篇提到在開發NVR,到今天2026-06-28,目前推測進度在85%~90%之間,這篇就把目前的開發進展貼出來展示。
近況:
Server端大致上都差不多了,但目前根據前端還會修改。
最近主要在處理Playback和Video Decoder/Rendering的部份,這兩塊比較難處理,Playback部份可能還會改到後端Recorder和Gateway的CMD模式。
目前前端特色是,我實際上實做了Linux/MacOS/Windows的硬體解碼器操作以及各平台的Rendering。
Linux硬體解碼器使用VA-API,Rendering實做3種:
MacOS硬體解碼器使用Video ToolBox,Rendering實做2種:
Windows硬體解碼器使用DXVA2(D3D11),Rendering目前實做1種:
我手上這台Windows的電腦太舊了,Microsoft Media Foundation(後面簡稱MF)沒有硬體解碼器的驅動程式,只有DXVA2(D3D11)的硬體解碼器驅動程式。Windows的硬體解碼器最新的是MF,前一代是D3D11,D3D11前一代是DXVA2,DVXA2前一代是DXVA。目前DXVA已經廢棄,D3D11一般也會叫做DXVA2或DXVA。目前Windows實做有MF和D3D11版本,但MF無法測試,D3D11版本 + glrender正常顯示。至於像是vasurface或是nsviewrender這樣的直出,目前還沒時間處理。
Browser版本,目前有點難產,Browser的硬體解碼器挑硬體,不一定會有,我手邊的電腦Chrome都無法正常驅動WebCodecs的軟解和硬解。我目前找到H265的軟體解碼器可以解,但要Rendering是另一個麻煩點,因為UNO Platform是單一個WebGL Canvas整塊成像,它有自己實做MediaPlayerElement,但原理是專門針對MediaPlayerElement挖空讓<video>顯示,這部份還在嘗試突破。
AI功能,目前AI功能已經實做了,可以參考主要功能Demo影片,目前實做了一個AI對話框,能夠直接跟AI對話,架構設計上,AI串接在後端LLM Gateway Service,LLM Gateway裡面設定要使用的AI Model和OpenAI EndPoint以及API Key,API Key設定在後端,不用擔心前端偷走。
前端應用程式在程式中定義了能夠使用的function calling,包括2種,一種是把function calling當成system prompt,這種專門適用於Gemma Model,另一種是標準的function calling呼叫。
流程上,前端會發送API把具備的function calling註冊到LLM Gateway,之後在AI對話框對話時,AI就能知道有哪些function calling能夠使用,並能呼叫工具操作。
目前NvrApp(前端)包括Camera的列出、放置到LiveView、最大化、頁籤切換、目前有哪些Event,計畫中但還沒完成的,把Camera放置到Playback、跳到指定日期時間、播放。
其中Event(已經完成)比較特別,AI的Event function calling包括2種,一種是目前NvrApp收到的Event,另一種則是NvrApp透過後端API查詢資料庫中的歷史Event。
API Model主要用智譜的GLM-4.7測試,但它的API主要相容Claude的Anthropic API協定,包括有所謂的深度思考,目前實做和測試都OK。
License的設定頁面目前是假資料,其他都是真實能運作的。
Demo影片:
主要功能Demo(Linux平台應用程式):
Linux各Rendering效能比較:
Browser WASM現況:
開發與測試環境:
開發電腦:
CPU: AMD Ryzen 5 7530U
GPU: AMD Ryzen 5內顯,4GB VRAM,VA-API支援
GPU硬體編解碼器: MPEG2, VC1, H264, HEVC(H265), JPEG, VP9(不支援AV1)
Memory: DDR4 32GB
作業系統: Debian 13 + MATE Desktop + X-Window + .NET 10(目前到10.0.301)
Linux測試環境(NVR Server):
CPU: Intel Celeron J4105 CPU
GPU: Intel Celeron J4105內顯,VRAM未知
GPU硬體編解碼器: MPEG2, H264, HEVC(H265), JPEG, VP8, VP9(不支援AV1)
Memory: DDR4 4GB
Disk: NVMe 128GB (錄影儲存目前也在這裡面)
作業系統: Debian 13
MacOS測試和編譯環境:
硬體: Mac mini M1 8GB RAM
作業系統: macOS Sequoia 15.7.2
Windows測試和編譯環境:
CPU: Intel Core m7-6Y75 (第六代Intel Core m處理器)
GPU: Intel Core m7-6Y75內顯,Intel HD Graphics 515
GPU硬體編解碼器: H264, H265有硬體解碼器(D3D11)
Memory: DDR3 16GB
作業系統: Windows 10
前言:
前面在寫ONVIF Client Lab時提到,在開發ONVIF相關的Side Project,其實就是NVR。
我回看PRD日期,最早大概從2026-03-21開始,也就是3月底左右,到現在2026-06-01,約2個多月的時間,有空閒就開發它,目前推測進度大概70%左右。
因為好一段時間了,雖然還沒有成果,但我想可以先把目前的規劃、實做進行描述。
因為架構比預期大,之後打算用Gitlab Page或Wiki讓AI撰寫系統架構、設計、Models之類的。
發想:
首先,這個NVR預計會是雙授權型式,AGPL與Commercial。
對的,AGPL開源與商用雙授權。
AGPL允許在不改程式碼的情況下,或者開源的情況下可以修改與使用,甚至以安裝方式提供商用服務,唯一要求就是開源。
Commercial,提供商用,但我還沒想清楚到底怎麼商用法。
會特別提的原因是,程式碼是開源的,但上面包括License設計和實做,對的,你沒看錯,程式碼開源還包括License設計與實做在裡面 😆,這在看到時可能覺得疑惑,怎麼要註冊,但是又有程式碼,授權又是AGPL。
我第一份工作就是NVR,負責Linux平台和整合,對NVR有設計的遺憾。
我原本以為自從中國成為監控大國之後,監控產業大概都趴了,在上幾份工作時寫停車場系統才發現,NVR對於公司竟然還是香噴噴的,因此,AI開發計畫中,就有NVR在裡面。
NVR完成後不會是這個Side Project的結束,後面會延續進一步推進Analysis Service以及GIS Service,最終目標是做出Dashboard,能像之前美國國防部記者會時的操作界面,有個地圖(戰場/非戰場)會有圖釘標示哪裡有攻擊(事件),滑鼠移動過去後點擊,會出現當時的影片片段。
當然,無人機這麼熱,不湊熱度說不過去,對吧。
設計規劃:
這次實做花很多時間的原因是,設計的架構比預期大和複雜。
後端系統以微服務設計,分為4部份:
微服務的底層設計邏輯是,各自處理各自的事務,所有事務獨立,體現在幾個點:
調Record、查Record Status、Disk Status,都由Recorder處理
Camera介接、串流,都由Streammer處理
DB設定更新、CRUD API,都由Manager處理
和Client對接,Client的Protocol轉換,StreamBus -> WebSocket、gRPC <-> WebSocket、Manager反向代理,都由Gateway處理
主要設計邏輯和核心協定:
微服務(Streammer、Recorder、Manager、Gateway)間透過3個主要協定通訊:
各個微服務設計特點:
Streammer:
Streammer主要功能是轉發,包括串流和Event(事件),串流轉發使用StreamBus,Event轉發使用EventBus。
Streammer串流轉發的設計受到Publish/Subscribe設計和mediamtx影響,當然還有AI的建議,Streammer內部使用c#的Channels實做,但額外設計3種對外接口,分別是Named Pipeline、TCP、UDP,Streammer內的串流擴展可直接在內部透過StreamBus實做模塊擴展,Streammer外可以透過TCP、UDP、Named Pipeline串接,Gateway與Recorder就是用外部串接方式和Streammer對接。
Streammer Event轉發使用MQTT為基底,設計上,本身是MQTT Server,也可以用外部MQTT Server,Event則透過MQTT推送到MQTT Server上。
Streammer有gRPC Service服務,主要用於傳入CMD,例如:ReloadCamera,gRPC有Event Trigger API,但Event Trigger透過MQTT注入更方便,兩種都有設計,主要透過MQTT。
Recorder:
Recorder主要功能是錄影寫檔案。
但因為以前整合時吃了太多磁碟IO的虧,Recorder核心設計包括IndexCache、RecCache以及IOWorker。
Recorder包括3個Cache,Playback用的錄影檔案Cache,Index讀寫的LRU Cache,預錄影的RingBuffer Cache。
Recorder在Cache下層寫入磁碟時,會透過IOWorker Pool,IOWorker能在appsettings.json內設定同時的Read IOWorker數量、Write IOWorker數量,所有IO都透過IOWorker Pool動作。
Recorder設定時指定多個實體路徑寫入,透過Consistent Hashing(一致性哈希)平均分散資料到實體路徑內。
保留軟體RAID(Erasure Code)實做設計。
Manager:
Manager提供CRUD,Camera的增/刪/查/找,使用者登入認證都在這裡。前端應用程式的API,主要都是對Manager。有個比較特殊的,ONVIF Discovery是在Manager觸發和搜尋。
目前設定都透過DB儲存,原則上至少支援SQLite和PostgreSQL,Microsoft SQL Server有支援,但問題在於,c# SQL Server的SQLClient目前不完全支援AoT。
Gateway:
Gateway顧名思義,是入口。Client端連入會是透過Gateway,Web版的網站程式也會放在Gateway。
Gateway對Client就2個協定,WebSocket和REST API,REST API主要是反向代理到Manager,其他都透過WebSocket,像是Streammer的StreamBus,StreamBus -> WebSocket,Recorder的gRPC API,WebSocket <-> Recorder gRPC API。
認證有2組:
使用者的認證以及微服務間的認證。
使用者認證就是透過Manager的Auth API進行認證後拿到JWT,然後後續不論是WebSocket或是其他REST API都透過這組JWT。
微服務間的認證,在每個服務的appsettings.json內會有個Internal API Key,要填入相同的密碼,服務間的gRPC會用Internal API Key加密Timestamp後送出,另一端會用Internal API Key解密,並判斷Timestamp是否在一段時間內(是的,每個服務所在的電腦,要對時,我記得會查30秒內吧)。
License設計:
License會以線上登錄序號的方式,登錄註冊後提供license.lic檔案,放入系統中作用。
目前這段細節我還沒想清楚,目前考慮鎖在Streammer就好,但考慮到叢集多電腦微服務運作,我還沒完全想清楚授權怎麼處理。
License預設會有2種,一種是已經完成的license.lic,另一種是USB License Key的形式,不論哪種,核心加密都使用AES + ECDSA簽章。
使用者和群組設計:
DB中,包括幾個跟User有關的Table,包括users, groups, permissions這3個主要的Table以及用於Mapping group和permission的group_permissions Mapping Table。
權限可以概略分2類,1類是NVR操作的使用者權限,一類是MQTT的服務權限。
包括NVR類的:nvr_admin, nvr_power_user, nvr_user, nvr_viewer
以及MQTT類的:mqtt_admin, mqtt_rw, mqtt_ro
權限會對應到group,因此Group包括:
admins, power_users, users, operators, mqtt_services, mqtt_clients
每個使用者都屬於特定1個群組,但群組可以包括多種權限。
直接的體現是,admin這個使用者是admins群組,admins群組的帳號可以同時登入MQTT Server和NVR Client,同樣的道理,mqtt_services群組的成員,只能登入MQTT Server,NVR Client是不能登入的。
Client設計:
Client應用程式預計為跨平台,會先提供Linux版和網頁版,使用UNO Platform開發。
AI規劃:
設計階段就在想,既然是全新開發NVR,那有沒有什麼新的想法能夠引入?
尤其是AI,既然AI這麼熱門,到底使用者對於AI的想像是什麼? 如何引入?
在和AI討論後,目前想定的設計分2塊,NVR階段的以及Dashboard(中控)階段的。
我對AI之於應用程式的想像是這樣,我要如何如何時,直接跟AI說或對話,AI直接幫我處理,以及AI能夠跟我說發生了什麼事情。
也就是說,延續監控產業的一脈路線,什麼是監控產業的一脈路線?
從最傳統的能錄影 -> 能根據時間調出錄像 -> 有Event -> 能智能的根據Event主動通知
那麼,當進入AI時代後,我對這一脈路線的想定是,Event的通知對象不再是人,而是AI,由AI主動分析Event,並提供給人狀況、建議行為。
因此,我把AI規劃分為低階跟高階,高階放在Dashboard(中控),低階下放在NVR內。
NVR內放的AI,能夠根據文字窗口給與指示,
例如:
給我看第三支Camera目前畫面。
播放第2支Camera昨天下午3:00的錄像。
幫我看看,這兩天有哪些Camera斷線過?
而高階的,則能夠根據Event進行細部推斷,
例如:
目前分析系統偵測到大廳有多人聚集,或者大廳人數眾多。
而兩者差異體現在2塊,1個是AI的智能程度,NVR原則上用的就指令遵循型,能夠提供Live、Playback的自動化操作,而Dashboard(中控)的,就可能需串接雲端,提供目前過往的Event資訊,或者觸發Event時打到雲端AI,讓雲端AI能有完整的Event進行判斷。
我們更白話的說,AI的判斷能力,取決於我們給哪些Event + AI的智能程度,低階的做單純的UI操作,不具備分析,高階的能獲得更多Event訊息,並能深入分析。
目前NVR階段,已能在UNO Platform上面透過按鈕觸發特定連續頁面操作。
Client實做進展:
目前已實做和串接部份,錄影進度條已經能正常顯示,Event能正常顯示,Device清單能正常顯示,錄影狀態串接中。
Device Search功能正常,但UI還需優化,Schedule UI和設定正常。
PTZ能夠功能正常,UI還需優化。
影像部份,Linux版本Live有畫面,但穩定性還有問題。
Client截圖:
前言:
硬體簡介: