Output

VSPipe

Synopsis

vspipe <script> <outfile> [options]

vspipe’s main purpose is to evaluate VapourSynth scripts and output the frames to a file.

If outfile is a hyphen (-), vspipe will write to the standard output.

If outfile is a dot (.), vspipe will do everything as usual, except it will not write the video frames anywhere.

Options

-a, --arg key=value

Argument to pass to the script environment, it a key with this name and value (str typed) will be set in the globals dict

-s, --start N

Set output frame range (first frame)

-e, --end N

Set output frame range (last frame)

-o, --outputindex N

Select output index

-r, --requests N

Set number of concurrent frame requests

-c, --container <y4m/wav/w64>

Add headers for the specified format to the output

-c, --preserve-cwd

Don’t temporarily change the working directory to the script directory (R54 compatibility) (The -c option is reused due to unfortunate reasons. If it is followed by y4m/wav/w64, then it’s treated as --container, otherwise, it’s treated as --preserve-cwd.)

-t, --timecodes FILE

Write timecodes v2 file

-p, --progress

Print progress to stderr

--filter-time

Records the time spent in each filter and prints it out at the end of processing.

-i, --info

Show video info and exit

-g, --graph <simple/full>

Print output node filter graph in dot format to outfile and exit

-v, --version

Show version info and exit

Examples

Show script info:

vspipe --info script.vpy -

Write to stdout:

vspipe [options] script.vpy -

Request all frames but don’t output them:

vspipe [options] script.vpy .

Write frames 5-100 to file:

vspipe --start 5 --end 100 script.vpy output.raw

Pipe to x264 and write timecodes file:

vspipe script.vpy - --y4m --timecodes timecodes.txt | x264 --demuxer y4m -o script.mkv -

Pass values to a script:

vspipe --arg deinterlace=yes --arg "message=fluffy kittens" script.vpy output.raw

AVFS

AV FileSystem is based on AVFS and shares most of its source code and functionality. This package has several uses. It can easily make a script file openable by any application, as it appears like a real, uncompressed avi file. It can also be used to bridge the 32/64 bit gap, since a plain file can always be read.

To use it simply run avfs in the core32 or core64 directories with the script name as argument. This will create a virtual file in C:\\Volumes.

The alt_output argument of set_output is respected and can be used to get additional compatibility with professional applications.

Avisynth Support

Note that this AVFS version is also compatible with Avisynth 2.6 and Avisynth+. When using Avisynth+ higher bitdepth output is also supported. The easiest way to obtain a recent version is to extract avfs.exe from the portable VapourSynth archives.

VFW

On windows, you can output video to VFW based programs.

If you install VapourSynth by installer, the VSVFW.dll is registered already

Else, you could register it manually, use register file below or use theChaosCoder’s batch.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{58F74CA0-BD0E-4664-A49B-8D10E6F0C131}]
@="VapourSynth"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{58F74CA0-BD0E-4664-A49B-8D10E6F0C131}\InProcServer32]
@="<your VSVFW.dll directory>\\VSVFW.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AVIFile\Extensions\VPY]
@="{58F74CA0-BD0E-4664-A49B-8D10E6F0C131}"