{ "info": { "author": "Purdue CAM2 Research Group", "author_email": "cam2proj@ecn.purdue.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "# README #\n\n### Citation ###\n\nIf you use this software, please include the following statement in acknowledgments\n\n\"The image archiving program is provided by the CAM2 (Continuous Analysis\nof Many CAMeras) project at Purdue University.\"\n\n### What is this repository for? ###\n\n* This repository stores the source code for retrieving data (image\n or video) from network cameras.\n\n* This is part of Purdue's CAM2 (Continuous Analysis of Many CAMeras)\n project. The project's web site is https://www.cam2project.net/\n\n* Please read the terms of use\nhttps://www.cam2project.net/terms/\n\nIn particular, \"You agree not to use the Platform to determine the\nidentity of any specific individuals contained in any video or video\nstream.\"\n\n* Software licensed under Apache license. See LICENSE.txt for details.\n\n* The lead investigator is Dr. Yung-Hsiang Lu, yunglu@purdue.edu. Please\nsend your questions, comments, or suggestions to him.\n\n### Motivation ###\n\nThousands of network cameras are connected to the Internet and provide\nreal-time visual data (image or video). Many network cameras require\nno password and anyone connected to the Internet can retrieve the\ndata,i.e., the data is publicly available. This program considers\nonly publicly available camera data.\n\nEven though the data is publicly available to anyone interested\nseeing, there are several problems. First, there is no central\nrepository where network cameras must register. Thus, significant\nefforts must be taken to find various sources of data. Second,\ndifferent brands of network cameras need different methods to retrieve\nthe data. The cameas may also provide different data formats: some\nprovide individual JPEG images; some provide motion JPEG (MJPEG)\nvideo; some others provide H.264 video.\n\nMany organizations (such as departments of transportation) aggregate\nstreams of multiple cameras and put these streams on web sites.\nHowever, these web sites have different formats and styles. Some web\nsites use simple HTML; some use CSS; some use Javascript. Some web\nsites have fixed URLs for different cameras. Some web site have\ndynamically generated URLs reflecting the time (thus, the URLs are\nalways changing).\n\nTo solve these problems, researchers at Purdue University are\ndeveloping the software to retrieve data from heterogeneous sources.\n\n### Documentation ###\nFull documentation can be found at https://purduecam2project.github.io/CAM2ImageArchiver/index.html\n\n### Installation ###\n\n* To install from our [PyPi Repository](https://pypi.org/project/CAM2ImageArchiver/) use PIP:\n```\n pip install CAM2ImageArchiver\n```\n\n* To install from source, download this repository and run:\n```\npython setup.py install\n```\n\n\n### Files ###\n\n* ```CAM2ImageArchiver.py``` is the main Python module. It archives images from a single camera.\n* ```camera.py``` provides classes to communicate with different types of cameras: IP cameras, non-IP cameras, and stream cameras.\n* ```StreamParser.py``` is used by ```camera.py``` to parse JPEG and MJPEG streams.\n* ```error.py``` contains custom Python Exceptions.\n* ```CamerHandler.py``` splits the retrieval job into threads for parallel processing.\n\n### Usage ###\n\nWe recommend using the CAM2 Image Archiver with the [CAM2 Camera Database Python Client](https://github.com/PurdueCAM2Project/CameraDatabaseClient).\n\nThe CAM2 Image Archiver accepts Camera objects directly from the [CAM2 Camera Client](https://github.com/PurdueCAM2Project/CameraDatabaseClient) users can also create their own camera object on the fly as shown below. The `archive()` method expects a list of dictionary objects with camera_type, cameraID, and snapshot_url fields. \n```\n[{'camera_type': 'non_ip', 'cameraID':'1', 'snapshot_url':''}]\n```\nBelow is an example of how to archive the image data from one camera. More example usage can be found in [the documentation](https://purduecam2project.github.io/CAM2ImageArchiver/index.html).\n```\nfrom CAM2ImageArchiver import CAM2ImageArchiver\ncams = [{'camera_type': 'non_ip', 'cameraID':'1', 'snapshot_url':'http://example.com/camera1'}]\ncam2 = CAM2ImageArchiver(num_processes=3)\ncam2.archive(cams, duration=, interval=)\t\n```\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/cam2proj/CAM2ImageArchiver/archive/1.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cam2proj/CAM2ImageArchiver", "keywords": "computer,vision,CAM2", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "CAM2ImageArchiver", "package_url": "https://pypi.org/project/CAM2ImageArchiver/", "platform": "", "project_url": "https://pypi.org/project/CAM2ImageArchiver/", "project_urls": { "Download": "https://github.com/cam2proj/CAM2ImageArchiver/archive/1.0.tar.gz", "Homepage": "https://github.com/cam2proj/CAM2ImageArchiver" }, "release_url": "https://pypi.org/project/CAM2ImageArchiver/2.0.4/", "requires_dist": [ "certifi", "chardet", "funcsigs", "idna", "mock", "numpy", "pbr", "pytz", "requests", "opencv-python" ], "requires_python": ">=2.7", "summary": "Network camera image retrieval and archiving.", "version": "2.0.4" }, "last_serial": 5035562, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "7602c0b45ae86acfb081cd09f7f8c5dd", "sha256": "fc619bba5c318192249f6808e3a06ad289ba317cac96ec06cd01ebb512aad374" }, "downloads": -1, "filename": "CAM2ImageArchiver-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "7602c0b45ae86acfb081cd09f7f8c5dd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 14252, "upload_time": "2018-02-01T22:31:06", "url": "https://files.pythonhosted.org/packages/bf/76/d84baaa9726011c53a30076f97debe60fca9f0d32103c6097940d5d6abdb/CAM2ImageArchiver-1.0-py2-none-any.whl" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "a531136aa0d8a61434d9ef66ab17985f", "sha256": "b59ece66e53d2bc7617f29f143a9343f48693777f6df1add166968f0c8abbdde" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a531136aa0d8a61434d9ef66ab17985f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "<3", "size": 13889, "upload_time": "2018-10-11T23:52:55", "url": "https://files.pythonhosted.org/packages/f3/2e/71f32f07915f3acfa1f57feb91ab9b2c338dc2bdc6afc1669f3c123c1394/CAM2ImageArchiver-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c316cc83ad5b04f6a86d9d3bd253d2c5", "sha256": "3a6634d1d144fa1f34768b1290ef8b799b88008cff5192e281c486e6339013a4" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.0.tar.gz", "has_sig": false, "md5_digest": "c316cc83ad5b04f6a86d9d3bd253d2c5", "packagetype": "sdist", "python_version": "source", "requires_python": "<3", "size": 11032, "upload_time": "2018-10-11T23:52:56", "url": "https://files.pythonhosted.org/packages/f6/d4/754c271a637e185050679b0b5667a1a136fcbcb5c37d30855a9fa8b30bd7/CAM2ImageArchiver-2.0.0.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "2691c004f2b0c5755ffe4b7caa77d7f6", "sha256": "ba41e266e0ef1c727b0abfdba01fe5f4aa6ba894e2d461cd6a119849d91ce4a1" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2691c004f2b0c5755ffe4b7caa77d7f6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 15715, "upload_time": "2018-10-17T00:10:27", "url": "https://files.pythonhosted.org/packages/7f/8d/856ca80c2dca251650c2c91b96ef93250166de6405212968bc8e27e480af/CAM2ImageArchiver-2.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2651b2bf06ea2622a35f6247f388a230", "sha256": "9c04caba1aa93e6a5f8cd867ca5eeb8b6e129c3662696099f2eeef2abf89611a" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.2.tar.gz", "has_sig": false, "md5_digest": "2651b2bf06ea2622a35f6247f388a230", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 11668, "upload_time": "2018-10-17T00:10:28", "url": "https://files.pythonhosted.org/packages/fc/33/fe5c076ed34031702738470ad2afa90b54a0cf087b9bf7ab1bcc6c537120/CAM2ImageArchiver-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "17f29de95e184cecad123955818d2dce", "sha256": "db2ed3c236295f9d06bf7cdcfa0c34cefebb35fd6831ac5c2abd7b4ae684a029" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "17f29de95e184cecad123955818d2dce", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 15771, "upload_time": "2018-10-17T00:28:32", "url": "https://files.pythonhosted.org/packages/32/2f/8103cf27c362f3d50d4bfa5a5649b3451767bb24df69f6466703c2a58ee5/CAM2ImageArchiver-2.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2927fea81638f3352508db0fc93f6cc0", "sha256": "aea36e0c6c7750ca0b53dec0fac55f4e22568d3583b4559aaa2d6e587780b285" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.3.tar.gz", "has_sig": false, "md5_digest": "2927fea81638f3352508db0fc93f6cc0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 11723, "upload_time": "2018-10-17T00:28:34", "url": "https://files.pythonhosted.org/packages/58/04/9f47c1693ec46cc69a8fd96e5c0719844209fcde547121c5d36776e1f3d3/CAM2ImageArchiver-2.0.3.tar.gz" } ], "2.0.4": [ { "comment_text": "", "digests": { "md5": "4e258237e226601c9d2a05a43035f215", "sha256": "3904afc23f6f471e72a1020a8df43158e5d2c1ffce1db6c3ea9f0ac6178c48a3" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4e258237e226601c9d2a05a43035f215", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 16519, "upload_time": "2019-04-01T16:57:18", "url": "https://files.pythonhosted.org/packages/74/4a/69363c0668d1f43b8d6e7a0cf6ef723b5cc1c60c7afcffdf091f8daf37f9/CAM2ImageArchiver-2.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89dd7089a5d5e8759739fea4dfb359c2", "sha256": "3ddc93be60d61ee08aae8321346598c7a597335ed82c5bb649ee2219e9df21b5" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.4.tar.gz", "has_sig": false, "md5_digest": "89dd7089a5d5e8759739fea4dfb359c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 11521, "upload_time": "2019-04-01T16:57:19", "url": "https://files.pythonhosted.org/packages/22/1c/18357fc578f5f6f34866a214d80b96c4723d8cee8f90e564650b7c348564/CAM2ImageArchiver-2.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4e258237e226601c9d2a05a43035f215", "sha256": "3904afc23f6f471e72a1020a8df43158e5d2c1ffce1db6c3ea9f0ac6178c48a3" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "4e258237e226601c9d2a05a43035f215", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=2.7", "size": 16519, "upload_time": "2019-04-01T16:57:18", "url": "https://files.pythonhosted.org/packages/74/4a/69363c0668d1f43b8d6e7a0cf6ef723b5cc1c60c7afcffdf091f8daf37f9/CAM2ImageArchiver-2.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89dd7089a5d5e8759739fea4dfb359c2", "sha256": "3ddc93be60d61ee08aae8321346598c7a597335ed82c5bb649ee2219e9df21b5" }, "downloads": -1, "filename": "CAM2ImageArchiver-2.0.4.tar.gz", "has_sig": false, "md5_digest": "89dd7089a5d5e8759739fea4dfb359c2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7", "size": 11521, "upload_time": "2019-04-01T16:57:19", "url": "https://files.pythonhosted.org/packages/22/1c/18357fc578f5f6f34866a214d80b96c4723d8cee8f90e564650b7c348564/CAM2ImageArchiver-2.0.4.tar.gz" } ] }