Yorumları: 227
Konuları: 69
Kayıt Tarihi: 07-09-2016
Rep Puanı: 269 Acemi
Merhaba,
Hikvision marka IP Kameradan Görüntü Almak istiyorum, aşağıdaki konuda paylaşılmış fakat bir çözüm üretemedim,
Alıntı:https://www.delphican.com/showthread.php...=Hikvision
TRichView component ile çözmek istedim fakat desteklemediğini belirttiler,
rtsp://192.168.1.64:554/Streaming/Channels/101/
rtsp://admin:123456@192.168.1.64:554/Streaming/Channels/101/
bir kaç yol denesem de bir türlü çözmedim konu hakkında bilgisi olan paylaşırsa minnettar olacağım.
teşekkürler.
Yorumları: 227
Konuları: 69
Kayıt Tarihi: 07-09-2016
Rep Puanı: 269 Acemi
11-08-2024, Saat: 21:21
(Son Düzenleme: 11-08-2024, Saat: 22:03, Düzenleyen: erdogan.)
Merhaba,
eklemeyi unutmuşum, bir kaynak buldum fakat dll olmasına rağmen dll hatası veriyor
Alıntı:https://github.com/theprogrammer67/HikvisionDelphi
teşekkürler
aşağıdaki örnek ile deniyorum,
aldığım hata : HTTP/1.1 404 Not Found
(32 bit dll dosyalar : https://www.hikvision.com/tr/support/too...55bdb1ce1/ )
unit Unit1;
interface
uses
Winapi.Windows, IdHTTP, Winapi.Messages, System.SysUtils, System.Variants,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, System.Classes ;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
IdHTTP1: TIdHTTP;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
LPNET_DVR_DEVICEINFO_V30 = ^NET_DVR_DEVICEINFO_V30;
NET_DVR_DEVICEINFO_V30 = Record
sSerialNumber: array [0 .. 47] of BYTE;
byAlarmInPortNum: BYTE;
byAlarmOutPortNum: BYTE;
byDiskNum: BYTE;
byDVRType: BYTE;
byChanNum: BYTE;
byStartChan: BYTE;
byAudioChanNum: BYTE;
byIPChanNum: BYTE;
byZeroChanNum: BYTE;
byMainProto: BYTE;
bySubProto: BYTE;
bySupport: BYTE;
bySupport1: BYTE;
byRes1: BYTE;
wDevType: Word;
byRes2: array [0 .. 15] of BYTE;
end;
var
Form1: TForm1;
ErrorValues: LongWord;
lUserID: LONG;
struDeviceInfo: NET_DVR_DEVICEINFO_V30;
DVRIP, DVRUserName, DVRPassWord: AnsiString;
function NET_DVR_Init(): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Init';
function NET_DVR_Cleanup(): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Cleanup';
function NET_DVR_SetConnectTime(dwWaitTime, dwTryTimes: DWORD): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_SetConnectTime';
function NET_DVR_SetReconnect(dwInterval: DWORD; bEnableRecon: boolean): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_SetReconnect';
function NET_DVR_GetLastError(): LongWord; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_GetLastError';
function NET_DVR_Login_V30(sDVRIP: PAnsiChar; wDVRPort: Word; sUserName: PAnsiChar; sPassword: PAnsiChar; lpDeviceInfo: LPNET_DVR_DEVICEINFO_V30): LONG; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Login_V30';
function NET_DVR_Logout_V30(lUserID: LONG): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Logout_V30';
implementation
{$R *.dfm}
uses
System.NetEncoding, Vcl.Graphics ;
procedure TForm1.Button1Click(Sender: TObject);
var
ResponseContent: TMemoryStream;
AuthHeader: string;
IdHTTP1: TIdHTTP;
begin
DVRIP := '192.168.1.64';
DVRUserName := 'admin';
DVRPassWord := 'A*?1OET1?';
NET_DVR_Init();
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
lUserID := NET_DVR_Login_V30(PAnsiChar(DVRIP), 8000, PAnsiChar(DVRUserName),
PAnsiChar(DVRPassWord), @struDeviceInfo);
if lUserID >= 0 then
begin
Memo1.Lines.Add('Login Success, lUserID: ' + IntToStr(lUserID));
IdHTTP1 := TIdHTTP.Create(nil);
ResponseContent := TMemoryStream.Create;
try
// IP kameradan görüntüyü al
IdHTTP1.Request.Username := DVRUserName;
IdHTTP1.Request.Password := DVRPassWord;
IdHTTP1.Get('http://' + DVRIP + '/snapshot.jpg', ResponseContent);
// TImage bileşenine yükle
ResponseContent.Position := 0;
Image1.Picture.LoadFromStream(ResponseContent);
except
on E: Exception do
ShowMessage('Hata: ' + E.Message);
end;
ResponseContent.Free;
IdHTTP1.Free;
end
else
begin
ErrorValues := NET_DVR_GetLastError();
Memo1.Lines.Add('Login Failed, Error: ' + IntToStr(ErrorValues));
end;
NET_DVR_Logout_V30(lUserID);
NET_DVR_Cleanup();
{ DVRIP := '192.168.1.64';
DVRUserName := 'admin';
DVRPassWord := '1234';
NET_DVR_Init();
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
lUserID := NET_DVR_Login_V30(PAnsiChar(DVRIP), 8000, PAnsiChar(DVRUserName),
PAnsiChar(DVRPassWord), @struDeviceInfo);
Memo1.Lines.Add('lUserID:' + inttostr(lUserID));
ErrorValues := NET_DVR_GetLastError();
Memo1.Lines.Add('ErrorValues:' + inttostr(ErrorValues));
NET_DVR_Logout_V30(lUserID);
NET_DVR_Cleanup(); }
end;
end.
Yorumları: 227
Konuları: 69
Kayıt Tarihi: 07-09-2016
Rep Puanı: 269 Acemi
Merhaba,
ekte çözülmüş hali var, 32bit ile derleyip üretici sitesinden sdk indirip dll ile derlerseniz çalışacaktır.
https://www.hikvision.com/tr/support/too...55bdb1ce1/
Yorumları: 1.006
Konuları: 44
Kayıt Tarihi: 24-07-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 2.830 Uzman
merhaba,
RSTP ile SDK ihtiyacı ortadan kalkıyor. Araştırınca forumda çözüldüğünü gördüm.
https://www.delphican.com/showthread.php?tid=1262
Yorumları: 3
Konuları: 0
Kayıt Tarihi: 18-11-2016
Aktif Kullandığınız Delphi Sürümü:
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 10
- Delphi 7
Rep Puanı: 8 Başlangıç
(11-08-2024, Saat: 21:21)erdogan Adlı Kullanıcıdan Alıntı: Sorunu çözebildiniz mi
Merhaba,
eklemeyi unutmuşum, bir kaynak buldum fakat dll olmasına rağmen dll hatası veriyor
Alıntı:https://github.com/theprogrammer67/HikvisionDelphi
teşekkürler
aşağıdaki örnek ile deniyorum,
aldığım hata : HTTP/1.1 404 Not Found
(32 bit dll dosyalar : https://www.hikvision.com/tr/support/too...55bdb1ce1/ )
unit Unit1;
interface
uses
Winapi.Windows, IdHTTP, Winapi.Messages, System.SysUtils, System.Variants,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, System.Classes ;
type
TForm1 = class(TForm)
Button1: TButton;
Image1: TImage;
IdHTTP1: TIdHTTP;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
LPNET_DVR_DEVICEINFO_V30 = ^NET_DVR_DEVICEINFO_V30;
NET_DVR_DEVICEINFO_V30 = Record
sSerialNumber: array [0 .. 47] of BYTE;
byAlarmInPortNum: BYTE;
byAlarmOutPortNum: BYTE;
byDiskNum: BYTE;
byDVRType: BYTE;
byChanNum: BYTE;
byStartChan: BYTE;
byAudioChanNum: BYTE;
byIPChanNum: BYTE;
byZeroChanNum: BYTE;
byMainProto: BYTE;
bySubProto: BYTE;
bySupport: BYTE;
bySupport1: BYTE;
byRes1: BYTE;
wDevType: Word;
byRes2: array [0 .. 15] of BYTE;
end;
var
Form1: TForm1;
ErrorValues: LongWord;
lUserID: LONG;
struDeviceInfo: NET_DVR_DEVICEINFO_V30;
DVRIP, DVRUserName, DVRPassWord: AnsiString;
function NET_DVR_Init(): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Init';
function NET_DVR_Cleanup(): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Cleanup';
function NET_DVR_SetConnectTime(dwWaitTime, dwTryTimes: DWORD): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_SetConnectTime';
function NET_DVR_SetReconnect(dwInterval: DWORD; bEnableRecon: boolean): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_SetReconnect';
function NET_DVR_GetLastError(): LongWord; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_GetLastError';
function NET_DVR_Login_V30(sDVRIP: PAnsiChar; wDVRPort: Word; sUserName: PAnsiChar; sPassword: PAnsiChar; lpDeviceInfo: LPNET_DVR_DEVICEINFO_V30): LONG; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Login_V30';
function NET_DVR_Logout_V30(lUserID: LONG): boolean; stdcall; external 'HCNetSDK.dll' name 'NET_DVR_Logout_V30';
implementation
{$R *.dfm}
uses
System.NetEncoding, Vcl.Graphics ;
procedure TForm1.Button1Click(Sender: TObject);
var
ResponseContent: TMemoryStream;
AuthHeader: string;
IdHTTP1: TIdHTTP;
begin
DVRIP := '192.168.1.64';
DVRUserName := 'admin';
DVRPassWord := 'A*?1OET1?';
NET_DVR_Init();
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
lUserID := NET_DVR_Login_V30(PAnsiChar(DVRIP), 8000, PAnsiChar(DVRUserName),
PAnsiChar(DVRPassWord), @struDeviceInfo);
if lUserID >= 0 then
begin
Memo1.Lines.Add('Login Success, lUserID: ' + IntToStr(lUserID));
IdHTTP1 := TIdHTTP.Create(nil);
ResponseContent := TMemoryStream.Create;
try
// IP kameradan görüntüyü al
IdHTTP1.Request.Username := DVRUserName;
IdHTTP1.Request.Password := DVRPassWord;
IdHTTP1.Get('http://' + DVRIP + '/snapshot.jpg', ResponseContent);
// TImage bileşenine yükle
ResponseContent.Position := 0;
Image1.Picture.LoadFromStream(ResponseContent);
except
on E: Exception do
ShowMessage('Hata: ' + E.Message);
end;
ResponseContent.Free;
IdHTTP1.Free;
end
else
begin
ErrorValues := NET_DVR_GetLastError();
Memo1.Lines.Add('Login Failed, Error: ' + IntToStr(ErrorValues));
end;
NET_DVR_Logout_V30(lUserID);
NET_DVR_Cleanup();
{ DVRIP := '192.168.1.64';
DVRUserName := 'admin';
DVRPassWord := '1234';
NET_DVR_Init();
NET_DVR_SetConnectTime(2000, 1);
NET_DVR_SetReconnect(10000, true);
lUserID := NET_DVR_Login_V30(PAnsiChar(DVRIP), 8000, PAnsiChar(DVRUserName),
PAnsiChar(DVRPassWord), @struDeviceInfo);
Memo1.Lines.Add('lUserID:' + inttostr(lUserID));
ErrorValues := NET_DVR_GetLastError();
Memo1.Lines.Add('ErrorValues:' + inttostr(ErrorValues));
NET_DVR_Logout_V30(lUserID);
NET_DVR_Cleanup(); }
end;
end.
Cengiz ÖĞREN
Yorumları: 309
Konuları: 111
Kayıt Tarihi: 22-01-2019
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 300 Acemi
HOCAM BEN bu konularda artik uzmanlastim bu forumda onlarca yardim aldim ilk defa tam anlamiyla yardimci olabilecegim bir konu cikti.
size sorunun cozumunu anlatayim dilerseniz uzaktanda yardimci olurum.
ben kamera ile goruntu analizi yapiyorum . kucuk bir programim var
ilk onceleri kameralarin sdk sini ocx. dosyalarini programa install edip onun uzerinden goruntu aliyordum.
bu durumun soyle bir problemi var ilerde ayni kameradan veya ayni ocx kullanan kameralardan bulamazsaniz programiniz cokuyor.
gecen ay bu sorunu yasadim satin aldigim kamera modeli piyasada bitmis.
https://www.videolan.org/index.tr.html vlcplayer indiriyorsun bilgisayarina kuruyorsun.
sonra paslivlcplayer kompenanti var onu IDE programina kuruyorsun.
sonra internet explorer larda kameranin goruntusunu acmaya calisiyorsun zaten gerekli dosyalari bu arada bilgisayarina yuklenmek zorunda.
bir arkadasin onerisiyle avant browser kullaniyorum kamera goruntusu almada sorun yasamiyorum.
kamera goruntusu aldiktan sonra kameranin rtsp:// kodunu buluyorsun hangi kodu yazdiginda goruntu alabildigini bulman onemli
rtsp:// kodunu bulduktan sonra programinda paslibvlcplayer da bu kodla kamerani acip goruntu alabiliyorsun.
resim vb kayit islemleri yapabiliyorsun.
saygilar
Not: ONVIF device maneger diye bir program var ben rtsp:// kodunu bulmakta zorlandim sonra bu programi kurcalarken bunda buldum.
Ekmeğimi yazılımdan kazanmıyorum kendi halimde bir şeyler yapıyorum. 49 yaşında emekliyim.
İğne sokmadan yardımcı olacaksan başımın üstünde yerin var.
|