Git Product home page Git Product logo

harvid's Introduction

harvid -- HTTP Ardour Video Daemon

Harvid decodes still images from movie files and serves them via HTTP.

Its intended use-case is to efficiently provide frame-accurate data and act as second level cache for rendering the video-timeline in Ardour.

Download

Apart from the source-code and packages from your linux-distributor, binaries are available for OSX, Windows and Linux at http://x42.github.com/harvid/ .

Usage

Harvid is a standalone HTTP server, all interaction takes place via HTTP. After launching it, simply point a web-browser at http://localhost:1554/

The OSX bundle and window installer come with a shortcut link to launch the server. On Linux or with the OSX package, harvid is usually started from a terminal by simply typing harvid<enter>.

Harvid can also be run directly from the source folder without installing it. Get its build-dependencies (see below), run

make
./src/harvid

When used from ardour, ardour will automatically start the server when you open a video. Ardour searches $PATH or asks your for where it can find harvid. The easiest way is to simply run:

sudo make install

Harvid can be launched as system-service (daemonized, chroot, chuid, syslog), and listen on specific interfaces only in case you do not want to expose access to your movie-collection. However, is no per request access control.

For available options see harvid --help or the included man page which is also available online at http://x42.github.com/harvid/harvid.1.html

Build-dependencies

ffmpeg is used to decode the movie. The source code should be compatible and compile with libav.

For encoding images, libpng and libjpeg are required.

Internals

Harvid is highly concurrent makes use of all available CPUs. It will spawn multiple decoder processes, keep them available for a reasonable time and also cache the video-decoder's output for recurring requests.

The cache-size is variable only limited by available memory. All images are served from the cache, so even if you are not planning to use the built-in frame cache, the cache-size defines the minimum number of concurrent connections.

Interface

The HTTP request interface is documented on the homepage of the server itself: http://localhost:1554/

The default request-handler will respond to /?file=PATH&frame=NUMBER requests. Optionally &w=NUM and &h=NUM can be used to alter the geometry and &format=FMT to request specific pixel-formats and/or encodings.

/index[/PATH] allows to get a list of available files - either as tree or as flat-list with the ?flatindex=1 as recursive list of the server's docroot.

/info?file=PATH returns information about the video-file.

Furthermore there are built-in request handlers for status-information, server-version and configuration as well as admin-tasks such as flushing the cache or closing decoders.

The &format=FMT also applies for information requests with HTML, JSON, CSV and plain text as available formatting options.

harvid's People

Contributors

dvzrv avatar elenril avatar trofi avatar x42 avatar

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.