Avisynth Virtual File System 2010.05.23 - 1.0.0.5 Overview -------- AVFS is a user mode file system for Windows which exposes the output of Avisynth scripts as virtual WAV and AVI files. This allows Avisynth to serve video and audio data to applications through the file system, without using the VFW or DirectShow APIs. The virtual AVI and WAV files consume no disk space. Some of the scenarios where this is useful include: - Serving data from 32 bit Avisynth and plugins to 64 bit encoders and media players. - Serving data through file shares to remote systems, potentially running non Windows operating systems. - Breaking complex scripts into stages that can be run concurrently on multiple systems. - Serving data to encoders or players that do not support VFW or DirectShow. License ------- AVFS is distributed under the same license as Avisynth. Refer to the included license.txt and gpl-2.0.txt . Installation ------------ Install the latest Pismo File Mount Audit Package from http://www.pismotechnic.com/download/ . Copy avfs.dll to a folder of your choosing. The c:\windows folder will work. From a cmd prompt run: pfm register c:\windows\avfs.dll If you later want to disable or uninstall AVFS, from a cmd prompt run: pfm unregister c:\windows\avfs.dll then delete the avfs.dll file. Operation --------- 1. Right-click on an AVS script in explorer. 2. Select "quick mount". The script will disappear and be replaced by a folder with the same name. 3. Browse into folder and use the *.avi and *.wav files. To unmount: 1. Right-click on AVS script folder in explorer. 2. Select "unmount". There are other ways to do things with Pismo File Mount, including a command line interface and a mount control utility. Notes/Tips ---------- You may need to add a ConvertToRGB24() to the end of your script in order to generate an AVI file that most things understand. In order to access a mounted script through a file share, you need to mount the script "system visible". This happens automatically if you are logged in as a privileged user (administrator), otherwise use the "mount" command instead of "quick mount", and select the appropriate option. When accessing virtual AVI files over a network, do not expect high frame rates. Uncompressed video data is really big. Typical throughput on a 100Mbit network will limit video processing to 10-15 720x480 YV12 frames per second. On a gigabit network achieving ideal transfer rates it is possible to get near 100 FPS, but typical gigabit throughput will yield more like 30 FPS. Realtime processing of high definition video is not possible on gigabit or slower networks. Refer to the included sample.avs script file. Support ------- AVFS is free software developed by volunteers. For community support, try the http://www.doom9.org forums. For development information try the Avisynth development forum at http://forum.doom9.org/forumdisplay.php?f=69 . Credits ------- AVFS is primarily the work by Ian B. and Joe Lowe. AVFS is useful only because of the work of many other individuals in the Avisynth project and other projects. Release History --------------- 2010.05.23 - 1.0.0.5 - Fixed audio truncation when no-interleave option is used in script. - Updated to newer PFM dev kit, build 154. - Added no-index and offline flags to virtual media files, to let explorer and shell extensions know not to open virtual media files. Requires PFM build 157 or later. 2008.08.08 - 1.0.0.4 - Fixed divide-by-zero fault when outputting clips that are shorter than 1 second. - Various output file format improvements. 2008.06.14 - 1.0.0.3 - No significant changes. 2008.06.09 - 0.0.0.2 - Added background read-ahead cache to improve CPU utilization on multi-core systems or when serving data through the network. Includes some tunability via AVFS_ReadAheadFrameCount script variable. - Added AVFS_AVI_VidFcc script variable, to allow overriding video format fourcc code. Useful to improve compatibility with specific encoders or readers that do not recognize the YUY2 or YV12 fourcc codes used by default. - Added some diagnostic/status tracing, visible using Pismo Trace Monitor. Shows the frame number and audio sample offsets that are being accessed to satisfy read requests. 2008.06.02 - 0.0.0.1 - First release