OptCam.pl
上传用户:qdrechuli
上传日期:2022-08-01
资源大小:917k
文件大小:2k
源码类别:

视频捕捉/采集

开发平台:

Visual C++

  1. #!/usr/bin/perl -w
  2. use strict;
  3. use DBI;
  4. use vars qw(%base);
  5. sub main
  6. {
  7. my $db = DBI->connect("DBI:mysql:netcam","root","");
  8. my $sqlreq = "SELECT C_ID FROM cam";
  9. my $sql = $db->prepare($sqlreq);
  10. $sql->execute();
  11. while ((my $CID) = $sql->fetchrow())
  12. {
  13. $SIG{CHLD} = 'IGNORE';
  14. my $pid = fork;
  15. if ($pid==0)
  16. {
  17. my $db = DBI->connect("DBI:mysql:netcam","root","");
  18. while (1)
  19. {
  20. my $sqlreq = "SELECT R_ID,R_Img FROM record WHERE ";
  21. $sqlreq .= "R_Opt=0 and R_CAM=".$CID;
  22. my $sql = $db->prepare($sqlreq);
  23. $sql->execute();
  24. while ((my $RID,my $Img) = $sql->fetchrow())
  25. {
  26. print $RID,"n";
  27. print length($Img),"n";
  28. open(IMAGE,">/opt/NetAdmin/Net-Cam/data/tmp_".$CID.".jpg");
  29. print IMAGE $Img;
  30. close(IMAGE);
  31. my @args = ("/opt/NetAdmin/Net-Cam/bin/jdo.o","/opt/NetAdmin/Net-Cam/data/tmp_".$CID.".jpg");
  32. system(@args);
  33. open(IMAGE,"/opt/NetAdmin/Net-Cam/data/tmp_".$CID.".jpg");
  34. read IMAGE,$Img,length($Img)*2;
  35. close(IMAGE);
  36. print length($Img),"n";
  37. $base{update} = $db->prepare("UPDATE record SET R_Size=?,R_Img=?,R_Opt=? WHERE R_ID=?");
  38. $db->do("LOCK TABLE record LOW_PRIORITY WRITE");
  39. $base{update}->execute(length($Img),$Img,1,$RID);
  40. $db->do("UNLOCK TABLE");
  41. }
  42. $sql->finish();
  43. }
  44. $db->disconnect();
  45. }
  46. }
  47. $sql->finish();
  48. $db->disconnect();
  49. }
  50. main();
  51. exit(0);