advene icon indicating copy to clipboard operation
advene copied to clipboard

Feature Request: Linear timecode input and output

Open adiac opened this issue 10 months ago • 1 comments

Feature Request:

  1. Input: Advene should take a linear timecode as input and forcefully synchronice the video playback to it in realtime.
  2. Output: Advene should output the videos current playback timecode as linear timecode on a separate audio device.

Background: I just started tinkering with Advene. As warning: I'm greatly misusing the software for different purposes, but so far it is the best solution I've found.

So I'm a lighting technician and use Advene to go through videos that will be played live on stage and add annotations for light scenes to it. The timeline is a great visual tool to help me know at which point the current running live show is and what kind of ques or manual trigger come up next.

I can imagine that such a feature could be useful in other applications as well, when synchronization with other tools in required.

adiac avatar Feb 19 '25 16:02 adiac

There are no misuses of the software, just unanticipated uses, and I am very interested in them. Your requests are actually very doable in Advene:

  • for the time input, the time source it the main video player. In addition to the gstreamer player component, there are 2 other available video players, which can be selected through Player/Select Player (or -p option). One is gstrecorder which actually records a video instead of playing it, this allows live annotation of live video stream. The other one is dummy which is just a time source (used for debugging or just checking things). You can use the latter (https://github.com/oaubert/advene/blob/master/lib/advene/player/dummy.py) as a reference to use a different time source, providing no real video output, and then using additional video players (controlled by the main source, see http://advene.org/screencasts.html#use-multiple-video-players-100 ) to display the video.
  • outputting the timecode on a separate audio device could not be done constantly, you need to have some sort of segmentation. Using Advene dynamic views, you can create a view that is triggered at the beginning of every annotation and pronounce the annotation begin timecode (with the expression ${annotation/fragment/formatted/begin}

oaubert avatar Feb 19 '25 18:02 oaubert