如何使用PHP从ip camera捕获图像

时间:2014-07-09 02:48:21

标签: php ip-camera

到目前为止,我有这个永远不会停止加载的代码

camera.php

$img = 'http://userid:password@ipaddress/mjpgstreamreq/1/image.jpg'; 
header ('content-type: image/jpeg'); 
readfile( $img ); 

的index.html

<img src="camera.php" />
<!-- But this does not work -->

如果我在页面上的img标签中有这个url,因为src也永远不会停止加载页面,我试图只读取快照它不是一个继续帧这是一个记录的图片与ip camera,我想读取并保存在文件中以备将来使用,我在localhost,如果重要的话,ip camera在另一个网络中,所以如果不继续加载,我怎么能读到它。

2 个答案:

答案 0 :(得分:1)

尝试这一点,但请记住更改Ip cam上的用户名,密码,IP和端口

<img src="http://myServer.com/cam.php" width="640" height="380" name="refresh">

<script language="JavaScript" type="text/javascript">     
  image = "http://myServer.com/cam.php"
  function Start() {
   tmp = new Date();
   tmp = "?"+tmp.getTime()
   document.images["refresh"].src = image+tmp
   setTimeout("Start()", 1000)
  }
    Start();       
</script>

<?php
 error_reporting(E_ALL);
 $img="IPCAM_IP:PORT/snapshot.cgi?user=UserName&pwd=Password"; 
 header ('content-type: image/jpeg');
 readfile($img); 
?> 

答案 1 :(得分:0)

您使用readfile()请求的资源是motion JPEG stream,而不仅仅是一张图片。因此,readfile()操作永远不会结束 - 随着流的继续,它将继续吐出更多图像!

您需要实现代码以将资源作为HTTP流打开,从流中解析出单个JPEG,然后停止读取。这可能不简单。