Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
IP Kameradan Görüntü Alma
#1
Selamlar
@mrmarman hocamızın daha önce örneğini vermiş olduğu webcamden görüntü alma örneğine istinaden bir capture işlemi yaptım.
Elimde IP kamera var ve bu kameraya webbrowser üzerinden IP adresi ile bağlandığımda sorunsuz olarak görüntüyü alabiliyorum. Ancak bunu delphi ile yapmayı denedim. Araştırma yaptığımda XE4 ile yapılmış olan örneği buldum ve aynısını uyguladım. Ancak, Loading Bitmap Failed hatası alıyorum. Kodu aşağıda paylaşıyorum. Ayrıca embercaderonun eğitim kodunu paylaştığı video linkini de paylaşıyorum. Bu kodlara istinaden sorunun sebebi hakkında yardımlarınızı rica ederim.

Kod :
procedure TForm1.btnGetJPEGClick(Sender: TObject);
var
 ResponseContent: TMemoryStream;
begin

 // Create response stream
 ResponseContent := TMemoryStream.Create;
 try

   // Request single JPEG from camera
   IdHTTP.Request.BasicAuthentication := TRUE;
   IdHTTP.Request.Username            := 'harun';
   IdHTTP.Request.Password            := 'Harun123';
   IdHTTP.Get('http://192.168.1.64/doc/page/login.asp', ResponseContent);

   // Load image to bitmap
   ResponseContent.Position := 0;
   imgCameraImage.Bitmap.LoadFromStream(ResponseContent);

 finally
   ResponseContent.Free;
 end;

end;

Youtube Linki :
https://www.youtube.com/watch?v=fdxDj-r8gU0
IP kamera örnek başlangıç süresi : 1:23:55 ten itibaren
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#2
Login ASP size ne döndürüyor onu incelemek lazım.

Bunu FMX Windows Desktop olarak çalıştırın ve gelen içeriği

 
// imgCameraImage.Bitmap.LoadFromStream(ResponseContent);
  ResponseContent.SaveToFile( ChangeFileExt(ParamStr(0),'.bmp') );

şeklinde kaydedin. Proje uygulama klasöründe oluşan projadiniz.BMP dosyanın içini inceleyim. Size sorunu bizatihi kendisi söylesin. Burada da paylaşırsanız beraber de bakarız sorun neymiş...
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
@mrmarman  hocam
dediğiniz şekli ile programı çalıştırdım ve oluşan bmp dosyasının edit olarak açtığımda içeriği şu şekilde :
<!doctype html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
<meta http-equiv="Expires" content="0" />
<meta name="format-detection" content="telephone=no">
<script>
document.write("<link type='text/css' href='../ui/css/ui.css?version=" + new Date().getTime() + "' rel='stylesheet' />");
</script>
</head>
<body class="preview min-width1280">
<div class="layout-north" id="header" ng-controller="headerController">
<div class="header" ng-include="'common/header.asp'" onload="headerLoaded()"></div>
</div>
<div class="layout-west" id="channel" ng-controller="channelController">
<div class="channel" ng-include="'common/channel.asp'" onload="channelLoaded()"></div>
</div>
<div class="layout-center">
<div class="layout-center-inner" id="plugin" ng-controller="pluginController">
<div class="plugin preview-plugin" ng-include="'common/plugin.asp'" onload="pluginLoaded()"></div>
</div>
<div class="layout-south-inner" id="tool" ng-controller="toolController">
   <div class="ng-hide" ng-if="bSupportPanomicMap" ng-show="bExpendPanoramicMap"><iframe id="panoramicMap" class="panoramic-iframe" ng-src="panorama/panorama.asp"></iframe></div>
<div class="tool" ng-include="'common/tool.asp'"  onload="toolLoaded()"></div>
</div>
</div>
<div class="layout-east">
<div id="panelTabs" class="tabs panel-tabs">
   <ul id="panel" class="panel" ng-controller="panelController">
<li module="ptzConfig">
<a id="ptzConfig" href="sidePanel/ptzConfig.asp" hidefocus title="{{oLan.ptz}}">
<div class="height17"><i class="nav-btn ptzConfig"></i></div>
<span class="ellipsis" ng-bind="oLan.ptz"></span>
</a>
</li>
<li module="generalConfig" ng-show="!oCap.bForceNotShow && oCap.bWndPlay">
<a href="sidePanel/generalConfig.asp" hidefocus title="{{oLan.generalParams}}">
<div class="height17"><i class="nav-btn generalConfig"></i></div>
<span class="ellipsis" ng-bind="oLan.generalParams"></span>
</a>
</li>
<li module="vcaConfig" ng-show="!oCap.bForceNotShow && oCap.bSupportVCA && oCap.bWndPlay && !oCap.bSupportPTZ">
<a href="sidePanel/vcaConfig.asp" hidefocus title="{{oLan.intelligentCfg}}">
<div class="height17"><i class="nav-btn vcaConfig"></i></div>
<span class="ellipsis" ng-bind="oLan.intelligentCfg"></span>
</a>
</li>
<li ng-show="oCap.bForceNotShow || !oCap.bWndPlay"></li>
<li ng-show="oCap.bForceNotShow || !oCap.bSupportVCA || !oCap.bWndPlay || oCap.bSupportPTZ"></li>
   </ul>
</div>
</div>
<div class="layout-south">
<div class="footer" id="footer"></div>
</div>
</body>
<script id="seajsnode" src="../script/lib/seajs/seajs/sea.min.js"></script>
<script>
document.write("<script src='../script/lib/seajs/config/sea-config.js?version=" + new Date().getTime() + "' ></scr" + "ipt>");
</script>
<script for=main_plugin_multiVideoActiveX event="GetSelectWndInfo(SelectWndInfo)">
try {
GetSelectWndInfo(SelectWndInfo);
} catch (e) {
// todo something
}
</script>
<script for=main_plugin_multiVideoActiveX event="PluginEventHandler(iEventType, iParam1, iParam2)">
try {
PluginEventHandler(iEventType, iParam1, iParam2);
} catch (e) {
// todo something
}
</script>
<script for=main_plugin_multiVideoActiveX event="ZoomInfoCallback(szZoomInfo)">
try {
ZoomInfoCallback(szZoomInfo);
} catch (e) {
// todo something
}
</script>
<script for=main_plugin_multiVideoActiveX event="PTZCtrlCallback(iWndIndex, iMouseActionType, iPTZActionType)">
try {
PTZCtrlCallback(iWndIndex, iMouseActionType, iPTZActionType);
} catch (e) {
// todo something
}
</script>
<script for=main_plugin_multiVideoActiveX event="MouseEvent(szXml)">
try {
MouseEvent(szXml);
} catch (e) {
// todo something
}
</script>
<script for=main_plugin_multiVideoActiveX event="KeyBoardEvent(szXml)">
try {
KeyBoardEvent(szXml);
} catch (e) {
// todo something
}
</script>
</html>

@mrmarman  hocam
fmx olarak çalıştırdığımda aşağıdaki kod oluşuyor.
<!doctype html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
<meta http-equiv="Expires" content="0" />
   <!-- 去除edge下将数字处理成电话的错误 -->
   <meta name="format-detection" content="telephone=no">
</head>
<body>
</body>
<script>
window.location.href = "/doc/page/login.asp?_" + (new Date()).getTime();
</script>
</html>
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#4
@shooterman tahmin etmiştim, IP kameranın WEB ara yüzü gelmiş.

Sizin örneğini bulduğunuz şekilde bu IP kamera modelinde en azından direkt içerik alma opsiyonunuz bulunmuyor demektir.
Normal bir web browser ile login olun sonra beliren video ekranınından bir kare resim nasıl alıyorsunuz, bunun yönergesini not edin.
delphi yakasında bu yönergeyi uygulayacak bir otomasyon kurmak için ondan sonra kolları sıvarsınız.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#5
@mrmarman  hocam teşekkür ederim. Sizin örneğinizdeki kodalara istinaden IP kamerayı görebilir miyim ekranda? Ya da form üzerinden bir webbowser bileşeni ekleyip görüntüyü bu şekilde alabilirsem, webbrowser bileşenini capture olarak kaydedebilir miyim acaba?
   
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#6
Ekranın altında Hikvision Digital görünce internetten google ile bakındım. SDK'sı varmış. 

* Öncelikle  bu üretici linkinden SDK paketini indirip, HCNetSDK.dll dosyasını proje EXE klasörünüze alın.

* Sonra  bu stackowerflow linkini inceleyebilirsiniz.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#7
Teşekkür ederim @mrmarman hocam. inceleyip sonucunu döneceğim.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#8
Merhaba, bu konuyu çok merak ettim bende öğrenmek istiyorum nasıl yaptınız, paylaşabilir misiniz ?. Benimde elimde ip kamera var , kendi programı ile bağlanabiliyor , ayrıca webbrowser üzerinden direk görebiliyorum. Buna uygulamak isterim. Mantığı nedir ?
Teşekkürler
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Runtime ile SpinEdit toplamı alma denizfatihi 7 512 04-12-2024, Saat: 12:28
Son Yorum: yhackup
  Excel içeri alma Para birimi gonulali 3 451 28-10-2024, Saat: 05:34
Son Yorum: griposter
  kap.org.tr veri alma hk. pro_imaj 7 7.452 22-10-2024, Saat: 19:57
Son Yorum: Zeynepfeyza20
  Hikvision IP Kameradan Görüntü Alma erdogan 5 659 08-10-2024, Saat: 09:24
Son Yorum: sadikacar60
  ip kameradan gelen resimde jpeg error #53 hatasi sadikacar60 5 542 01-10-2024, Saat: 08:08
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi