avisynth
v1.0.0
Published
Avisynth non-linear audio/video scripting facilities for Node
Downloads
48
Maintainers
Readme
avisynth
Avisynth bindings for NodeJS with a strong focus on ease-of-use.
A node module that you can use to process videos, images and sound with Avisynth, in a self-contained package.
- No dependencies
- Top code quality
- 100% code coverage for all files down to branches and statements
It currently only works in Windows (like Avisynth itself), but it may be possible, in theory, to add Linux support via Wine.
install
npm install -g avisynth
usage
It can be used both by scripts as well as from command line (also not requiring Avisynth to be installed, and possibly helpful for shell scripts in other languages).
Node usage:
var avisynth = require('avisynth');
var script = new avisynth.Script(); // Omitting "new" is also ok
script.code = 'Version()'; // Can also be passed to the constructor
script.sharpen(1); // Direct plugin and built-in calls
script.renderFrame('foo.png', function(err) { // Time offset optional.
console.log(err || 'foo.png saved!'); // Easy frame rendering.
});
script.run(function(err) {}); // Runs the script (with no output).
script.lint(function(err) {}); // Validates the Avisynth code.
// Still planning on adding more API, specifically video encoding.
Command-line usage:
avisynth-js info path/to/script.avs # Returns video info as JSON
avisynth-js lint path/to/script.avs # Validates a script, also JSON
Sample output for info
:
{
"width": 1280,
"height": 720,
"ratio": "16:9",
"fps": 29.97,
"fpsFraction": "30000/1001",
"videoTime": 3600,
"frameCount": 107892,
"colorspace": "YV12",
"bitsPerPixel": 12,
"interlaceType": "field-based",
"fieldOrder": "TFF",
"channels": 2,
"bitsPerSample": 32,
"sampleType": "float",
"audioTime": 3600,
"samplingRate": 48000,
"sampleCount": 172799827,
"blockSize": 8
}
docs
At the moment I'm working on a Wiki so soon there'll be docs there.