Cinera: Video Indexing & Publishing
The timestamps of an indexed video, at their heart, are very similar to chapter points in the DVD / Blu-ray releases of feature films. They give viewers a way to easily navigate to set points in a video.
Cinera, my video indexing system, extends on this notion of ease of navigation by allowing additional information – e.g. references (externally linked, where possible), quotes, topic / medium categorisation – to be encoded in timestamps, which viewers may use to navigate directly to websites referenced in the video, or even to filter out categories in which they are not interested or don't have time to watch.
Navigation is further eased across multiple videos through Cinera's search functionality, originally written by Asaf Gartner.
In essence, we capitalise on the fact that we are viewing the videos on a general purpose device connected to the internet – a fact on which DVD / Blu-ray authors cannot rely – coupled with the notion that the kinds of videos currently enjoying indexing treatment are not necessarily intended to be consumed in their entirety from beginning to end, but rather treated as reference material to dip in and out of, to create a context appropriate viewing experience.
Rather than read about it, however, you may prefer to watch Neo Ar's video How to Watch RISCY BUSINESS - The Annotated Episode Guide showcasing the system, and even try it all out for yourself since that very same video is itself indexed!
Cinera is written in C99, runs on Linux servers and depends on libcurl and stb_image. Its source is open and available here, although note that it is currently unlicensed and not yet packaged up for easy deployment (although, if we're honest, those installation and build instructions aren't much longer than this parenthetical remark).
What we have:
- for publishers
- configuration file parsing, with per-setting permission-based inclusion (see more below)
- multiple (and nested) sets of videos (dubbed "projects" in Cinera parlance)
- templating, for static website generation
- project themes
- asset hashing, for cache-busting purposes
- project and video art (incl. sprites)
- VoD platform support
- direct (e.g. a .webm file sitting on a server)
- resource efficiency (a single server may run many instances of Cinera with ease)
- runs on
- for indexers
- user-friendly markup language, hmml
- .hmml file monitoring, for on-save notice of warnings / errors while indexing
- config file inclusion, to augment the main config (with, e.g. media, credentials)
- for viewers
- inline references and quotes
- searching, project-wide and globally
- mobile-friendly layout
- desktop keyboard shortcuts
- client–server architecture, for dynamic websites and other interactive purposes
Still to come:
- new, scoped markup language, to support nested timestamps and other goodies
- references collation: per-project bookshelf; global library
- filterable search
- preview clips
- more use of project and video art
- frame-by-frame annotations (i.e. in-frame metadata)
- more VoD platforms
- FreeBSD port