AVSLib is an extension library for the Avisynth non-linear video editing script language. The best way to think of AVSLib is as a general-purpose toolkit to Avisynth script developers for enhancing their ability to perform complex linear and non-linear video editing tasks.
Currently, AVSLib offers to Avisynth script developers, among other things:
- A new container datatype (the array) for all variable types (including clip arrays and mixed type arrays) and numerous functions, including operators, to handle entire arrays or slices of them in a single command.
- A large number of filters. Some offering
new capabilities to script developers while others being a convenience for grouping commonly
encountered processing steps in one call. Indicatively:
- A set of general purpose animation filters that support linear position, size and opacity animation on succesive frame segments and all arguments of the Overlay standard Avisynth filter.
- A set of general purpose per frame filters that support complex runtime scripts with embedded arguments and auto-generated global variables. Essentially, they play the role of runtime filters factory functions.
- A standard set of clip-editing filters which in addition allow user-specified functions for arbitrary post-processing of result's parts.
- A set of generic resize and stack filters for resizing / stacking either to fixed dimensions or to match specific dimensions or a target clip.
- Filter chaining and clip conversion utility filters.
- A set of channels manipulation filters and helper functions (to be considered still experimental; changes between successive AVSLib versions should be anticipated).
- A broad set of numeric, string, bool and clip script functions.
- A growing set of tools to debug scripts.
More are planned for the future; see the project's roadmap.
However, the more important thing is that AVSLib offers the tools for the developing of even more advanced applications. See the backgrounders/tutorials section and also the example scripts section of the documentation for technical information and real use cases.
Details, Specifications and Usage
Background information about the library's structure and specifications, naming conventions and reserved names is also available. In addition, the project's FAQs also provide information on common questions about the use of the AVSLib library. Installation instructions are provided on a separate page.
The library is implemented as a set of native Avisynth script language modules (customarily named with the .avsi extension), possibly backed up by (AVSLib-generated or 3rd party) Avisynth plugins, that can be imported into the script with the functions provided by the new in version 1.1.0 AVSLib loader.
The new installer will copy the loader and the library's load-config files inside the Avisynth plugins directory so that they auto-load. Thus, inside the script all that is needed to use AVSLib is to insert an appropriate combination of LoadLibrary, LoadPackage and LoadModule in order to load the desired components that your script needs.
Finally, don't forget in each new release of AVSLib to review the change log in order to be quickly informed about new additions, corrections and bugfixes.