需要在WEB端實時查看現場的視頻監控(公司選型的是大華攝像機)
1
1. ffmpeg通過rtsp協議拉取視頻流
2. 使用vlc media player 組件拉取視頻流,在web端顯示
3. 使用h5Stream在線對視頻流拉取
123
局域網內攝像頭配置
公司選型的大華攝像機,所有攝像機出廠統一IP是192.168.1.108
這個IP是可變的,可配置,但是前提這個IP可以訪問到攝像頭才允許更改
12
在地址欄輸入192.168.1.108,第一次登陸默認賬號密碼都為admin,默認端口37777,第一次登陸會提醒你更改賬號密碼,記得不要忘記,后面視頻拉取的需要用到,進入攝像頭更具自己需要做個性化的配置。相關協議端口開放如下:
攝像頭的ip地址穿刺
使用路由器映射的方法,需要拿到路由器的賬號密碼,這個得跟公司的運維溝通下。
用花生殼做穿刺,會免費贈送一個域名,但是端口是不固定的,如果配置固定的端口,花生殼需要免費收費
在百度上輸入本地IP會出現公司路由的外網IP。測試下兩種方式是否可以通過外網IP來訪問。
拉取視頻流
我選用的的是rtsp協議來拉取視頻流,大華攝像機的rtsp地址格式如下:
rtsp://[賬號]:[密碼]@[IP]:[端口]/cam/realmonitor?channel=1&subtype=0channel=1,此屬性值對應渠道。subtype=0對應使用主碼流還是輔碼流
不管大華攝像機也好,還是??低晹z像機,他們官網都提供本地局域網內的攝像頭管理軟件。進入官網,導航找到技術支持,里面有工具軟件。比如大華的可以用smartPss,??低暤挠衖VMS,視頻流通過可以通過多個渠道來傳輸,所以channel要和本地軟件中輸出通道一致
比如的本地地址:rtsp://admin:Aa517518@192.168.0.108:554/cam/realmonitor?channel=1&subtype=0本地攝像頭IP地址做穿刺后,把賬號密碼換成公網的ip和端口即可。
使用h5Stream拉取視頻流
h5Stream網上的配置文檔很多,不做一一贅述,其主要配置文件為:conf目錄下的h5ss.conf文件。
我這里用的是rtsp協議,根據自己的需要配置,一般配置一個空閑的端口即可。
在web端的顯示,在h5stream安裝目錄里, www目錄下有相關的使用樣例。
優點:配置簡單,實時視頻同步延遲小,畫面清晰。firefox,chrom,ie都可以使用缺點:web頁面操作相對復雜,在使用多個攝像頭,配置清單駁長,h5stream為收費軟件,h5stream為收費軟件,h5stream為收費軟件,重要的事情說三遍原免費版,會在實時視頻流播放一個小時后斷流,且當前暫時沒有找到破解版。我在官網找到電話,打電話過去咨詢,收費是100塊錢一個攝像頭,具體的價格可以再談。
vlc media player 拉取
省事兒的話先下載vlc media player安裝,也可以單獨下載相應的控件。下載完成后:
把rtsp地址copy進地址欄,測試是否可正常顯示,若不正常請檢查網絡是否通暢,賬號密碼是否正確,ip端口是否正確,通道是否一致而在web端是根據相關的標簽來的:實例如下:
<object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab">
<param name="autostart" value="true" />
<param name="allowfullscreen" value="false" />
</object>
1234
鏈接: vlc使用操作文檔.
優點:測試簡單,操作簡單,WEB頁面操作最簡單,視頻清晰度無損,延遲級小。缺點:谷歌只支持43版本及其更早,現在都70+版本了。火狐更直接,直接提示不支持。現在通過安裝谷歌應用程序可以解決,但是面向客戶的時候,客戶不會使用體驗版,所以注定就不會使用面就不會廣
ffmpeg拉取視頻流
首先ffmpeg是十分強大,且無比靈活,使用命令行來操作,相對來說就復雜得多,網上有很多安裝ffmpeg介紹和ffmpeg命令介紹,這里就不做一一贅述。ffmpeg對視頻流進行拉取,轉成我們需要的視頻碼流,比如我們使用的rtsp協議,可以轉成rtmp協議或者HLS(m3u8)協議。本文著重介紹此兩種,其它的協議格式,原理上相同,只是轉碼后頁面顯示的細節不同。ffmpeg允許截圖:
NGINX并不是一定要用,只要能讀取到此今天文件即可。我是通過nginx吧request請求,定向到此文件,當然web項目比較靈活,可以通過web來做訪問。生成的文件如下:
靜態資源只要支持hls協議,使用今天資源,訪問test.m38u文件即可引入video.js,我使用的是7.4.1
<video id="test_video" class="video-js vjs-default-skin vjs-big-play-centered" controls autoplay width="960" height="400">
<source src="http://192.168.0.118:1935/hls/test.m38u" type='rtmp/flv'>
</video>
123
缺點:此方法對網絡依賴要求比較高,延遲高,容易卡頓
使用ffmpeg優缺點:優點:谷歌火狐IE都可以用。缺點: ffmpeg很強大,使用命令很靈活,很多細節問題需要琢磨,比如清晰度的問題,比如幀數的問題。ffmpeg比h5stream和vlc使用上確實麻煩許多,而且清晰度不如以上兩種,延遲相對也高一下。需要建立相對完善的管理機制,因為全部使用命令,在客戶頁面關閉視頻流時,后臺還在不停的拉取視頻流,造成極大的資源浪費。
器之心報道
機器之心編輯部
在讀取語言之后,腦機接口也可以實時讀取人類腦中的畫面了。
由俄羅斯腦機接口公司 Neurobotics、莫斯科物理技術學院(MIPT)研發的一種全新腦機接口算法最近被公之于眾,它可以利用人工神經網絡和腦電圖將人類大腦中的圖像實時顯示在計算機屏幕上。而且,與馬斯克腦機接口公司研發的「大腦縫紉機 」不同,這種腦機接口無需開顱植入電極,在臨床和日常生活中應用更加廣泛。
一位被試正在使用該腦機接口。右下角是被試觀看實時畫面,右上角是通過腦機接口重建的畫面。
今年 7 月,Facebook 與加州大學舊金山分校(UCSF)有關腦機接口實時讀取人類語言的研究剛剛登上《Nature》子刊,其快速解碼的機器學習算法效果令人驚嘆。
現在看來,我們不僅有望實現「意念打字」,或許還可以使用人眼這一「精度超高」的攝像頭來進行錄像,實現科幻影視作品描繪的圖景。不過,這篇莫斯科物理技術學院的論文還沒有經過同行評審。
英劇《黑鏡》一集中的男主角過海關時被要求回放自己通過某種設備肉眼錄下的視覺記憶。
對于研究者來說,新成果使得構建由腦信號控制的中風后康復裝置成為可能。研究團隊在 bioRxiv 上發表了相關研究論文,還發布了一段他們「讀心」系統的效果視頻。雖然畫面比較模糊,但我們依然可以分辨出畫面中的大致場景類別(如人、瀑布、車景)。
視頻中原始圖像和神經網絡處理 EEG 信號重建的圖像對比(由于版權原因,人像原圖被替換了)。
為了構建這一設備,神經生物學家需要理解大腦如何編碼信息。其中一個關鍵方面是,研究人們在觀看視頻時感知視覺信息的大腦活動過程。
現有的解決方案是,要么使用功能磁共振成像來提取觀察到的圖像,要么通過植入物直接分析來自神經元的信號。兩種方法在臨床和日常生活中的應用都非常有限。
俄羅斯研究者開發的這種腦機接口依賴的是人工神經網絡和腦電圖(EEG),后者是一種可以通過非侵入式電極(無需手術植入)記錄腦電波的技術。通過分析大腦活動,該系統可以實時重現人類看到的圖像。
「我們正在進行國家技術計劃(National Technology Initiative)神經網絡輔助技術項目,該項目致力于構建一種腦機接口,讓中風患者控制手臂外骨骼、癱瘓患者駕駛電動輪椅等,最終目標是讓健康的人也能提高神經控制的準確率,」MIPT Neurorobotics 實驗室負責人 Vladimir Konyshev 表示。
技術細節
該腦機接口的構建實驗共分為兩個階段。
在第一階段,神經生物學家讓健康的人觀看一些 10 秒的 YouTube 視頻片段,總共 20 分鐘。研究團隊隨機選擇了 5 個視頻類別:抽象形態、瀑布、人臉、移動的裝置和汽車運動。
通過分析腦電圖數據,研究者發現,每一類視頻的腦電波是不同的。這使得研究小組能夠實時分析大腦對于視頻的反應。
在實驗的第二階段,研究者從五個類別中隨機選擇了三個類別并開發了一個本地反饋(native feedback)模型,反饋模型的核心思想是將腦機接口分類器的預測結果以自然圖像的形式呈現出來,而且要盡可能與實際觀察到的圖像接近。
該模型分為兩個神經網絡:一個用于從「噪聲」中生成隨機特定類別圖像,另一個根據腦電圖生成類似的「噪聲」。接下來,該團隊訓練這兩個網絡協同工作,將腦電圖信號轉換為與被試觀看內容相似的實際圖像。
論文中提到的本地反饋模型如下圖所示。
圖 2:本地反饋模型的總體方案。
將降維后得到的 20 維腦電圖特征向量映射到預先訓練好的圖像自編碼器的潛在空間中,這個自編碼器能夠重建幾個預學習類別的自然圖像。圖像解碼器不依賴于任何神經生理學數據,僅考慮一組刺激圖像即可進行預訓練。特征映射器是單獨訓練的,因為它既需要腦電圖特征庫,也需要一個訓練好的圖像解碼器。
圖像解碼器
圖像解碼器(ID)是圖像到圖像卷積自編碼器模型的一部分。編碼器部分基于預訓練的 VGG-11 模型。解碼器部分由全連接輸入層組成,用于維度增強,然后是 5 個解卷積塊,每個解卷積塊包含一個解卷積層,然后是 ReLU 激活。最后的解卷積塊包含雙曲正切激活層。解碼器生成 192×192×3 維的彩色圖像(見圖 3a)。
圖 3. 圖像解碼器.a)模型結構;b)常規訓練
除了圖像重建之外,解碼器還有一個特定的潛在空間分布。他們通過引入一個圖 3(b)所示的訓練過程來解決這個問題。
腦電圖特征映射器
腦電圖特征映射器的目標是將腦電圖特征域的數據轉換成圖像解碼器潛在空間域。在理想狀態下,觀察到的圖像和此時的腦電圖記錄最終會轉換為同一個潛在空間矢量圖,因此解碼器能夠根據剛才看到或想象的場景去生成一個正確的視覺圖像。
另一個問題是如何應對嘈雜的數據:由于存在未檢測到的偽像,或者被攝對象分散注意力,實時記錄場景中的腦電圖信號屬性可能會發生顯著變化。此時反饋系統應避免出現混亂的圖像切換,以免給觀察對象太多的壓力。
人類腦中的圖像是連續數據,所以使用循環神經網絡就變得順理成章了——新的算法使用了 LSTM 組件作為循環單元。此外,研究人員還整合了注意力機制。
圖 4,腦電圖特征映射。a)模型結構;b)訓練方法。
測試結果
為了測試該系統呈現頭腦活動的能力,研究者選了一些同一類的以前看過的視頻。正如他們看到的那樣,腦電圖被記錄下來,然后反饋給神經網絡。系統通過了測試,生成了具有可信度的圖像,90% 都可以很輕松地進行分類。
和大多數 AI 算法一樣,研究人員提出的神經網絡模型是用 Python 實現的,運行的計算機也只需普通臺式機:英特爾 i7 處理器,英偉達 GeForce 1050Ti 顯卡。在讀取的過程中,算法可以處理每秒 3 幀圖像。通常,在分類上約有 90% 的重建圖像是可識別的程度。
「此外,我們可以把這個當作實時腦機接口的基礎。在當前的技術條件下,Elon Musk 那樣的侵入式接口存在手術性質復雜和快速退化的問題——基本上幾個月內就失效了。我們希望可以最終設計出更實用也不需要植入的神經接口。」研究者補充道。
論文:https://www.biorxiv.org/content/10.1101/787101v2
參考內容:https://techxplore.com/news/2019-10-neural-network-reconstructs-human-thoughts.html
交易數據的實時統計是電商網站一個核心功能,可以幫助用戶實時統計網站的整體銷售情況,快速驗證“新銷售策略”的效果。我們今天介紹一個基于表格存儲(Tablestore)實現交易數據的實時計算,給大家提供一個新使用方式。
Tablestore作為在線的結構化數據庫,提供了毫秒級的訪問延時和豐富的查詢方式,能高效的支撐交易數據的存儲和查詢,同時Tablestore已經原生支持阿里云的流計算框架Flink/Blink,可以實現數據的實時計算。
基本場景
注意:示例是模擬一個電商網站的交易數據的存儲和實時計算,目的是為了展示Tablestore + Blink的使用流程。
用戶通過SDK將網站交易數據實時的存儲(PutRow/BatchWrite/TableStoreWriter)到Tablestore的source_order表中,Tablestore通過Tunnel服務,將實時增量的數據流入到Flink/Blink中,每5秒進行一次聚合計算,并將計算的結果重新寫回Tablestore的sink_order表中。最后提供給“大屏”實時讀取(GetRange)展示。
Source表(源表)- source_order
source表是原始數據表,存儲了所有交易記錄。
Sink表(結果表)- sink_order
Flink SQL
DDL參考
https://help.aliyun.com/document_detail/62515.html
注意:當前Blink在支持Tablestore source上還有些限制,只能運行ProcessingTime的方式,未來會支持EventTime模式,按照用戶數據參數的時間進行計算。
-- Source 源表創建 CREATE TABLE ots_input ( metering VARCHAR, orderid VARCHAR, price DOUBLE, byerid BIGINT, sellerid BIGINT, productid BIGINT, primary key(metering,orderid), ts AS PROCTIME() ) WITH ( type = 'ots', instanceName = 'ordertest', tableName = 'source_order', accessId = '******************', accessKey = '******************', endpoint = 'http://ordertest.cn-zhangjiakou.vpc.tablestore.aliyuncs.com', tunnelName = 'blink_agg' ); -- Sink 結果表創建 CREATE TABLE ots_output ( metering VARCHAR, ts BIGINT, price DOUBLE, ordercount BIGINT, primary key(metering,ts) ) WITH ( type = 'ots', instanceName = 'ordertest', tableName = 'sink_order', accessId = '******************', accessKey = '******************', endpoint = 'http://ordertest.cn-zhangjiakou.vpc.tablestore.aliyuncs.com', valueColumns = 'price,ordercount' ); -- 計算 INSERT INTO ots_output SELECT DISTINCT metering as metering, CAST(TUMBLE_START(ots_input.ts, INTERVAL '5' SECOND) AS BIGINT) AS ts, SUM(price) as price, COUNT(orderid) as ordercount FROM ots_input GROUP BY TUMBLE(ts, INTERVAL '5' SECOND),metering;
第一步:準備賬戶與開服
準備表格存儲實例,可以參考《表格存儲實例創建》
https://help.aliyun.com/document_detail/55211.html
準備Flink/Blink項目,可以參考《Blink如何購買》
https://help.aliyun.com/document_detail/62458.html
第二步:創建資源
表格存儲資源
表格存儲控制臺入口,創建表格存儲實例ordertest (用戶自定義即可,下面對于參數位置更換為自定義的實例名),并記錄實例的VPC地址
同時在控制臺創建Source表和Sink表, 并為Source表(source_order)開啟一個Tunnel服務blink_agg
圖三 Source表(source_order)
圖四 Sink表(sink_order)
圖五 源表和目標表
圖六 創建通道
Blink資源
Blink控制臺入口,創建一個Blink項目(獨享模式要創建集群之后才能創建項目),分別創建一個作業,agg_order,并將上面的Flink SQL粘貼到窗口中,上線服務
在運維窗口中啟動該任務
第三步:壓入數據 并 實時獲取結算結果
1 準備配置文件
程序默認會從'~/tablestoreConf.json'獲取配置
vim ~/tablestoreConf.json # 內容 { "endpoint":"http://ordertest.cn-zhangjiakou.ots.aliyuncs.com", "accessId":"************", "accessKey":"************", "instanceName":"ordertest" }
2 構建源碼
mvn install cd target tar xzvf stream-compute-1.0-SNAPSHOT-release.tar.gz
3 啟動壓力器和模擬大屏
可以直接下載工具包:stream-compute-1.0-SNAPSHOT-release.tar.gz
# 窗口1 ./bin/mock_order_generator # 窗口2 ./bin/data_show_screen
4 效果
源碼:https://github.com/aliyun/tablestore-examples/tree/master/demos/StreamCompute
附件下載:https//:yq.aliyun.com/attachment/download/?id=6940?
作者:chen1255
*請認真填寫需求信息,我們會在24小時內與您取得聯系。