2示出處理器控制的視頻攝像機(jī)(100)可如何使用各種協(xié)議與至少一個(gè)遠(yuǎn)程 VCS互聯(lián)網(wǎng)服務(wù)器(106)和任選地其他云服務(wù)器(諸如用作互聯(lián)網(wǎng)連接的視頻數(shù)據(jù)存儲(chǔ)裝 置(108)的服務(wù)器)通信的進(jìn)一步細(xì)節(jié)。攝像機(jī)(100)可經(jīng)由一系列的"心跳"攝像機(jī)狀 態(tài)消息(200)來(lái)不斷地通知VCS互聯(lián)網(wǎng)服務(wù)器(106)其狀態(tài)(例如,攝像機(jī)是否打開(kāi)并連 接)。為了有助于通過(guò)任何防火墻(104)傳送數(shù)據(jù),攝像機(jī)(100)還可通過(guò)HTTP和HTTPS 協(xié)議(202)與VCS互聯(lián)網(wǎng)服務(wù)器(106)和任選地其他服務(wù)器諸如(108)通信,防火墻通常被 配置來(lái)接受所述協(xié)議。在一些實(shí)施方案中,攝像機(jī)(100)還可被配置來(lái)使用對(duì)等視頻流方 法(204)通信至VCS互聯(lián)網(wǎng)服務(wù)器(106),以及用作互聯(lián)網(wǎng)連接的視頻存儲(chǔ)裝置(108)其他 服務(wù)器和/或客戶端計(jì)算機(jī)化裝置(114)中的任一者。這些對(duì)等視頻流方法可包括實(shí)時(shí)流 協(xié)議(RTSP),任選地借助于IP分配服務(wù)器(例如,TURN"使用圍繞網(wǎng)絡(luò)地址轉(zhuǎn)換器(NAT) 的中繼的遍歷"方法、系統(tǒng)等。在先前討論的互聯(lián)網(wǎng)工程任務(wù)組(IETF)請(qǐng)求注釋文檔諸如 RFC5766、RFC6156、RFC7065 等中提供TURN方法的實(shí)例。
[0076] 因此,系統(tǒng)可允許各種客戶端計(jì)算機(jī)化裝置來(lái)配置、控制并且觀看來(lái)自已啟動(dòng)攝 像機(jī)的媒體。為此,各種服務(wù)器中的一個(gè)或多個(gè)可例如宿有一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用程序,所述 一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用程序繼而可充當(dāng)用于客戶端計(jì)算機(jī)化裝置與攝像機(jī)之間的通信和授 權(quán)的中介。也可使用其他服務(wù)器接口。在任一種方法中,客戶端計(jì)算機(jī)化裝置和攝像機(jī)可 向服務(wù)器進(jìn)行請(qǐng)求。這種方法還可用來(lái)向服務(wù)器提供攝像機(jī)的目前狀態(tài)。當(dāng)這個(gè)操作發(fā)生 時(shí),所述服務(wù)器可僅用確認(rèn)或用針對(duì)配置/更新的另外數(shù)據(jù)做出響應(yīng)。
[0077] 在使用客戶端計(jì)算機(jī)化裝置的客戶端希望更新攝像機(jī)配置的情況下,所述客戶端 可通過(guò)使用客戶端計(jì)算機(jī)化裝置將數(shù)據(jù)公告到服務(wù)器來(lái)進(jìn)行這個(gè)操作。所述服務(wù)器隨后可 通過(guò)攝像機(jī)已啟動(dòng)的開(kāi)放通信機(jī)構(gòu)來(lái)將更新標(biāo)記發(fā)送到攝像機(jī)。所述攝像機(jī)隨后可針對(duì)其 來(lái)自服務(wù)器的裝置ID檢索攝像機(jī)配置列表。
[0078] 因此,此處,至少一個(gè)遠(yuǎn)程互聯(lián)網(wǎng)服務(wù)器可宿有至少一個(gè)網(wǎng)絡(luò)應(yīng)用程序或其他通 信接口,并且至少客戶端計(jì)算機(jī)化裝置可使用此網(wǎng)絡(luò)應(yīng)用程序或其他通信接口來(lái)與這個(gè)服 務(wù)器和各種處理器控制的視頻攝像機(jī)通信。
[0079] 客戶端計(jì)算機(jī)化裝置
[0080] 在上下文中,應(yīng)注意,客戶端計(jì)算機(jī)化裝置可將命令發(fā)送到服務(wù)器,以便繼而使所 述服務(wù)器配置并請(qǐng)求來(lái)自各種攝像機(jī)的實(shí)況流。此處,客戶端計(jì)算機(jī)化裝置可使用各種唯 一的攝像機(jī)/裝置標(biāo)識(shí)符來(lái)精確地指定將調(diào)整哪臺(tái)攝像機(jī)。這些標(biāo)識(shí)符以及合適的命令可 被發(fā)送到服務(wù)器,所述服務(wù)器繼而將這些命令轉(zhuǎn)發(fā)給適當(dāng)?shù)谋蛔R(shí)別的攝像機(jī)。客戶端計(jì)算 機(jī)化裝置還可顯示存儲(chǔ)在云存儲(chǔ)服務(wù)器上的攝像機(jī)視頻和時(shí)間視頻的列表以供用戶查看。 客戶端計(jì)算機(jī)化裝置還可將關(guān)于任何新事件的任何警報(bào)轉(zhuǎn)發(fā)給用戶。
[0081 ] 處理器控制的視頻攝像機(jī)
[0082] 在上下文中,如前所述,記住處理器控制的視頻攝像機(jī)(攝像機(jī))可被配置來(lái)使用 各種圖像處理和聲音處理算法自動(dòng)檢測(cè)音頻或視頻事件,并且將由這些事件觸發(fā)的視頻上 傳到系統(tǒng)服務(wù)器。這繼而可觸發(fā)系統(tǒng)服務(wù)器,以便將通知(例如,推送通知)發(fā)送給適當(dāng)?shù)?客戶端計(jì)算機(jī)化裝置,從而通知所述客戶端可能感興趣的事件正在發(fā)生(或已經(jīng)發(fā)生)。攝 像機(jī)還可嘗試維持連到云服務(wù)器的連續(xù)開(kāi)放連接網(wǎng)絡(luò),以便從所述服務(wù)器或客戶端計(jì)算機(jī) 化裝置接收回任何控制數(shù)據(jù)。攝像機(jī)通常將被配置來(lái)這樣使得在所述攝像機(jī)檢測(cè)到通往服 務(wù)器的網(wǎng)絡(luò)連接已斷開(kāi)時(shí),所述攝像機(jī)將立即嘗試連接回所述服務(wù)器,從而有助于確保在 任何可能的時(shí)間維持通信。
[0083] 取決于客戶端的網(wǎng)絡(luò),攝像機(jī)通常將被配置來(lái)以各種壓縮級(jí)別和質(zhì)量標(biāo)準(zhǔn)流傳輸 實(shí)況視頻,從而匹配由那個(gè)特定網(wǎng)絡(luò)連接(例如,3G/4G、WiFi、LAN)提供的可用帶寬?;蛘撸?如果服務(wù)器或用戶確定攝像機(jī)處理質(zhì)量差的網(wǎng)絡(luò)的努力是不足夠的,那么服務(wù)器可被配置 來(lái)介入并且將視頻進(jìn)一步下變頻轉(zhuǎn)換成每秒更少量的比特。
[0084] 如很快將詳細(xì)描述,攝像機(jī)還可被配置來(lái)經(jīng)由各種類型的供應(yīng)過(guò)程(諸如通過(guò)使 用條形碼(例如,QR碼)、音頻信令、其他網(wǎng)絡(luò)傳送等)指定網(wǎng)絡(luò)并且與特定用戶匹配。一 般來(lái)說(shuō),攝像機(jī)將配置有默認(rèn)模式,其中所述攝像機(jī)通過(guò)供應(yīng)過(guò)程來(lái)綁定到特定用戶。除非 另外配置,通常僅被授權(quán)的用戶將能夠訪問(wèn)各種攝像機(jī)并且觀看任何特定視頻或?qū)崨r流。 初始化時(shí),例如,攝像機(jī)軟件可被編程來(lái)期望觀看某種類型的光信號(hào)(例如,條形碼QR碼、 光圖案等)并且隨后使用這種類型的光信號(hào)來(lái)配置設(shè)想自操作的各個(gè)方面。
[0085] 圖3A示出框圖,其示出VCS系統(tǒng)的一些部件和交互作用??梢钥闯?,通常VCS遠(yuǎn) 程互聯(lián)網(wǎng)服務(wù)器(106)的功能可被實(shí)現(xiàn)為使用現(xiàn)代云體系結(jié)構(gòu)技術(shù)的多個(gè)不同的服務(wù)器。 這多個(gè)基于云的服務(wù)器可包括分布式多媒體系統(tǒng)(DMS)對(duì)等(P2P)服務(wù)器(300)、應(yīng)用程序 服務(wù)器(302)、負(fù)載均衡器裝置(304)、用戶管理服務(wù)器(306)(通常連接到用于用戶數(shù)據(jù)的 數(shù)據(jù)庫(kù)(308))以及用于管理系統(tǒng)(例如,生成警報(bào)和警告、通知管理等)的目的的其他服 務(wù)器和裝置(310)。用作互聯(lián)網(wǎng)連接的視頻存儲(chǔ)裝置(108)的服務(wù)器的功能還可由多個(gè)不 同的服務(wù)器處理,所述多個(gè)不同的服務(wù)器諸如各種存儲(chǔ)服務(wù)器(312)(通常用來(lái)管理數(shù)據(jù) 庫(kù)110)、視頻服務(wù)器(314)、各種數(shù)據(jù)庫(kù)和索引軟件以及存儲(chǔ)器管理裝置(316)等。
[0086] 服務(wù)器-攝像機(jī)通信和接口
[0087] 如先前所討論的,在一些實(shí)施方案中,攝像機(jī)和服務(wù)器可被配置來(lái)使用固定的、無(wú) 狀態(tài)RESTfulAPI通信。此處,由系統(tǒng)暴露的API依賴離散請(qǐng)求,在所述離散請(qǐng)求中,在HTTP 會(huì)話中維持零信息。
[0088] 因此,任何服務(wù)器可提供任何攝像機(jī)請(qǐng)求而無(wú)需服務(wù)器群集。
[0089] 這種無(wú)狀態(tài)方法也有助于促進(jìn)系統(tǒng)根據(jù)需要水平地外擴(kuò)。
[0090] 因此,在這些實(shí)施方案中,以階段式、事件驅(qū)動(dòng)方式進(jìn)行視頻上傳,所述方式被理 想地涉及成甚至在有些不可靠的網(wǎng)絡(luò)上工作,并且不會(huì)過(guò)載單個(gè)HTTP請(qǐng)求。這允許系統(tǒng)快 速地操作,并且還幫助確保即使在不利的情況下;仍可上傳視頻的至少幾個(gè)部分。在丟失數(shù) 據(jù)的情況下,系統(tǒng)可任選地重試以獲得作為更小大小的數(shù)據(jù)請(qǐng)求的視頻,這通常比嘗試上 傳作為單個(gè)請(qǐng)求的整個(gè)視頻負(fù)擔(dān)更小。
[0091] 在這個(gè)優(yōu)選實(shí)施方案中,事件驅(qū)動(dòng)體系結(jié)構(gòu)(SEDA)的使用還允許系統(tǒng)在從攝像 機(jī)創(chuàng)建事件時(shí)就立即警告攝像機(jī)所有者(用戶、客戶端),并且不需要等待攝像機(jī)上傳視 頻。
[0092] 在一些實(shí)施方案中,攝像機(jī)也可使用SEDA方法來(lái)并行化視頻片段方法,并且通過(guò) 同時(shí)連接到多個(gè)服務(wù)器來(lái)實(shí)現(xiàn)更快的視頻上傳。
[0093] 應(yīng)注意,系統(tǒng)還允許將各種類型的元數(shù)據(jù)信息應(yīng)用到各種對(duì)象和數(shù)據(jù)文件,包括 各種攝像機(jī)和事件。另外,也可上傳任意類型的媒體。這種靈活的方法允許系統(tǒng)充當(dāng)用于 任何攝像機(jī)裝置的云服務(wù)骨干。
[0094] 或者說(shuō),根據(jù)這些方法,至少一個(gè)互聯(lián)網(wǎng)服務(wù)器可根據(jù)階段式事件驅(qū)動(dòng)體系結(jié)構(gòu) 來(lái)與處理器控制的視頻攝像機(jī)和/或客戶端計(jì)算機(jī)化裝置通信。這可使用代表性狀態(tài)傳 輸(REST)應(yīng)用程序編程接口(API)來(lái)進(jìn)行,并且進(jìn)而產(chǎn)生HTTP或HTTPS會(huì)話,其中在這個(gè) HTTP或HTTPS會(huì)話中維持零信息。這改善了這些方法的可擴(kuò)展性。
[0095] 安全性/認(rèn)證
[0096] 各種方法可用來(lái)維持安全性并且認(rèn)證各種攝像機(jī)和客戶端計(jì)算機(jī)化裝置。一種方 式是使用時(shí)間終止密鑰和秘密對(duì)來(lái)認(rèn)證所連接的裝置。這種方法的優(yōu)點(diǎn)在于,此認(rèn)證方法 可在不必維持HTTP/應(yīng)用程序服務(wù)器中的會(huì)話的情況下進(jìn)行。這繼而幫助系統(tǒng)根據(jù)需要水 平地?cái)U(kuò)展。
[0097] 在一個(gè)實(shí)施方案中,這個(gè)過(guò)程(認(rèn)證過(guò)程)可操作如下:
[0098]a)所述裝置通過(guò)HTTPS/SSL用秘密API密鑰和API密碼來(lái)向VCS認(rèn)證。
[0099]b)VCS將時(shí)間終止秘密密鑰和密碼分配給裝置,所述裝置將所述時(shí)間終止秘密密 鑰和密碼用于所有未來(lái)請(qǐng)求,直到這些時(shí)間終止秘密密鑰和密碼到期。
[0100] c)在所有以下請(qǐng)求中,裝置隨時(shí)間的推移發(fā)送秘密密鑰和密碼的SHA散列,以便 確保密碼不會(huì)在線上被劫持。
[0101] d)秘密密鑰也被綁定到唯一地識(shí)別裝置的唯一密鑰(本地id),所述密鑰在裝置 中再次對(duì)時(shí)間進(jìn)行SHA散列處理。
[0102] e)SHA散列處理和時(shí)間戳記幫助確保通過(guò)線傾聽(tīng)的任何人不能偽造請(qǐng)求。
[0103] f)時(shí)間終止密鑰有助于確保的是,即使在某人設(shè)法通過(guò)強(qiáng)力破壞SHA散列時(shí),仍 不可使用密鑰。
[0104] 或者說(shuō)且更簡(jiǎn)單地,各種處理器控制的視頻攝像機(jī)、各種系統(tǒng)互聯(lián)網(wǎng)服務(wù)器以及 各種客戶端計(jì)算機(jī)化裝置之間的通信可通過(guò)使用至少一個(gè)時(shí)間終止令牌和至少一個(gè)加密 密鑰來(lái)?yè)?dān)保。
[0105] 攝像機(jī)供應(yīng)(網(wǎng)絡(luò)配置和與客戶端計(jì)算機(jī)化裝置的結(jié)合)
[0106] 為了詳述先前的討論,在一些實(shí)施方案中,系統(tǒng)可使用光學(xué)方法來(lái)供應(yīng)(例如,進(jìn) 行網(wǎng)絡(luò)配置并與特定客戶端計(jì)算機(jī)化裝置結(jié)合)攝像機(jī)。此處,例如,當(dāng)用戶安裝新攝像機(jī) (或重新配置現(xiàn)有攝像機(jī))時(shí),所述用戶可使用用戶的客戶端計(jì)算機(jī)化裝置來(lái)進(jìn)入系統(tǒng)并 且請(qǐng)求新的攝像機(jī)設(shè)置。例如,在客戶端計(jì)算機(jī)化裝置上運(yùn)行的app可請(qǐng)求服務(wù)器生成配 備有處理器的攝像機(jī)隨后可讀取并用來(lái)提取配置信息的攝像機(jī)設(shè)置令牌,諸如光學(xué)條形碼 或QR碼。這種攝像機(jī)配置可包括信息,諸如本地網(wǎng)絡(luò)連接的WiFi路由器的WiFiSSID(服 務(wù)集標(biāo)識(shí)符)、本地WiFi密碼以及其他信息,諸如位置標(biāo)識(shí)碼、客戶標(biāo)識(shí)、攝像機(jī)令牌等。
[0107] 在這個(gè)實(shí)例中,假設(shè)攝像機(jī)具有WiFi收發(fā)器、默認(rèn)配置有本發(fā)明的軟件中的至少 一些并且還沒(méi)有以其他方式連接到互聯(lián)網(wǎng)。此處,客戶端計(jì)算機(jī)化裝置可生成適當(dāng)?shù)腝R 碼,所述QR碼隨后被顯示在客戶端計(jì)算機(jī)化裝置的顯示屏幕上或打印出來(lái)。當(dāng)向攝像機(jī) 展示這個(gè)QR碼時(shí),使用合適的條形碼辨別軟件的攝像機(jī)處理器可提取WiFiSSID和密碼, 并且使用這個(gè)信息(可能使用先前存儲(chǔ)在攝像機(jī)系統(tǒng)軟件中或也由QR碼提供的云服務(wù)器 URL)連接到互聯(lián)網(wǎng)。攝像機(jī)和服務(wù)器隨后可采用區(qū)域代碼來(lái)設(shè)置默認(rèn)系統(tǒng)服務(wù)器URL,這 取決于攝像機(jī)的位置。這個(gè)方案因此允許將任何攝像機(jī)根據(jù)所述攝像機(jī)的地理位置供應(yīng)到 系統(tǒng)服務(wù)器。
[0108] 所述攝像機(jī)隨后可采用客戶ID、攝像機(jī)令牌以及攝像機(jī)ID,并且向系統(tǒng)服務(wù)器注 冊(cè)。在成功注冊(cè)之后,所述攝像機(jī)將被允許(和能夠)開(kāi)始將"心跳"(例如,攝像機(jī)狀態(tài)消 息)發(fā)送到系統(tǒng)服務(wù)器(例如,DMS服務(wù)器)。一旦注冊(cè),攝像機(jī)現(xiàn)在就在系統(tǒng)服務(wù)器上配 置并且還與適當(dāng)?shù)挠脩糇詣?dòng)關(guān)聯(lián)(供應(yīng))。
[0109] 配置用于網(wǎng)絡(luò)操作的處理器控制的視頻攝像機(jī)的其他方法也是可能的。這些方法 可包括使用一個(gè)或多個(gè)條形碼或其他類型的光學(xué)代碼,所述一個(gè)或多個(gè)條形碼或其他類型 的光學(xué)代碼對(duì)選自由WiFiSSD、WiFi密碼、定位代碼、客戶ID以及攝像機(jī)令牌組成的群組 的至少一些信息進(jìn)行編碼。攝像機(jī)配置的其他替代方法包括使用編碼為一系列音頻聲音、 或光或紅外強(qiáng)度或顏色變化的網(wǎng)絡(luò)通信信息;或使用BluetoothTM或WAP或基于其他無(wú)線 的方法來(lái)傳輸適當(dāng)?shù)木W(wǎng)絡(luò)設(shè)置數(shù)據(jù)。攝像機(jī)軟件/固件可被配置來(lái)嘗試通過(guò)多種方法供 應(yīng),以便在發(fā)現(xiàn)一種供應(yīng)方法不合適的情況下,可自動(dòng)(或手動(dòng))選擇替代的供應(yīng)方法。
[0110] 視頻存儲(chǔ)
[0111] 在一些實(shí)施方案中,系統(tǒng)可使用第三方云服務(wù)提供商(諸如AmazonS3、Rackspace CloudFiles、Google等)來(lái)存儲(chǔ)視頻。這些供應(yīng)商根據(jù)需要提供高度可擴(kuò)展的即用即付 的文件存儲(chǔ)和服務(wù)平臺(tái)。盡管本發(fā)明可用所有類型的存儲(chǔ)工作,但在一些實(shí)施方案中,這種 第三方可擴(kuò)展云服務(wù)提供商的使用可以是有用的。
[0112] 為了有助于促進(jìn)存儲(chǔ)/服務(wù)大量視頻的過(guò)程,雖然將成本保持在最小值、保持視 頻是安全的,雖然仍使經(jīng)過(guò)驗(yàn)證的終端用戶容易觀看,但在一些實(shí)施方案中,系統(tǒng)可將各種 視頻fde和其他fde存儲(chǔ)為加密的統(tǒng)一資源標(biāo)識(shí)符(URI),諸如128位加密的URI,當(dāng)用戶 登錄進(jìn)系統(tǒng)中時(shí),這種加密的URI可由用戶應(yīng)用程序透明地取得并且可以任何播放器支持 的那種視頻格式直接播放。
[0113] 在一些實(shí)施方案中,系統(tǒng)可進(jìn)一步使用來(lái)自至少一個(gè)遠(yuǎn)程互聯(lián)網(wǎng)服務(wù)器的命令來(lái) 進(jìn)一步配置處理器連接的視頻攝像機(jī),以便將視頻數(shù)據(jù)直接流傳輸?shù)街辽僖粋€(gè)互聯(lián)網(wǎng)連接 的視頻數(shù)據(jù)存儲(chǔ)裝置,并且將此視頻數(shù)據(jù)存儲(chǔ)在這個(gè)視頻數(shù)據(jù)存儲(chǔ)裝置的存儲(chǔ)器中,進(jìn)而 產(chǎn)生遠(yuǎn)程存儲(chǔ)的視頻數(shù)據(jù)。
[0114] 在一些實(shí)施方案中,這個(gè)視頻數(shù)據(jù)存儲(chǔ)裝置可由第三方云文件托管服務(wù)或根據(jù)先 前討論的自動(dòng)服務(wù)供應(yīng)和虛擬機(jī)迀移方法操作的其他云文件托管服務(wù)提供。當(dāng)然,不存在 使用"第三方"服務(wù)器本身的實(shí)際請(qǐng)求,并且實(shí)際上系統(tǒng)的操作員(如果其希望承擔(dān)相當(dāng)可 觀的費(fèi)用)可按需提供其本身可擴(kuò)展的服務(wù)器。
[0115] 不考慮視頻數(shù)據(jù)存儲(chǔ)裝置的類型,在這些實(shí)施方案中,系統(tǒng)可使用遠(yuǎn)程互聯(lián)網(wǎng)服 務(wù)器來(lái)將有關(guān)這些遠(yuǎn)程存儲(chǔ)的視頻數(shù)據(jù)的信息傳送到各種客戶端計(jì)算機(jī)化裝置或接收來(lái) 自各種客戶端計(jì)算機(jī)化裝置的有關(guān)這些遠(yuǎn)程存儲(chǔ)的視頻數(shù)據(jù)的信息,進(jìn)而允許這些客戶端 計(jì)算機(jī)化裝置隨后檢索這個(gè)遠(yuǎn)程存儲(chǔ)的視頻數(shù)據(jù)(這可簡(jiǎn)化為系統(tǒng)將存儲(chǔ)的視頻數(shù)據(jù)的 12