Skip to main content

A pyGTK and vlc based application to hand-annotate audio and video files for classification tasks

Project description

pyMediaAnnotator

pipeline status

A GTK+ and vlc based application for annotating video and audio files for classification tasks

Features:

  • Add text annotations time-locked to content in media file
  • Annotate time accurate to the millisecond
  • Jump to annotation start time to verify correctness
  • Standard media playback features (play/pause, stop, seek)
  • Change annotation task mid-video
  • Edit annotation label for particular time segment
  • Delete annotation entry
  • Undo annotation segment (in the order of most recent)
  • Sort annotations by starttime by clicking on column header so that you can go back and re-annotate a particular segment of media

Changelog:

v0.1.9:
  • Implement loading an existing annotation file at the start

Planned features and bugfixes for future releases:

  • Save, exit, and resume: be able to load existing annotation file
  • The YAML format was chosen because it is convenient and human-readable. However, in the future, the user should be able to choose output format (json, pickle, txt, Numpy array, etc.)
  • Fix seek bar synchronization with playback
  • Multiple button support for rapid multiclass annotation

Installation:

From pyPI using pip:

python3 -m pip install --upgrade [--user] pyMediaAnnotator

The --user flag installs it locally without needing root (optional).

If you are able to ensure the availability of GTK bindings from some other source, you could skip installing pyGTK:

python3 -m pip install --upgrade [--user] --no-deps pyMediaAnnotator

From source

  • Clone the repository

    • git clone https://gitlab.com/aalok-sathe/pyMediaAnnotator.git
    • cd pyMediaAnnotator
  • Make sure to have the necessary prerequisites:

    • pyGTK/pyGObject: Python GTK bindings
    • vlc, python-vlc: the VLC media player and Python bindings for libvlc

    $ python3 -m pip install --upgrade -r requirements.txt

  • Create Python package and install:

    • make build
    • python3 setup.py install

Usage:

$ pyMediaAnnotator

Screenshot (v0.1.2): example usage to annotate the laugh track in an episode of Friends ![example usage](scrsht-friends.png?raw=true Screenshot")

Compatibility:

  • GNU/Linux, *NIX [recommended]:
    • Expected to run smoothly with proper prerequisites
    • Tested on Ubuntu 16.04
  • Any other system:
    • Not tested, however, should theoretically work long as you are able to provide pyGTK and libvlc support

Bugs?

  • Get in touch. Please try to see debug output in terminal and save it if you notice a bug.
  • Contribute! PRs are welcome and will be reviewed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyMediaAnnotator-0.1.9.post2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

pyMediaAnnotator-0.1.9.post2-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file pyMediaAnnotator-0.1.9.post2.tar.gz.

File metadata

  • Download URL: pyMediaAnnotator-0.1.9.post2.tar.gz
  • Upload date:
  • Size: 7.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.6.8

File hashes

Hashes for pyMediaAnnotator-0.1.9.post2.tar.gz
Algorithm Hash digest
SHA256 8c533a1ea19f20f5ffb8bf7cf2736ddf6adf096fa23e4f37bf00ab6698a36e10
MD5 e196a330e1eed0ae4a35cbc6057f82dc
BLAKE2b-256 2b8bff9af82675443f616c1fc753b930d620c671d40654b1d2d9c67b4f961537

See more details on using hashes here.

File details

Details for the file pyMediaAnnotator-0.1.9.post2-py3-none-any.whl.

File metadata

  • Download URL: pyMediaAnnotator-0.1.9.post2-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.6.8

File hashes

Hashes for pyMediaAnnotator-0.1.9.post2-py3-none-any.whl
Algorithm Hash digest
SHA256 272fc841e5e3da0edbbd37bd3c957681ea2e691e43d984724fefa604ad75ea7f
MD5 5bd348304b372f38b5022d720de4ef74
BLAKE2b-256 31d680f6bd0c3e34eb7fe1f88372331cc00daded0e911543d0460de17c031811

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page