{ "info": { "author": "Ilya w495 Nikitin", "author_email": "w@w-495.ru", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Natural Language :: Russian", "Topic :: Multimedia :: Graphics :: Capture", "Topic :: Multimedia :: Video :: Capture", "Topic :: Multimedia :: Video :: Non-Linear Editor", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Utilities" ], "description": ".. contents:: Table of Contents\n\n\n############\nWhat is this\n############\n\nThis is a detector of video shots based of PyAV_.\n\n**It is strongly under construction.**\n\nNowadays, the main purpose of it is to visualize different methods of\nshot detection and near duplicate video retrieval.\n\nIt works both for Python 2.7 and Python 3.4.\n\n.. _PyAV: http://mikeboers.github.io/PyAV/\n\nHow to install\n==============\n\nWith conda\n----------\n\nCheck this link `anaconda.org/w495/shot-detector`_\n\n ::\n\n conda install shot-detector -c w495\n\n.. _anaconda.org/w495/shot-detector: https://anaconda.org/w495/shot-detector\n\n\n\nWith pip\n--------\n\n\nCheck this link `pypi/shot-detector`_\n\n ::\n\n\n pip install shot-detector\n\n**Note:**\n pip installation likely will not work properly\n due to PyAV_ is depends on platform.\n\n\n.. _pypi/shot-detector: https://pypi.python.org/pypi/multiprocess\n\n\nFor development\n---------------\n\nIt uses `conda`_ as package manager.\nSo to install it should run commands:\n\n1. Create new environment and install requirements from conda:\n\n ::\n\n conda create --name shot-detector-3.4 \\\n --file ./requirements/py34/requirements-conda-explicit.txt\n\n2. Activate your environment\n\n ::\n\n source activate shot-detector-3.4\n\n3. Install requirements from pip:\n\n ::\n\n pip install -r ./requirements/py34/requirements-pip.txt\n\nThe same for **Python 2.7**:\n\n1. Create new environment and install requirements from conda:\n\n ::\n\n conda create --name shot-detector-2.7 \\\n --file ./requirements/py27/requirements-conda-explicit.txt\n\n2. Activate your environment\n\n ::\n\n source activate shot-detector-2.7\n\n3. Install requirements from pip:\n\n ::\n\n pip install -r ./requirements/py27/requirements-pip.txt\n\nSee `Managing environments`_ for more details.\n\n\n.. _conda: http://conda.pydata.org/docs/intro.html\n.. _Managing environments: http://conda.pydata.org/docs/using/envs.html\n\n\nHow to start\n============\n\n::\n\n python ./main.py -i /path/to/file/or/stream\n\nOr\n\n::\n\n python -m shot_detector.tool -i /path/to/file/or/stream\n\nUse ``-h`` option to get help.\n\n::\n\n python ./main.py -h\n\nAlso check `help file`_ for this.\n\n.. _help file: /HELP.txt\n\n\n############\nSource Video\n############\n\nYou can use any video-file or video-device as an input for the Shot\nDetector. But in some cases it is required to use on-the-fly video\nstream.\n\nYou can get video-stream from third-party source or generate it\nyourself. There are several ways to generate your own input video\nstream:\n\n\n* from a file;\n* from your camera;\n* from your desktop;\n* from a virtual device.\n\nMore over you can implement it with different schemes of streaming:\n\n* point to point streaming;\n* streaming with server (``ffserver``).\n\nPoint to Point Streaming\n========================\n\nThis is the simplest way to reproduce on-the-fly video stream. In this\ncase you generate stream only for one reader. If you use your stream for\nthe Shot Detector, you cannot check it without stopping the Shot\nDetector. But in this stream embodiment you wont deal with latency.\n\nSDP-file and RTP-stream\n-----------------------\n\nIn this case we use `RTP Streaming Protocol`_. The main\nlimitation of it is that only one stream supported in the RTP muxer. So\nyou can stream only video without audio or audio without video.\n\n.. _RTP Streaming Protocol: https://en.wikipedia.org/wiki/Real-time\\_Transport\\_Protocol\n\n\nFile Streaming\n--------------\n\n1. Create a SDP-file and RTP-stream with ``ffmpeg``. For a file stream\n it looks like this:\n\n ::\n\n ffmpeg -re -i input-file.mp4 -an -f rtp rtp://127.0.0.1:1236 > file-stream.sdp\n\n Where:\n\n - ``-re`` \u2014 is a flag that makes ``ffmpeg`` read input at native\n frame rate. In this case it is used to simulate a stream from a\n device. Without this flag, your stream will be handled as a simple\n file. It is required only if you work with static file but not\n real stream.\n - ``-i input-file.mp4`` \u2014 is a name of input file.\n - ``-an`` \u2014 is a flag that makes ffmpeg ignore audio streams. The\n reason of this flag is that RTP doesn't support more than one\n stream. Moreover, if your file contains several video streams,\n your should choose one and remove odd video streams.\n - ``-f rtp`` \u2014 is an output format \u2014 `RTP`_.\n - ``rtp://127.0.0.1:1234`` \u2014 an address for receiving stream of\n virtual device.\n - ``./file-stream.sdp`` \u2014 is a is a stream `session description`_\n file.\n\n2. Check the ``./file-stream.sdp``. In this case it contains following\n text:\n\n ::\n\n SDP:\n v=0\n o=- 0 0 IN IP4 127.0.0.1\n s=No Name\n c=IN IP4 127.0.0.1\n t=0 0\n a=tool:libavformat 55.33.1000\n m=video 1234 RTP/AVP 96\n b=AS:2000\n a=rtpmap:96 MP4V-ES/90000\n a=fmtp:96 profile-level-id=1\n\n3. Check the stream. Run ``ffplay`` with ``./file-stream.sdp`` as an\n arguments.\n\n ::\n\n ffplay ./file-stream.sdp\n\n You get a window with video from your file-stream.\n\n - More over you can use any another player that supports RTP. For\n example:\n\n ::\n\n mplayer ./file-stream.sdp\n\n4. Stop ``ffplay`` and then use ``./file-stream.sdp`` file name as input\n URI for the Shot Detector\n\n**Note:** RTP uses UDP, so the receiver can start up any time, but you\ncan get packet loss.\n\n.. _RTP: https://en.wikipedia.org/wiki/Real-time\\_Transport\\_Protocol\n.. _session description: https://en.wikipedia.org/wiki/Session\\_Description\\_Protocol\n\nVirtual Device\n--------------\n\n1. Create a SDP-file and RTP-stream with ``ffmpeg``. For a virtual\n device it looks like this:\n\n ::\n\n ffmpeg -f lavfi -i mandelbrot -f rtp rtp://127.0.0.1:1234 > virtual-device.sdp\n\n Where:\n\n - ``-f lavfi`` \u2014 is format of ``libavfilter`` input\n `virtual devices`_ .\n This input device reads data from the open output pads\n of a libavfilter filtergraph.\n - ``-i mandelbrot`` \u2014 is a filter that draws the `Mandelbrot set`_.\n Check `Fancy Filtering Examples`_ in\n FFmpeg documentaion for another filter types.\n - ``-f rtp`` \u2014 is an output format \u2014 `RTP`_.\n - ``rtp://127.0.0.1:1234`` \u2014 an address for receiving stream\n of a virtual device.\n - ``./virtual-device.sdp`` \u2014 is a stream `session description`_\n file.\n\n2. Use ``virtual-device.sdp`` as discussed above.\n\nCamera Streaming\n----------------\n\nCreate a SDP-file and RTP-stream with ``ffmpeg``. For a camera it looks\nlike this:\n\n::\n\n ffmpeg -f v4l2 -i /dev/video0 -f rtp rtp://127.0.0.1:1234 > camera.sdp\n\nWhere:\n\n- ``-f v4l2`` \u2014 is an input device-format for a camera. The full name\n of it is \u2014 [video4linux2]\n (https://www.ffmpeg.org/ffmpeg-devices.html#video4linux2\\_002c-v4l2)\n *It works only for linux.* For another systems, please, check this\n page: [FFmpeg Streaming Guide]\n (https://trac.ffmpeg.org/wiki/StreamingGuide \"Streaming Guide\")\n- ``-i /dev/video0`` \u2014 is a path to device.\n- ``-f rtp`` \u2014 is an output format \u2014 `RTP`_.\n- ``rtp://127.0.0.1:1234`` \u2014 an address for receiving camera's stream.\n- ``./camera.sdp`` \u2014 is a file with a description of your\n `stream session`_.\n\nAfter that use ``camera.sdp`` as discussed above.\n\n.. _virtual devices: https://www.ffmpeg.org/ffmpeg-devices.html#lavfi\n.. _Mandelbrot set: https://en.wikipedia.org/wiki/Mandelbrot\\_set\n.. _Fancy Filtering Examples: https://trac.ffmpeg.org/wiki/FancyFilteringExamples#Video\n.. _stream session: https://en.wikipedia.org/wiki/Session\\_Description\\_Protocol\n\nDesktop Capturing\n-----------------\n\nFor a Linux display ffmpeg-command looks like this:\n\n::\n\n ffmpeg -f x11grab -video_size wxga -i :0.0 -f rtp rtp://127.0.0.1:1234 > desktop.sdp\n\nWhere:\n\n- ``-f x11grab`` \u2014 is an input format for a `X11-display`_.\n- ``-video_size wxga`` \u2014 size of your display. In this case we use the\n full size of desktop. Check `FFmpeg Capture/Desktop`_ page for other options\n- ``-i :0.0`` \u2014 is a desktop name.\n- ``-f rtp`` \u2014 is an output format\n- ``rtp://127.0.0.1:1234`` \u2014 an address for receiving camera's stream.\n- ``./desktop.sdp`` \u2014 is a stream session description file.\n\nAfter that use ``desktop.sdp`` as discussed above.\n\n.. _X11-display: https://www.ffmpeg.org/ffmpeg-devices.html#x11grab\n.. _FFmpeg Capture/Desktop: https://trac.ffmpeg.org/wiki/Capture/Desktop\n\n\nMPEG-TS Streaming\n-----------------\n\nWith `MPEG-TS`_\nyou can generate both and audio and video.\n\n.. _MPEG-TS: https://en.wikipedia.org/wiki/MPEG_transport_stream\n\nMPEG-TS via UDP\n---------------\n\nIn this case we use `UDP`_. So, you still\ncan get packet loss. They are likely to reveal if you stream via\nInternet.\n\nHere is example for a camera. For another devices they are the same.\n\n1. Start ``ffmpeg`` to generate **MPEG-TS** stream via udp.\n\n ::\n\n ffmpeg -f v4l2 -i /dev/video0 -f mpegts udp://127.0.0.1:1234\n\n Where:\n\n - ``-f v4l2`` \u2014 is an input device-format for a camera. It works\n only for linux. For another systems, please, check this page:\n `FFmpeg Streaming Guide`_.\n - ``-i /dev/video0`` \u2014 is a path to device.\n - ``-f mpegts`` \u2014 is an output format \u2014 MPEG transport stream.\n - ``udp://127.0.0.1:1234`` \u2014 an address for receiving camera's\n stream.\n\n2. Check it with ``ffplay``:\n\n ::\n\n ffplay -fflags nobuffer udp://127.0.0.1:1234\n\n Where:\n\n - ``-fflags nobuffer`` \u2014 is a flag that makes ffplay don't cache\n input stream. We set it to reduce latency.\n\n3. | Use ``udp://127.0.0.1:1234`` as input video URI for the Shot\n Detector.\n | More over, you can start ``ffmpeg`` and the Shot Detector in any\n order.\n\n**Note:** The time in the Shot Detector is a time of a video stream.\n\nAlso you can use both video and audio.\n\n::\n\n ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:0 -f mpegts udp://127.0.0.1:1234\n\nWhere:\n\n- ``-f alsa`` \u2014 is an input device-format for a microphone.\n- ``-i hw:0`` \u2014 is a name of a microphone device. See `Capture/ALSA`_\n for more details.\n\n\n.. _UDP: https://en.wikipedia.org/wiki/User\\_Datagram\\_Protocol\n.. _FFmpeg Streaming Guide: https://trac.ffmpeg.org/wiki/StreamingGuide\n.. _Capture/ALSA: https://trac.ffmpeg.org/wiki/Capture/ALSA\n\n\nMPEG-TS via TCP\n---------------\n\nAnother option is to use TCP connections for MPEG-TS streaming. In this\ncase you don't get packet loss. But you should guarantee that a reader\nwill be started before a writer. So, reader become a server and writer\nbecome a client.\n\nFor example:\n\n1. Start ``ffplay`` as a server\n\n ::\n\n ffplay -fflags nobuffer tcp://127.0.0.1:1234?listen\n\n Where:\n\n - ``-fflags nobuffer`` \u2014 is a flag that makes ffplay don't cache\n input stream. We set it to reduce latency.\n - ``tcp://127.0.0.1:1234?listen`` \u2014 is a host for sending camera's\n stream whith ``listen`` option. A writer should send stream to\n ``tcp://127.0.0.1:1234``.\n\n2. Start ``ffmpeg`` as a client\n\n ::\n\n ffmpeg -f v4l2 -i /dev/video0 -f mpegts tcp://127.0.0.1:1234\n\n Where:\n\n - ``-f v4l2`` \u2014 is an input device-format for a camera. It works\n only for linux. For another systems, please, check this page:\n `FFmpeg Streaming Guide`_.\n - ``-i /dev/video0`` \u2014 is a path to device.\n - ``-f mpegts`` \u2014 is an output format \u2014 MPEG transport stream.\n - ``tcp://127.0.0.1:1234`` \u2014 an address for sending camera's stream.\n\nSo, you can pass ``tcp://127.0.0.1:1234?listen`` as an input video URI\nfor the Shot Detector. But you should start it before ``ffmpeg``, Do not\nforget to stop ``ffplay``, before it.\n\nStreaming with a Server\n=======================\n\nIn this scheme you send the video-stream to a server. And then any\nclient can get your stream from it. The simplest way to achive this is\nto use ``ffserver``.\n\n1. Start ffserver with certain configuration file.\n\n ::\n\n sudo /usr/bin/ffserver -f ./etc/input/ffserver.conf\n\n Check `FFServer Configuration`_.\n\n2. Send input stream to server.\n\n For example, for linux-camera you should run:\n\n ::\n\n ffmpeg -f v4l2 -i /dev/video0 -f alsa -i hw:0 -tune zerolatency http://localhost:8090/feed1.ffm\n\n Where:\n\n - ``-f v4l2`` \u2014 is an input device-format for a camera. It works\n only for linux. For another systems, please, check this page:\n `FFmpeg Streaming Guide`_.\n - ``-i /dev/video0`` \u2014 is a path to device.\n - ``-f alsa`` \u2014 is an input device-format for a microphone.\n - ``-i hw:0`` \u2014 is a name of a microphone device.\n See `Capture/ALSA`_ for more details.\n - ``-tune zerolatency`` \u2014 is a flag that makes ``ffmpeg`` to change\n settings to minimize latency. This is not a flag of ffmpeg, this\n is H.264 option. See `Encode/H.264 Choose a preset`_ for\n more details.\n - ``http://localhost:8090/feed1.ffm`` \u2014 an address for sending\n camera's stream.\n\n For desktop it is the same:\n\n ::\n\n ffmpeg -f x11grab -i :0.0 -f alsa -i hw:0 -tune zerolatency http://localhost:8090/feed1.ffm\n\n3. Check it with ``ffplay``:\n\n ::\n\n ffplay -fflags nobuffer http://localhost:8090/live.flv\n\n Where:\n\n - ``-fflags nobuffer`` \u2014 is a flag that makes ffplay don't cache\n input stream. We set it to reduce latency.\n - ``http://localhost:8090/live.flv`` \u2014 is an address to get a video\n stream. It is specified in ``etc/input/ffserver.conf``.\n\n4. Pass ``http://localhost:8090/live.flv`` as an input video URI for the\n Shot Detector. In this case you may not stop ``ffplay``.\n\nAs for me it is the best way to simulate streaming for the Shot\nDetector.\n\n\n.. _FFServer Configuration: /etc/input/ffserver.conf\n.. _Encode/H.264 Choose a preset: https://trac.ffmpeg.org/wiki/Encode/H.264#a2.Chooseapreset", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "video-processing image-processing video", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "shot-detector", "package_url": "https://pypi.org/project/shot-detector/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/shot-detector/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/shot-detector/0.0.5.dev3/", "requires_dist": null, "requires_python": null, "summary": "Python shot detector based on PyAV", "version": "0.0.5.dev3" }, "last_serial": 2315140, "releases": { "0.0.4.dev41": [ { "comment_text": "", "digests": { "md5": "e7b8b1c01c438a0168c20f4142c4ffef", "sha256": "f40dd86673e4b2c278a7b12040c23c0a38496c64c0801bf70550a12515ec649c" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev41-py2-none-any.whl", "has_sig": false, "md5_digest": "e7b8b1c01c438a0168c20f4142c4ffef", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 167180, "upload_time": "2016-08-30T12:57:43", "url": "https://files.pythonhosted.org/packages/a5/e2/018fec9244c7cd451169062d90bca5073fb55e2331d2807cb417df6e8b22/shot_detector-0.0.4.dev41-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "79c43a755aa1a8a223c1a6172a8fdb53", "sha256": "2bb865e29abe3ba56f8ad06b24ce2d14c0644df95538584056dec273a5f7b69f" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev41-py3-none-any.whl", "has_sig": false, "md5_digest": "79c43a755aa1a8a223c1a6172a8fdb53", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 167121, "upload_time": "2016-08-30T12:59:31", "url": "https://files.pythonhosted.org/packages/be/7f/0ef03fb1b1f7db7f197ae9884c7945bbe93f2f83ed3ccfe43add1e4d172a/shot_detector-0.0.4.dev41-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "684274b00903e1f8462bbc1f2d324bdb", "sha256": "5855f585055a32268dfc3e55c700d632ee47667347512b3ad3d9554b9b596468" }, "downloads": -1, "filename": "shot-detector-0.0.4.dev41.tar.gz", "has_sig": false, "md5_digest": "684274b00903e1f8462bbc1f2d324bdb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4085717, "upload_time": "2016-08-30T12:57:37", "url": "https://files.pythonhosted.org/packages/fe/10/00c0327d6e59023f10c1efb33c1c6bc6f46e0d3dd6cd8ee712a51f162f72/shot-detector-0.0.4.dev41.tar.gz" } ], "0.0.4.dev68": [ { "comment_text": "", "digests": { "md5": "f2a2a8bcaf385de698d3e61e1a165bda", "sha256": "cb8869c5728a108e1b41e32efe9c9e29f227fc6e299f21d155da5efa3d717144" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev68-py2-none-any.whl", "has_sig": false, "md5_digest": "f2a2a8bcaf385de698d3e61e1a165bda", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 167083, "upload_time": "2016-08-30T16:41:41", "url": "https://files.pythonhosted.org/packages/a2/69/a689f8d6ef7644872351d9ecccd7b140293b7020cc7f6b6fccde4235c67d/shot_detector-0.0.4.dev68-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff5ce41fc4e65e0c22f9fc99f4b95d69", "sha256": "9923ecc274c3a784171599f085eb333eaaff5da00e370c64f614da06b4380143" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev68-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ff5ce41fc4e65e0c22f9fc99f4b95d69", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 167288, "upload_time": "2016-08-30T17:21:29", "url": "https://files.pythonhosted.org/packages/14/dd/0ea1406e5eb130abd3698c1d4f65ace97c323e76ed349201aaaea7668570/shot_detector-0.0.4.dev68-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ec936ae8dc354c5a7d92ab8f9d035c3", "sha256": "f7700676b5993b3b6745c77b40482977fc2349b88cd441b1b08d94221624ab7c" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev68-py3-none-any.whl", "has_sig": false, "md5_digest": "7ec936ae8dc354c5a7d92ab8f9d035c3", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 167285, "upload_time": "2016-08-30T17:22:19", "url": "https://files.pythonhosted.org/packages/16/bd/2a5726ff915a6f4e512aba772188c504cc8dba8fbd5926b5aba5d4010404/shot_detector-0.0.4.dev68-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "670b81d7b8659f2036f204e5cd4764a4", "sha256": "7aa18a5ed340212484c1e0c5e6491863e1d85fc94accb53ee36394466337aa67" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev68.tar.gz", "has_sig": false, "md5_digest": "670b81d7b8659f2036f204e5cd4764a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4086436, "upload_time": "2016-08-30T16:41:36", "url": "https://files.pythonhosted.org/packages/44/b0/0d9ea9b69891eb5efc57f546389c7b33fad642aca247199fd75f988d584a/shot_detector-0.0.4.dev68.tar.gz" } ], "0.0.4.dev80": [ { "comment_text": "", "digests": { "md5": "a3bf2b9f3963e1e84330e7ad44666699", "sha256": "36c94e12a19cab54d837eb32c70aa51a5c21f2bc905a1f9e4247f6ed3ec712f2" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev80-py2-none-any.whl", "has_sig": false, "md5_digest": "a3bf2b9f3963e1e84330e7ad44666699", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 175856, "upload_time": "2016-08-30T18:39:01", "url": "https://files.pythonhosted.org/packages/c5/ec/6eb2da1b7a1d53cbab6b5c472bbf3a28b5f6de212f3a16948ff0ca08ce7a/shot_detector-0.0.4.dev80-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "15df7982de25d9332737e96942fe32a5", "sha256": "090db72f5a32f7d15ad25d3cec7e2a66485839fdfe0c7125eff4e65f712169f9" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev80-py3-none-any.whl", "has_sig": false, "md5_digest": "15df7982de25d9332737e96942fe32a5", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 176062, "upload_time": "2016-08-30T18:39:30", "url": "https://files.pythonhosted.org/packages/ee/b0/4a58da31549f460d82f5eb31d6d2ea7fbf22269291d93454affc3c73f1e6/shot_detector-0.0.4.dev80-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4bef0cb7b6f378980fa13d91208a515d", "sha256": "d68a8f704cd281e8f356585d7d6a62984f667b92f81dd94e03c44ad4b5d02d98" }, "downloads": -1, "filename": "shot_detector-0.0.4.dev80.tar.gz", "has_sig": false, "md5_digest": "4bef0cb7b6f378980fa13d91208a515d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4093220, "upload_time": "2016-08-30T18:38:56", "url": "https://files.pythonhosted.org/packages/47/a1/ac5176afbcc119c11ed66e214e25fe51155b67c2448b217cd0fa8b0f7069/shot_detector-0.0.4.dev80.tar.gz" } ], "0.0.5.dev1": [ { "comment_text": "", "digests": { "md5": "78ffb86ea14318c433fc7d67e6441f46", "sha256": "5fb5881f841f48bfb9494220e7c47ef647b9b49619b51481ad12c76c33a7d929" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev1-py2-none-any.whl", "has_sig": false, "md5_digest": "78ffb86ea14318c433fc7d67e6441f46", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 175839, "upload_time": "2016-08-30T18:52:13", "url": "https://files.pythonhosted.org/packages/3c/15/ee7113b6ce64f578ce454c05b5a2b9356b8bbd854319f118466eb4edaa6e/shot_detector-0.0.5.dev1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec746be40babdd68d4d5a63a157399bf", "sha256": "bb00175e36f21a81ccc2a38df567ea0a6980f15d5d58a27fa46b0035f80c17e7" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev1.tar.gz", "has_sig": false, "md5_digest": "ec746be40babdd68d4d5a63a157399bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4093088, "upload_time": "2016-08-30T18:52:08", "url": "https://files.pythonhosted.org/packages/f6/f8/e5a91876ccd4fe45d68117887635a242997c9e1eed634030cdd1442b61ae/shot_detector-0.0.5.dev1.tar.gz" } ], "0.0.5.dev2": [ { "comment_text": "", "digests": { "md5": "30c266d40d3ed493e87d79685b84fe53", "sha256": "b091a38e39b15c56e1b669832852d0c7bc87ec8dbaa011bf679a9befdff760f0" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev2-py2-none-any.whl", "has_sig": false, "md5_digest": "30c266d40d3ed493e87d79685b84fe53", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 175838, "upload_time": "2016-08-30T19:00:52", "url": "https://files.pythonhosted.org/packages/11/21/1567744e9d2d44d80509821c0585eb419eb07528ee492765a650d127978a/shot_detector-0.0.5.dev2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4571824b457304943dd422a1804073c9", "sha256": "41a2486135609910743f79e6d53d244ef38cbbb9ea86f49ef6cc2cef7326c96c" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "4571824b457304943dd422a1804073c9", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 176044, "upload_time": "2016-08-30T18:58:32", "url": "https://files.pythonhosted.org/packages/71/4b/65c0f53972c2e12a1a32b4ce7093d5fe2fa1763f207753c08d9a9f5e96c8/shot_detector-0.0.5.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4c227d7e2e653080b823454e990e4303", "sha256": "4e7cb66dcedce4876ad8d2673b5bf0aafc8543811ca3aab580eeead4719acd72" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev2.tar.gz", "has_sig": false, "md5_digest": "4c227d7e2e653080b823454e990e4303", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4093097, "upload_time": "2016-08-30T19:00:47", "url": "https://files.pythonhosted.org/packages/8c/57/c6be317f3ebc7a2306e1e79792e6a56d1bef26b46ce8a1da1ff678aa2bec/shot_detector-0.0.5.dev2.tar.gz" } ], "0.0.5.dev3": [ { "comment_text": "", "digests": { "md5": "d84240a21d07ce7172dc58bbcb435b91", "sha256": "910ea1660a3f76896b2ed67c4dd6bcb890d081c3a01136f2fcfd5c1ebe2ecf95" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev3-py2-none-any.whl", "has_sig": false, "md5_digest": "d84240a21d07ce7172dc58bbcb435b91", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 175835, "upload_time": "2016-08-30T19:04:25", "url": "https://files.pythonhosted.org/packages/5a/b0/bf22c7e078fc0bb0e6820edefa3c4d59f66e71cfd01ffd19f7220d6b833c/shot_detector-0.0.5.dev3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b7eca357715ea5b7594c12196b7fcac", "sha256": "21c05032d215ca7f74cfa57be8efea21a1d324fcfd8391f00ab0b509cfe1dc9b" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "8b7eca357715ea5b7594c12196b7fcac", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 176040, "upload_time": "2016-08-30T19:04:36", "url": "https://files.pythonhosted.org/packages/ec/37/15bc55c6679bf80a1bdb2d8fe72db016712ba9ff3b111cbf32310cf764b4/shot_detector-0.0.5.dev3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69586b91884d5453862c871d3643adf4", "sha256": "ba2a8341d172335e3ce7a74ad07df74aac2da65d73c7145d2aa8ee5b2ccfd2f3" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev3.tar.gz", "has_sig": false, "md5_digest": "69586b91884d5453862c871d3643adf4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4093078, "upload_time": "2016-08-30T19:04:21", "url": "https://files.pythonhosted.org/packages/33/78/f9e014bc55d54ee5568506e65c4ebed2a7937f0318fa871d3d37b40a3eb4/shot_detector-0.0.5.dev3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d84240a21d07ce7172dc58bbcb435b91", "sha256": "910ea1660a3f76896b2ed67c4dd6bcb890d081c3a01136f2fcfd5c1ebe2ecf95" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev3-py2-none-any.whl", "has_sig": false, "md5_digest": "d84240a21d07ce7172dc58bbcb435b91", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 175835, "upload_time": "2016-08-30T19:04:25", "url": "https://files.pythonhosted.org/packages/5a/b0/bf22c7e078fc0bb0e6820edefa3c4d59f66e71cfd01ffd19f7220d6b833c/shot_detector-0.0.5.dev3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b7eca357715ea5b7594c12196b7fcac", "sha256": "21c05032d215ca7f74cfa57be8efea21a1d324fcfd8391f00ab0b509cfe1dc9b" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "8b7eca357715ea5b7594c12196b7fcac", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 176040, "upload_time": "2016-08-30T19:04:36", "url": "https://files.pythonhosted.org/packages/ec/37/15bc55c6679bf80a1bdb2d8fe72db016712ba9ff3b111cbf32310cf764b4/shot_detector-0.0.5.dev3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69586b91884d5453862c871d3643adf4", "sha256": "ba2a8341d172335e3ce7a74ad07df74aac2da65d73c7145d2aa8ee5b2ccfd2f3" }, "downloads": -1, "filename": "shot_detector-0.0.5.dev3.tar.gz", "has_sig": false, "md5_digest": "69586b91884d5453862c871d3643adf4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4093078, "upload_time": "2016-08-30T19:04:21", "url": "https://files.pythonhosted.org/packages/33/78/f9e014bc55d54ee5568506e65c4ebed2a7937f0318fa871d3d37b40a3eb4/shot_detector-0.0.5.dev3.tar.gz" } ] }