{ "info": { "author": "Pegara, Inc.", "author_email": "info@pegara.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "https://github.com/aieater/python_acapture\n\n# acapture (async capture python library)\n\n## Description\nacapture is a python camera/video capturing library for realtime.\nWhen python apps implement video, web camera and screenshot capturing, it is too slow FPS and suffering with that performance.\nIn addition, python is non event driven architecture and always be I/O blocking problem, and that will be imped parallelism.\n\nacapture(AsynchronusCapture) library provides async video/camera capturing implementation and can solve that blocking and performance problems.\n\n\nacapture library is useful instead of OpenCV VideoCapture API.\n\n#### OpenCV has blocking problem.\n```\nimport cv2\ncap = cv2.VideoCapture(0)\ncheck,frame = cap.read() # blocking!! and depends on camera FPS.\n```\n\n#### acapture library can solve that blocking problem in realtime apps.\n```\nimport acapture\ncap = acapture.open(0)\ncheck,frame = cap.read() # non-blocking\n```\n\n\n\n### Also see 'pyglview' package.\n\nOpenCV3 renderer is too slow due to cv2.waitKey(1).\nIf you want to more performance, you should use OpenCV4+ or 'pyglview' package.\n\nhttps://github.com/aieater/python_glview.git\n\nThis package is supported fastest OpenGL direct viewer and OpenCV renderer both.\nIf your environment was not supported OpenGL, it will be switched to CPU renderer(OpenCV) automatically and also available remote desktop(Xserver) like VNC.\n\n\n\n## Getting Started\n\n##### Base libraries on Ubuntu16.04\n| Library | installation |\n| ---- | ---- |\n| Camera | sudo apt install -y libv4l-dev libdc1394-22 libdc1394-22-dev v4l-utils |\n| Video | sudo apt install -y ffmpeg libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libfaac-dev libmp3lame-dev mplayer |\n\n##### Base libraries on MacOSX\n| Library | installation |\n| ---- | ---- |\n| Brew | /usr/bin/ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\" |\n| Camera | - |\n| Video | brew install ffmpeg mplayer |\n\n\n##### Python package dependencies\n| Version | Library | installation |\n| ---- | ---- | ---- |\n| v3.x/v4.x | OpenCV | pip3 install opencv-python |\n| v4.x | mss | pip3 install mss |\n| v1.1x.x | numpy | pip3 install numpy |\n| v1.9.x | pygame | pip3 install pygame |\n| v3.7.x | configparser | pip3 install configparser |\n\n\n#### Finally, install acapture.\n\n```\npip3 install acapture\n```\n\n-----\n\n### Examples\n\n\n#### Video stream (Async)\n```\nimport acapture\nimport cv2\n\ncap = acapture.open(\"test.mp4\")\nwhile True:\n check,frame = cap.read() # non-blocking\n if check:\n frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)\n cv2.imshow(\"test\",frame)\n cv2.waitKey(1)\n```\n\n#### Video frames (Async)\n\n```\ncap = acapture.open(\"test.mp4\",frame_capture=True)\n```\n\n#### Camera stream (Async)\n```\nimport acapture\nimport cv2\n\ncap = acapture.open(0) # /dev/video0\nwhile True:\n check,frame = cap.read() # non-blocking\n if check:\n frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)\n cv2.imshow(\"test\",frame)\n cv2.waitKey(1)\n```\n\n#### Screenshot stream (Sync)\n```\nimport acapture\nimport cv2\n\ncap = acapture.open(-1)\nwhile True:\n check,frame = cap.read() # blocking\n if check:\n frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)\n cv2.imshow(\"test\",frame)\n cv2.waitKey(1)\n```\n\n#### Directory images (Sync)\n```\nimport acapture\nimport cv2\n\ncap = acapture.open(\"images/\")\nwhile True:\n check,frame = cap.read() # blocking\n if check:\n frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)\n cv2.imshow(\"test\",frame)\n cv2.waitKey(1)\n```\n\n#### Unit image (Preloaded)\n```\nimport acapture\nimport cv2\n\ncap = acapture.open(\"images/test.jpg\")\nwhile True:\n check,frame = cap.read()\n if check:\n frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)\n cv2.imshow(\"test\",frame)\n cv2.waitKey(1)\n```\n\n\n#### Extract video to jpg images.\n```\nimport acapture\n\nacapture.extract_video2images(\"test.mp4\",format=\"jpg\",quality=2)\n```\n\n\n-----\n\n\n##### APIs\n\n| Version | Function | Required | Description |\n| ---- | ---- | ---- | ---- |\n| v1.0 | open(f,**kargs) | f | Open stream. [-1=>screenshot], [0=>camera0], [1=>camera1], [dirpath=>images], [path=>image],[path=>video] |\n| v1.0 | extract_video2images(path,**kargs) | path | Extract video to images. |\n| v1.0 | camera_info() | | Display camera information on Ubuntu. |\n| v1.0 | compress_images2video(path,**kargs) | path | Make video from images. |\n| v1.0 | extract_video2audio(f) | path | Extract audio file as mp3. |\n| v1.0 | join_audio_with_video(vf,af) | vf, af | Join video file and audio file. |\n\n\n### Also see 'pyglview' package.\n\nOpenCV3 renderer is too slow.\nIf you want to more performance, you should use OpenCV4 or pyglview package.\n\nhttps://github.com/aieater/python_glview.git\n\nThis package is supported fastest OpenGL viewer and OpenCV renderer both.\nIf your environment was not supported OpenGL, it will be switched to CPU renderer(OpenCV) automatically and also available remote desktop(Xserver) like VNC.\n\n#### acapture + pyglview + webcamera example.\n```\nimport cv2\nimport acapture\nimport pyglview\nviewer = pyglview.Viewer()\ncap = acapture.open(0) # Camera 0, /dev/video0\ndef loop():\n check,frame = cap.read() # non-blocking\n frame = cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)\n if check:\n viewer.set_image(frame)\nviewer.set_loop(loop)\nviewer.start()\n```\nLogicool C922 1280x720(HD) is supported 60FPS.\nThis camera device and OpenGL direct renderer is best practice.\nLogicool BRIO 90FPS camera is also good!, but little bit expensive.\n\n\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/aieater/python_acapture", "keywords": "opencv python screenshot video mp4 capture async web camera image", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "acapture", "package_url": "https://pypi.org/project/acapture/", "platform": "", "project_url": "https://pypi.org/project/acapture/", "project_urls": { "Homepage": "https://github.com/aieater/python_acapture" }, "release_url": "https://pypi.org/project/acapture/1.0.8/", "requires_dist": null, "requires_python": "", "summary": "Async web camera/video/images/screenshot capturing library.", "version": "1.0.8" }, "last_serial": 5775920, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "aca4788a56a5a6e33e85e9e1c6bd34f3", "sha256": "a632c5f1483bdb6296a04a9aa38b63592ad6dedb4083df83d5074f7de1a5c1df" }, "downloads": -1, "filename": "acapture-1.0.tar.gz", "has_sig": false, "md5_digest": "aca4788a56a5a6e33e85e9e1c6bd34f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7135, "upload_time": "2019-04-25T05:36:51", "url": "https://files.pythonhosted.org/packages/b3/2e/dbf565c20b9aef78ed59991c7f7a91a80c97889d5830b30b6ba9c77451cb/acapture-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "86eaa23f0aa07a1fefaf41827a7c15f5", "sha256": "f3fd095898873a2185f450d05a1574b125ab7cbf920ecc415505c4e39f5004cc" }, "downloads": -1, "filename": "acapture-1.0.1.tar.gz", "has_sig": false, "md5_digest": "86eaa23f0aa07a1fefaf41827a7c15f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8462, "upload_time": "2019-04-29T21:22:12", "url": "https://files.pythonhosted.org/packages/b1/ad/8487afff51fc0a03bd07e547d584dc6394fa7a8aed5219eb4f2a7facc427/acapture-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "257f2b9c789255e731aa04d7a2c090e0", "sha256": "1430bcec8b5d7ab7c4d30bb5d10841df050946922b562940591a70ded5ed90d4" }, "downloads": -1, "filename": "acapture-1.0.2.tar.gz", "has_sig": false, "md5_digest": "257f2b9c789255e731aa04d7a2c090e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8580, "upload_time": "2019-05-02T05:41:54", "url": "https://files.pythonhosted.org/packages/c5/59/8d70d9794a4dee1d4ddc7b2e3d5f421529952393701b3c7f7b6c1f7accdc/acapture-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "ef336d920c334860f48c3d84c71a4e63", "sha256": "2f689b0cda6db2b7169ae0ec5986a68f16d3c74b9f1aebb58c3704e81fba8ac8" }, "downloads": -1, "filename": "acapture-1.0.3.tar.gz", "has_sig": false, "md5_digest": "ef336d920c334860f48c3d84c71a4e63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9076, "upload_time": "2019-05-09T10:22:37", "url": "https://files.pythonhosted.org/packages/f2/99/b091757ecc38668549ca3ba25f74c63a2f2521110fa09cc2db36af43990c/acapture-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "2e1d15c57c7f6f22ce9c805965e8db8a", "sha256": "71399e897a6858c43381921d8536328f70cbae960b1ccbab683f590dc7f221bb" }, "downloads": -1, "filename": "acapture-1.0.4.tar.gz", "has_sig": false, "md5_digest": "2e1d15c57c7f6f22ce9c805965e8db8a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9352, "upload_time": "2019-05-13T09:08:04", "url": "https://files.pythonhosted.org/packages/d1/fb/f9d5cc07b097dd19f3c40eff3c8a93698efd90835f42f6e037009da85503/acapture-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "b9733e9bd3a2853d97ca07f5ef6c2b1f", "sha256": "ce197136306c97a7cec300079589936425e14bf6dd872a3f656a7ebe7b597311" }, "downloads": -1, "filename": "acapture-1.0.5.tar.gz", "has_sig": false, "md5_digest": "b9733e9bd3a2853d97ca07f5ef6c2b1f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9359, "upload_time": "2019-05-21T05:24:02", "url": "https://files.pythonhosted.org/packages/1a/fe/155e01d5d2683ecd6ef3632350abf5c9c50d820e022c68dfccd3a1d33d22/acapture-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "dd6598a36c5f0daf9886f30e81185483", "sha256": "c69d9197cc66be9e61aa15bcf731879d4e3165d260fceb6d751f34b07ac1861b" }, "downloads": -1, "filename": "acapture-1.0.6.tar.gz", "has_sig": false, "md5_digest": "dd6598a36c5f0daf9886f30e81185483", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9358, "upload_time": "2019-05-30T03:50:59", "url": "https://files.pythonhosted.org/packages/40/d5/d5d826705e85e73a903f0a2b78e9e00162d063e9d263853ac1185a03564e/acapture-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "d02e2d05e9144ad269980c3a40fcba35", "sha256": "67c55ffff1fcb4683850d95f9b161a83aff5325f77b2782571285b2a3599b458" }, "downloads": -1, "filename": "acapture-1.0.7.tar.gz", "has_sig": false, "md5_digest": "d02e2d05e9144ad269980c3a40fcba35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9364, "upload_time": "2019-05-30T10:40:06", "url": "https://files.pythonhosted.org/packages/b6/fc/4c98461c0f8ae2d817dc02cdcb64546eac54e1c2b58d153217dadf5a576a/acapture-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "406178c0f7979f0f06d728f07a6283fb", "sha256": "8c02cdfe18ee2e8c4af67939650e72169e732ac33e4a5fb38df64df82702ba92" }, "downloads": -1, "filename": "acapture-1.0.8.tar.gz", "has_sig": false, "md5_digest": "406178c0f7979f0f06d728f07a6283fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9361, "upload_time": "2019-09-03T13:20:16", "url": "https://files.pythonhosted.org/packages/f8/2f/83a4340c98f09174fdccfd7007d526b7f58e285527062d619fa2abeff16d/acapture-1.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "406178c0f7979f0f06d728f07a6283fb", "sha256": "8c02cdfe18ee2e8c4af67939650e72169e732ac33e4a5fb38df64df82702ba92" }, "downloads": -1, "filename": "acapture-1.0.8.tar.gz", "has_sig": false, "md5_digest": "406178c0f7979f0f06d728f07a6283fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9361, "upload_time": "2019-09-03T13:20:16", "url": "https://files.pythonhosted.org/packages/f8/2f/83a4340c98f09174fdccfd7007d526b7f58e285527062d619fa2abeff16d/acapture-1.0.8.tar.gz" } ] }