Coder Social home page Coder Social logo

oaubert / advene Goto Github PK

View Code? Open in Web Editor NEW
36.0 8.0 9.0 23.65 MB

Official Advene repository

Home Page: https://www.advene.org/

License: GNU General Public License v2.0

Python 93.38% Shell 1.14% C 0.05% Perl 1.56% JavaScript 1.82% CSS 1.37% Makefile 0.04% Batchfile 0.01% HTML 0.29% Dockerfile 0.01% NSIS 0.34%
python video annotation-tool annotation video-player hypermedia

advene's Introduction

Purpose of the software
=======================

The Advene project (Annotate Digital Video, Exchange on the NEt) aims
at providing a model and a format to share annotations about digital
video documents (movies, courses, conferences...), as well as tools to
edit and visualize the hypervideos generated from both the annotations
and the audiovisual documents.

With the Advene software, teachers, moviegoers, etc. can exchange
multimedia comments and analyses about video documents. The project
also aims at studying the way that communities of users (teachers,
moviegoers, students...) will use these self-publishing tools to share
their audiovisual "readings", and to envision new editing and viewing
interfaces for interactive comment and analysis of audiovisual
content.

Design
======

The software consists in a graphical user interface, integrating a
video player and an embedded webserver. The graphical user interface
is both the authoring and visualisation environment for hypervideos.

The application allows to :
  - create annotations linked to specific fragments of a video
  - link annotations through relations
  - structure annotations and relations through user-defined
    annotation-types and relation-types
  - query the annotations
  - specify rendering templates (called views) for the metadata and
    audiovisual document, which qualify as hypervideos.

All necessary metadata is stored in files called packages, that can be
exchanged independently from the audiovisual document.

Three categories of hypervideos are available in Advene: static views,
dynamic views and adhoc-views.

Static views are X(HT)ML templates that, applied on the annotations,
generate a HTML document. The HTML document is served through the
embedded webserver to a standard web browser. Snapshots from the video
(extracted on the fly) can be used in the template. It is also
possible to control the application (video player control, adhoc view
opening...) though URLs.

Dynamic views are augmented video renderings, guided by the
annotations. It is possible to caption the video, control the video
behaviour (pause, change position...), etc according to the
annotations.

Adhoc-views are programmed views available from the GUI. Among
available views are a timeline, a transcription view synchronized with
the video...

Basic use
=========

Sample packages are provided on the Advene website:

 http://advene.org/examples.html

Both the Nosferatu analysis and the Ted Nelson speech analysis can be
used as tutorials to go through the Advene features.

A user manual is also available at:

http://advene.org/wiki/

Copyright Information
=====================

This software is covered by the GNU General Public Licence
(version 2, or if you choose, a later version).

advene's People

Contributors

chrstn-hntschl avatar oaubert avatar pchampin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

advene's Issues

missing 'debian' folder

setup.py refers to a file debian/advene.desktop

advene/setup.py

Line 157 in 3fedf01

r.append( ( 'share/applications', [ 'debian/advene.desktop' ] ) )

but this file does not exist in the repository. Forgot a git add? ;-)

Shot Validation View doesn’t open in latest version (3.4)

The Shot Validation View doesn't open in the version 3.4 (also latest version from git: development version release/3.4-45-g3a167bb2 and development version release/3.4-57-gcaf59640).
The log messages show this Error:
16:09:16 - advene.core.controller - ERROR - General exception <class 'AttributeError'> 'ShotValidation' object has no attribute 'reparent_done' <traceback object at 0x7fbbae538048>
NoneType: None

Timecode Synchronization of video player (evaluation of test video)

After testing the test video in our advene setup we found some minor deviation of the timecode of the timeline/player and the burned-in timecode of the video. When playing and then pausing the video the timecode is either the same (see screenshot "Played&Paused2)
played paused2
or deviates by 40ms (25fps) ("Played&Paused1).
played paused1
However after clicking on the annotation with the deviation in the table view the timecode is synchronized. (see screenshot)
played paused1_after clicking on the annotation in table view
When clicking in the timeline the player timecode und burned-in-video timecode deviate by different amounts (approx. 5ms-30ms) (see screenshot "Clicking in the timeline_1)
click in timeline_1

This deviation stays the same when maneuvering frame forward or backward. (see screenshot: click in timeline_1
![click in timeline_1_1frame forward]

print() function and a few undefined names

flake8 testing of https://github.com/oaubert/advene on Python 3.6.3

$ flake8 . --count --select=E901,E999,F821,F822,F823 --show-source --statistics

./lib/advene/model/_impl.py:443:27: F821 undefined name '__dummy'
            self.__base = __dummy(base_uri)
                          ^
./lib/advene/plugins/montagerenderer.py:98:17: F821 undefined name 'logger'
                logger.warn("STATE %s %s %s", old.value_nick, new.value_nick, pending.value_nick)
                ^
./lib/advene/plugins/montagerenderer.py:100:17: F821 undefined name 'logger'
                logger.warn(" EOS")
                ^
./lib/advene/plugins/montagerenderer.py:104:17: F821 undefined name 'logger'
                logger.warn("MSG %s %s", bus.get_name(), s.to_string())
                ^
./scripts/package_sorter.py:70:54: E999 SyntaxError: invalid syntax
            print "Error: cannot find begin time for ", a.attrib['id']
                                                     ^
1     E999 SyntaxError: invalid syntax
4     F821 undefined name '__dummy'
5

Win32 installer

While Advene runs from sources on Windows platform, an installer should be provided, which would install all necessary dependencies. The Advene 1.x win32 installer script should be rewritten.
Projects like Quodlibet or MyPaint are also python/gtk based (even gstreamer-based for Quodlibet) and provide Windows installers. They should be a good reference.

"Merge package"-function: display of elements as tree-view

In the menu "Merge package" we would suggest a display of the elements to be merged in form of a tree-view:
Annotation types --> individual annotation type --> individual annotations
In this way each annotation could be easily assigned to a specific annotation type. Furthermore one should be able to select individual annotation types to merge/import all annotations of this type with one click.

Splitting an Annotation in Shot Validation View

When trying to slplit an annotation in shot vlaidation view by clicking on a frame while holding ctrl the log shows the following error:
17:32:24 - Shot validation view: Cannot split annotation #37: out of bounds.
When I then enter timline view and select "Split annotation at player position" its no problem and the division works fine.

Performance Issues Shot Validation View

90 min Film with approx. 1500-2000 recognized cuts. Advene freezes regularly for approx. 20-30 sec when merging annotations or changing annotationborders for one frame.

"Saving as" problem in Version 3.1.

Annotationfile won't save. After klicking on "Saving as" and defining Save Location and name the dialogue closes (as normal) but there was no file created and the old filename and "(*)" is displayed on the border of the program window.
Timeline view was closed at the moment of saving so it doesn't seem to be the known bug.
In-program log messages do not register any saving issues.

EDIT: The normal "save" seems to be still working
EDIT: An "ö" in the Filename was the problem. Perhaps an error message would warn the user and prevent data loss

Timeline should not try to display unmanageable number of annotations by default

Loading a package with large (many thousands) number of annotations leads to a degraded user experience, mostly because the timeline does not scale to this quantity of annotations. A proper timeline optimisation should be done (but in this case, a trade-off should be found with interactive features), but in the meantime, its behaviour should degrade more gracefully.

Window opens outside of the visible desktop

On Windows 7 Advene sometimes opens a window outside of the visible area of the desktop. The window can only be retrieved with short keys. This happens with and without a secondary screen connected.

Package cannot be saved

During annotating saving the progress isn't possible anymore. When I click "Save package" or "Save package as" (i tried multiple different locations) this error appears: "Could not save the package: [Errno 2] No such file or directory: 'c:\users\USERNAME\appdata\local\temp\adv_9xp4q\content.xml'"
Windows 7 - Version 1.0

Integrate package saving inside git repository

In order to facilitate collaboration and versioning, facilities should be provided to enable easy git commit of packages (ideally in xml format so that diffs are readable) from the interface.

Import Package-Function: Doesn't open as popup-menu/window

  1. When clicking on import package the window doesn't open as a popup-menu but right to the videoplayer.
  2. When detaching the view in its own window the width of the window cannot be reduced so that fits to the screen size. Is it a fixed width?
  3. In contrast to the "merge package-function" the import package-window doesn't close when clicking on OK to import the annotations. Another click on OK will import the annotations again. Closing the window seems a good option the signal a successful import of the annotations.

Input of multiple values in autocomplete and Quick Fill

A useful feature would be the possibility to annotate multiple values with autocomplete and Quick Fill (i.e. in annotation types where multiple values are allowed).
In Autocomplete: After a seperator (space?) autocomplete-Suggestions start again/ work again.
In Quick Fill: First ideas: Either by a timeframe (All numbers entered in a specific timeframe) or by another seperator: So one would enter: Number ShortcutForSeperator Number
A Follow-Up-Idea could be also relevant for the ontology: syntax elements like [TO] could become values in itself and could then be entered via autocomplete or Quick Fill.

Search function in table-view

The search function in table-view is easily triggered: When starting to write while the input field isn't properly activated the search function begins automatically. Because the search function is barely used during the annotation-process to opt out from this function would advance annotating in table-view.

Zoom value of timeline in saved views

When saving a view of the timeline the zoom value of the timeline is not correctly saved. (Changing e.g. from 77% to 59% when reopening the saved view or 100% to 77%.)

Shot Validation View: Missing Screenshots

In Shot-Validation-View sometimes Screenshots are missing. Especially the first Screenshot of an annotation. According to our observation this happens predominantly with mp4/h.264 files. The same video as avi (mpeg-4 video codec) doesn't produce the problem. (Tested with the Win 7 version)

Saving views of timeline not possible

After right-clicking on timeline and then "Save view" the new popup-dialogue doesn't open (Saved views in the package can still be opened when opening a new timeline) (Setup: Parallels Ubuntu 17.04/ Advene 3.0)

How can I synchronize all annotations with a movie file?

Is there a way to offset all annotations tracks in order to sync them with a video?

When I open the Nosferatu package and associate it with a fresh copy of the movie downloaded from archive.org (Nosferatu-mid-3.mp4), I notice that the annotations are not in sync with the movie file. In my case, the movie is about 14 seconds behind the annotations.

For example, the first annotation on the actor track (Jonathon Harker) starts at 2:27.533 but the image that corresponds to this annotation starts at 2:41.900.

I'm searching the Wiki but cannot find anything yet.

Thanks

the video is all striped

I try to import an MP4 video but the video is all striped
thank you very much for this wonderful job

This is my log:
administrator@natale14:~/Scaricati/advene-master/bin$ python3 ./advene
You seem to use a development tree at:
/home/administrator/Scaricati/advene-master.
WARNING:root:Using specified path /home/administrator/Scaricati/advene-master
root WARNING Advene v. 3.9 release 20210127 run at 28/01/21 11:05:15 CET on linux
advene.gui.main INFO Using localedir /home/administrator/Scaricati/advene-master/locale
advene.util.audio INFO Using gstreamer to play sounds
advene.core.mediacontrol WARNING mediacontrol: using gstreamer
advene.player.gstreamer WARNING using gtksink
advene.core.controller INFO Registering Log messages
advene.core.controller INFO Registering Trace Timeline view
advene.core.controller INFO Registering HTML content handler
advene.core.controller INFO Registering Shot validation view plugin
advene.core.controller INFO Registering Default GUI actions
advene.gui.main INFO Cannot register TracePreview: the goocanvas python module does not seem to be available.
advene.core.controller INFO Registering Trace preview
advene.core.controller INFO Registering Trace view
advene.core.controller INFO Registering Default content handlers
advene.core.controller INFO Registering Kinect view/control plugin
advene.core.controller INFO Registering Package importer view plugin
advene.core.controller INFO Registering Videoplayer view plugin
advene.core.controller INFO Registering Interactive query plugin
advene.core.controller INFO Registering Timeline view plugin
advene.core.controller INFO Registering Relation display plugin
advene.core.controller INFO Registering EditionHistory view plugin
advene.core.controller INFO Registering Bookmarks view plugin
advene.core.controller INFO Registering Link view plugin
advene.core.controller INFO Registering ActiveBookmarks view plugin
advene.core.controller INFO Registering Edit accumulator view plugin
advene.core.controller INFO Registering Annotation display plugin
advene.core.controller INFO Registering Package finder view plugin
advene.core.controller INFO Registering Transcription view plugin
advene.core.controller INFO Registering Tagbag view plugin
advene.core.controller INFO Registering Element tabular view plugin
advene.core.controller INFO Registering TALES browser view plugin
advene.core.controller INFO Registering Montage view plugin
advene.core.controller INFO Registering AnnotationImporter view plugin
advene.core.controller INFO Registering Note-taking view plugin
advene.core.controller INFO Registering GStreamer video recorder
advene.core.controller INFO Registering Dummy video player
advene.core.controller INFO Registering GStreamer video player
advene.core.controller INFO Registering Sound enveloppe importer
advene.core.controller INFO Registering Scenechange detection filter
advene.core.controller INFO Registering Youtube XML importer
advene.core.controller INFO Registering AdA RDF exporter
advene.core.controller INFO Registering VIAN importer
advene.core.controller INFO Registering Anvil importer
advene_app_plugins_brltty WARNING BrlTTY connection error: couldn't connect to b':0' with key b'keyfile:/etc/brlapi.key+polkit': b'connect: File o directory non esistente'
(brlerrno 11, libcerrno 2, gaierrno 0)
Is BRLTTY really running?
advene.core.controller INFO Registering BrlTTY actions
advene.core.controller INFO Registering Video montage renderer
advene.core.controller INFO Registering Motioncell detection filter
advene.core.controller INFO Registering DCP importer
advene.core.controller INFO Registering TurTLe (RDF) importer
advene.core.controller INFO Registering WebAnnotation importer
advene.core.controller INFO Registering AdA rdflib exporter
advene.core.controller INFO Registering Dominant color importer
advene.core.controller INFO Registering AdA OWL importer
advene.core.controller INFO Registering HPI plugin
advene_app_plugins_tts INFO TTS: Automatically using Generic TTSEngine.
advene.core.controller INFO Registering Text-To-Speech actions
advene.core.controller INFO Registering ShotDetectApp importer
advene.core.controller INFO Registering Keyword extraction plugin
advene.core.controller INFO Registering TED transcription importer
advene.core.controller INFO Registering Cinelab importer
advene.core.controller INFO Registering MPEG7 importer
advene_app_plugins_pocketsphinx WARNING Cannot register speech recognition: Pocketsphinx plugins not found. See http://cmusphinx.sourceforge.net/wiki/gstreamer for details.
advene.core.controller INFO Registering Speech recognition
advene.core.controller INFO Registering Base importer collection
advene.core.controller INFO Registering Transcriber importer
advene.core.controller INFO Registering Final Cut Pro XML importer
advene.core.controller INFO Registering Shot detection importer
advene.core.controller INFO Registering Feature detection importer
advene.core.controller INFO Registering Undo Manager
advene.core.controller INFO Registering ELAN importer
advene.core.controller INFO Registering Audio segmentation importer
advene.core.controller INFO Registering AnnotationGraph importer
advene.core.controller INFO Registering AEIDON importer
advene.core.controller INFO Registering ShotDetect XML importer
advene.core.controller INFO Registering WebAnnotation JSON-LD exporter
advene.gui.main INFO Package new_pkg loaded: No annotation and No relation.
advene.gui.main INFO Loaded package Template package
advene.player.gstreamer WARNING check player
advene.gui.main INFO Activating package Template package
advene.player.gstreamer WARNING Problem when seeking into media

advene

Tagging of annotations: All tags uncolored when deleting a tag

When deleting the tag of one annotation, all other annotations that have been tagged are uncolored, though they are still tagged. (Creating a new tag with the same name but a different color causes that all annotations prior tagged are colored in the new color, even the one the tag was completely deleted from.)

Problem installing on Ubuntu 20

Hello,

When installing on Ubuntu 20, i get this:

The following packages have unmet dependencies:
advene : Depends: gir1.2-webkit-3.0 but it is not installable
E: Unable to correct problems, you have held broken packages

Could you help me?

Best regards,
Waldir

Text loss in table view

When writing an annotation text in table view clicking on another application (e.g. browser for looking up a word in the dictionary) the entered (but not yet apllied- by pressing enter) text is immediately deleted from the text input mask and the previous annotation content is restored.

This does not happen in the quick edit mode where the text input-field stays open and the text-draft is preserved.

Screenshot Discrepancy

In the note taking editor advene uses sometimes a different screenshot for the timemarker than the main videoplayer shows. This becomes apparent when creating a timemarker at the end of a shot. The main videoplayer shows the first image of the next shot while the time-marker-screen-shot shows the last frame from the previous shot. Probably it is just a visual discrepancy and not relevant for the underlying timecode.

Table View: ENTER opens edit view when being in the wrong column

In the table view ENTER opens up the edit view when the wrong column is selected. This can happen after closing an annotation in the Content-Column and then moving to the right with arrows. In this case the Type-Column will be selected and ENTER opens up the edit view. The selection of the column is not visualized and creates therefore problems in the quick navigation within the table view.

Shot Validation View: last cuts not accessible

When using the shot validation view it just stopped showing cuts in the SVV (in the example used) around TC 01:40:32 after having set around 791 cuts, even though there should have been some more cuts to see in the SVV (in the annotation timelime these cuts were visible though)

Timeline problems with longer videos

A further observation concerning the timeline problems when dealing with more than 1k annotations in a file:
We annotated the first scene of a film with 1200 annotations and we used a video of only this first scene. Even with this amount of annotations advene ran relatively smoothly.
When we then switched the video for a video file of the whole film advene had massive lags (also after waiting for several minutes to create all neccessary screenshots).
So not only the number of annotations but also the length of the video file seems to be important for the capacity problem.

advene fails to start if $(HOME)/.config directory does not exist

This is the stacktrace I receive when running advene from a docker container with no $(HOME)/.config directory available. After creating .config manually, advene starts normally

christian@9eeaaa998dc8:~/advene/bin$ ./advene
You seem to have a development tree at:
/home/christian/advene/lib.
Traceback (most recent call last):
  File "./advene", line 61, in <module>
    import advene.core.config as config
  File "/home/christian/advene/lib/advene/core/config.py", line 908, in <module>
    data.check_settings_directory()
  File "/home/christian/advene/lib/advene/core/config.py", line 495, in check_settings_directory
    os.mkdir(self.path['settings'])
OSError: [Errno 2] No such file or directory: '/home/christian/.config/advene'

Static non-interactive view of the whole package

For the purpose of further evaluation of a package with a large amount of annotations we propose a static non-interactive view of the whole package (cf. SVG export) that allows for resource-saving navigation and could be supplemented by additional elements of analytic layers.

Timeline: Zoom values change by resizing inspector-box/ annotation types-overview

By Resizing the inspector-box (right to the timeline) to the left the visible part of the timeline shrinks and the zoom values drop without changing the size of the annotations. The same is true for the box on the left side of the timeline. In some projects 100%-view (complete overview of the annotations of the projects without horizontally scrolling) is only possible when hiding inspector-box and annotation types-overview. Otherwise the zoom value is locked to a lower percentage. Pressing the + or - buttons or entering a numeric value doesn't help to reach 100%.

Sound Enveloppe doesn't create Annotations

When processing a .mp4 video with mpeg AAC audio codec the Sound Enveloppe filter does only create an annotation type but no annotation. Changes in number of samples and selecting only one of the stereo channels doesn't solve the problem.
The advene video player has no problem with the audio codec.

'Display whole movie' doesn't work

Right-clicking on the timeline icon open opens a context menue where 'Display whole movie' appears as an option. But clicking it doesn't change the timelineview at all, no matter which zoom-percentage is initially chosen.

Timeline column resizing issue

On Ubuntu 16 (not Ubuntu 17), resizing the legend column of the timeline by dragging the handle in the top-part of the component (next to the timecode marks) does not resize the legend column.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.