1 / 50

NetRecorder SDK

NetRecorder SDK. 詹嘉文 ccw@nfic.com.tw M2CA, NFIC. 簡介. NetRecorder 系統架構 基本操作 透過遠端: NetRecorder 網頁 主機: GetVideo 資料庫結構簡介 系統、錄影設定 存檔記錄 其他. 簡介 ( cont.). 背景知識 網頁設計 NetRecorder 系統與錄影設定 新增、修改、刪除 變更通知 動態產生網頁. 簡介 ( cont.). 網頁設計 查詢存檔影像 撥放影像 瀏覽即時影像 登入、登出系統. 簡介 ( cont.).

desma
Download Presentation

NetRecorder SDK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NetRecorder SDK 詹嘉文 ccw@nfic.com.tw M2CA, NFIC

  2. 簡介 • NetRecorder 系統架構 • 基本操作 • 透過遠端: NetRecorder 網頁 • 主機: GetVideo • 資料庫結構簡介 • 系統、錄影設定 • 存檔記錄 • 其他 NetRecorder SDK

  3. 簡介 (cont.) • 背景知識 • 網頁設計 • NetRecorder 系統與錄影設定 • 新增、修改、刪除 • 變更通知 • 動態產生網頁 NetRecorder SDK

  4. 簡介 (cont.) • 網頁設計 • 查詢存檔影像 • 撥放影像 • 瀏覽即時影像 • 登入、登出系統 NetRecorder SDK

  5. 簡介 (cont.) • 如何節省錄影空間? • 定時備份 • 定時刪除檔案 • 空間不足自動刪除檔案 • 範例 • 結論 NetRecorder SDK

  6. IIS nfgvocxa NetRecorder 系統架構 瀏覽器 伺服器 撥放影像 NFXVRDER ISAPI RDS 新增、修改、 查詢資料 db 變更通知 Remote Scripting GetVideo NetRecorder SDK

  7. 系統設定 系統參數 PARAMETER 安全容量、頻寬、保留天數 存檔路徑 DIRECTORY 編號、路徑、自動刪除 即時影像 LIVEVIDEO_CFG 名稱、IP、帳號 錄影設定 定時錄影 REGULAR_VIDEO 時間、IP、帳號 警報錄影 EVENT IP、GPI、錄影時間 定時擷取 SNAPSHOT 時間、IP、帳號、檔名 資料庫簡介 NetRecorder SDK

  8. 存檔記錄 RECORDED_FILE 時間、IP、檔名、錄影時間、檔案長度、路徑編號 資料庫簡介 NetRecorder SDK

  9. 其他 使用者密碼 USER 帳號、密碼、IP、操作員 管理者密碼 ADMINISTRATOR 帳號、密碼 登錄記錄 LOGIN_LOG 時間、帳號密碼、IP 變更記錄 UPDATE_LOG 時間、帳號、IP、變更內容 Add、Delete、Modify 定時備份 AUTOBACKUP 時間、類別、天數、路徑、是否刪除 資料庫簡介 NetRecorder SDK

  10. 背景知識 • HTML • Scripting Language: • Java Script • VB Script • Active Server Pages • Remote Data Service • Remote Scripting NetRecorder SDK

  11. 網頁設計 - 系統與錄影設定 NetRecorder SDK

  12. 網頁設計 - 系統與錄影設定 <BODY onLoad="OpenDB()"> <TABLE DATASRC=#RDS1 Border=1> <THEAD> <TR><TD>ADM NO</TD><TD>ID</TD><TD>PASSWORD</TD></TR> </THEAD> <TBODY><TR> <TD><Input NAME='ADM NO' Type=Text DATAFLD='ADM NO'></TD> <TD><Input NAME='ID' Type=Text DATAFLD='ID'></TD> <td><Input name=’password' type=text datafld='PASSWORD'></td> </TR></TBODY></TABLE> <Input Type=Button Value="AddNew" onClick="AddNewRecord()"> <Input Type=Button Value="Update" onClick="SubmitChange()"> <Input Type=Button Value="Delete” onClick=“DeleteRecord()”> NetRecorder SDK

  13. 網頁設計 - 系統與錄影設定 <OBJECT ID="RDS1" ClassID="ClsID:BD96C556-65A3-11D0-983A-00C04FC29E33"> </OBJECT> <SCRIPT Language=VBScript> Sub OpenDB() RDS1.Server = "http://my_netrecorder" RDS1.Connect = "driver={Microsoft Access Driver (*.mdb)}" & _ ";dbq=C:\Inetpub\wwwroot\NetRecorder\GetVideo\NetRecorder.mdb" RDS1.SQL = "Select * From ADMINISTRATOR “ & _ “Order by [ADM NO] ASC" RDS1.Refresh End Sub </SCRIPT> NetRecorder SDK

  14. 網頁設計 - 新增 Sub AddNewRecord() On Error Resume Next Set rs = RDS1.Recordset rs.MoveLast intIndex=rs("ADM NO") rs.AddNew rs.Update rs("ADM NO") = intIndex+1 MsgBox "新增一筆完成" RDS1.SubmitChanges Location.Reload() End Sub NetRecorder SDK

  15. 網頁設計 - 更改 Sub SubmitChange() On Error Resume Next RDS1.SubmitChanges If Err.Number <> 0 Then Location.Reload() MsgBox "無法更新資料" Else MsgBox "更新資料完成" End If End Sub NetRecorder SDK

  16. 網頁設計 - 刪除 Sub DeleteRecord() DialogRet = showModalDialog ( "dlg.asp?Table=Administrator&Key=ADM NO”) Set rs = RDS1.Recordset rs.MoveFirst Do While Not rs.eof If CLng(rs("ADM NO")) = CLng(DialogRet) Then rs.delete rs.MoveLast Else rs.MoveNext End If Loop RDS1.SubmitChanges End Sub NetRecorder SDK

  17. 網頁設計 - 刪除 document.writeln( '<HTML><BODY>' ); document.writeln( "正在從administrator中刪除一筆資料"); document.writeln(' <SELECT NAME="SelectMenu" onChange="jumpPage(this.form)">'); for (var i = 1; i <= CamId.length; i++) document.writeln("<OPTION>" + CamId[i]); document.writeln('</SELECT>'); document.writeln('<Input Type=Button Value = "取消" onClick="top.window.close()">'); function jumpPage(form) { i = form.SelectMenu.selectedIndex; if (i == 0) return; returnValue=CamId[i+1]; top.window.close(); } NetRecorder SDK

  18. 網頁設計 - 刪除 • 使用Active Server Pages動態產生資料 <!-- 檔案名稱: myasp.ASP --> ASP Data = " <% max_data = 5 For counter = 1 to max_data %> <%=counter%>, <% Next %> " 輸出結果: ASP Data = " 1, 2, 3, 4, 5, " NetRecorder SDK

  19. 網頁設計 - 刪除 <% DBPath=Server.MapPath("../GetVideo/NetRecorder.mdb") Set conn = Server.CreateObject("ADODB.Connection") conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" &_ DBPath sql = "Select * From Administrator” Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sql, conn, 3, 3 %> NetRecorder SDK

  20. 網頁設計 - 刪除 <SCRIPT LANGUAGE = "JavaScript"> function MakeArray() { this.length = MakeArray.arguments.length; for (var i = 0; i < this.length; i++) this[i+1] = MakeArray.arguments[i]; } // var CamId = new MakeArray(“選擇”, 1,2,3….); var CamId = new MakeArray("選擇任一筆資料", <%DO WHILE Not rs.eof %> "<%=rs.Fields("ADM NO").Value%>", <% rs.MoveNext LOOP %> ""); </SCRIPT> NetRecorder SDK

  21. 網頁設計 - 變更通知 • 目的 • 資料庫內容變動時主動通知GetVideo • 方法 • 透過Remote Scripting 及中介軟體nfxgvocxa通知GetVideo • 時機 • 資料庫內容變更時:更新、刪除 NetRecorder SDK

  22. 網頁設計 - 變更通知 • Client Script Sub DoNoticeOCX() If StrComp("<%=vTable%>" , "regular_video") = 0 Then handleRSExecute("DoSchRecConfigUpdate") ElseIf StrComp("<%=vTable%>", ”save_dir") = 0 Then handleRSExecute("DoSaveDirConfigUpdate") End If End Sub NetRecorder SDK

  23. 網頁設計 - 變更通知 <script language="JavaScript" src="rs.htm"></script> <script language="JavaScript"> RSEnableRemoteScripting("../mynet");</script> <SCRIPT Language="JavaScript"> function handleRSExecute(Method) { var co = RSExecute("sm1.asp", Method); } </SCRIPT> NetRecorder SDK

  24. 網頁設計 - 變更通知 • Server Script • Filename: SM1.ASP • Notifications • DoSchRecConfigUpdate • DoEvTrigRecConfigUpdate • DoSchSnapShotConfigUpdate • DoAutoBackupConfigUpdate • DoParameterConfigUpdate • DoSaveDirConfigUpdate NetRecorder SDK

  25. 網頁設計 - 動態產生網頁(ASP) 1. Usage: dynapage.asp?table=ADMINISTRATOR&key=ADM NO 2. dynapage.asp vTable = Request("table") vKey = Request("key") vSQL="Select * From "& vTable &" Order By ["&vKey&"] ASC” Set conn = Server.CreateObject("ADODB.Connection") conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & vDbq Set rs = Server.CreateObject("ADODB.Recordset") rs.Open vSQL, conn, 3, 3 Response.Write "<table DATASRC=#RDS1><thead><tr>" For i = 0 to rs.Fields.Count - 1 Response.Write "<td>" & rs.Fields(i).Name & "</td>" Next Response.Write ”</tr></thead>" NetRecorder SDK

  26. 網頁設計 - 動態產生網頁(ASP) Response.Write "<TBODY><TR>” For i = 0 to rs.Fields.Count - 1 vName = rs.Fields(i).Name If rs.Fields(i).Type = vbBoolean Then Response.Write "<td><Input Type=CheckBox datafld='" & vName & "'>" Else Response.Write "<td><Input Type=Text datafld='" & vName & "'>” End If Next Response.Write "</TR></TBODY></TABLE>" NetRecorder SDK

  27. 網頁設計 -查詢存檔影像 NetRecorder SDK

  28. 網頁設計 -查詢存檔影像 Response.Write "<TBODY><TR>” For i = 0 to rs.Fields.Count - 1 vName = rs.Fields(i).Name If StrComp(vName, "FILENAME") = 0 Then Response.Write "<TD><Input NAME=PBFile Type=Text ID=PBFileID DATAFLD='" & vName & "' "></TD>" ElseIf StrComp(rs.Fields(i).Name, "PATH ID") = 0 Then Response.Write "<TD><Input NAME='"&vName & "' TYPE=HIDDEN DATAFLD='" & vName & "'></TD>" ElseIf rs.Fields(i).Type = vbBoolean Then Response.Write "<TD><DIV NAME='" & vName & "' Type=CheckBox DATAFLD='" & vName & "'></TD>" Else Response.Write "<TD><DIV NAME='" & vName & "' DATAFLD='" & vName & "' Size=" & LenB(vName) & "></TD>" NetRecorder SDK

  29. 網頁設計 -查詢存檔影像 Response.Write "</TR></TBODY></TABLE>” Response.Write "<INPUT Type=Button Value=Prev OnClick=""MYTABLE.previousPage()"">" Response.Write "<INPUT Type=Button Value=Next OnClick=""MYTABLE.nextPage()"">" NetRecorder SDK

  30. 網頁設計 -查詢存檔影像 <SCRIPT FOR=PBFileID EVENT=onclick LANGUAGE="JScript"> var idx = window.event.srcElement.sourceIndex; var fn = document.all(idx).value if (fn.length > 0) window.open("pb.asp?IP=<%=vServerIP%>&FileName=" + fn+"&dir_id="+document.all(idx+2).value); </SCRIPT> NetRecorder SDK

  31. 網頁設計 - 撥放影像 NetRecorder SDK

  32. 網頁設計 - 撥放影像 <SCRIPT LANGUAGE="VBScript"> function document_onstop() LV263a.Close() end function </SCRIPT> <OBJECT ID="LV263a" WIDTH=320 HEIGHT=280 CLASSID="CLSID:894C310D-6FD7-11D3-BEE7-0000E8CEC6C9" CODEBASE="../CabFiles/nfx263.cab#version=1,0,0,2"> <PARAM NAME="ControlType" VALUE="1"> <PARAM NAME="ISAPI_PATH" VALUE="NetRecorder/Exec"> <PARAM NAME="URL" VALUE="http://<%=Request("IP")%>"> <param name="SaveFileName" value="<%=Request("FileName")%>"> <PARAM NAME="DIR_ID" VALUE="<%=Request("DIR_ID")%>"> </OBJECT> NetRecorder SDK

  33. 網頁設計 -瀏覽即時影像 <% vIP = Request("IP") vID = Request("ID") vNAME = Request("NAME") vPWD = Request("PWD") %> <HTML> <BODY> <EMBED type="video/x-nficwmh263" src="http://<%=vIP%>/pushall.htm;<%=vID%>? zzx=<%=vNAME%>&zzy=<%=vPWD%>&zzz=1& noinput=1" WIDTH="320" HEIGHT="240"> </BODY> </HTML> NetRecorder SDK

  34. 網頁設計 - 登入、登出系統 NetRecorder SDK

  35. 網頁設計 - 登入、登出系統 • 使用方法 <-- filename: myasp.asp --> <!--#include file="pwd.asp" --> <HTML> <body> ……. </body> </HTML> NetRecorder SDK

  36. 網頁設計 - 登入、登出系統 <% ID = Request("ID") Pwd = Request("Pwd") If IsEmpty(Session("AdmPassed")) Then Session("AdmPassed") = False If ID = "" Or Pwd = "" Then Head = "請輸入您的認證資料" ElseIf CheckAdmPwd( ID, Pwd ) Then Session("AdmPassed") = True Else Head = "『使用者名稱』或『密碼』錯誤" End If If Not Session("AdmPassed") Then %> NetRecorder SDK

  37. 網頁設計 - 登入、登出系統 <HTML> <%=Head%> <FORM Action=<%=Request.ServerVariables("path_info")%>? <%=Request.ServerVariables("query_string")%> Method=post> 使用者名稱: <Input Type=Text Name=ID Size=12 Value=<%=ID%>> 密碼: <Input Type=Password Name=Pwd Size=12 value=<%=Pwd%>> <Input Type=Submit Value=" 確 定 "> </FORM></BODY></HTML> <% Response.End End If %> NetRecorder SDK

  38. 網頁設計 - 登入、登出系統 Function CheckAdmPwd( ID, Pwd ) …. sql = "Select * From ADMINISTRATOR Where id='" & id & "' And PASSWORD = '" & Pwd & "'" Set rs = conn.Execute( sql ) If rs.EOF Then CheckAdmPwd = False Else CheckAdmPwd = True End If End Function NetRecorder SDK

  39. 如何節省錄影空間 • 定時備份 • 手動備份:GVBackup • 自動備份 NetRecorder SDK

  40. 如何節省錄影空間 • 定時刪除檔案 • 每天凌晨1:00 自動刪除存檔錄影 • 系統參數的「錄影保留」 NetRecorder SDK

  41. 如何節省錄影空間 • 自動刪除檔案 • 目錄空間不足時刪除其他舊檔 • 設定存檔路徑的「自動刪除」 NetRecorder SDK

  42. 範例 • 登入 - Pwd.asp NetRecorder SDK

  43. 範例 • 首頁 - Home.asp NetRecorder SDK

  44. 範例 • 即時影像 - Live.asp NetRecorder SDK

  45. 範例 • 定時錄影設定 - SetRec.asp NetRecorder SDK

  46. 範例 • 刪除一筆資料 - Dlg.asp NetRecorder SDK

  47. 範例 • 查詢存檔影像 - Query.asp NetRecorder SDK

  48. 範例 • 瀏覽存檔影像 - Play.asp NetRecorder SDK

  49. 範例 • 登出系統 • Logout.asp • Remote Scripting • sm1.asp • rs.asp, rs.htm, rsproxy.class NetRecorder SDK

  50. 結論 • 軟體元件 • Internet Information Server • GetVideo, GVBackup, nfxgvocxa, nfxvrder, LV263a/LVJPG • 基礎技術 • HTML, Java/VB Script, ASP, RDS, Remote Scripting • ISAPI, ActiveX Control NetRecorder SDK

More Related