View Full Version : Avisynth virtual file system
joe48
1st January 2008, 20:19
Update
-------
AVFS 1.0.0.6 released, 2015.03.25
The latest release of Avisynth Virtual File System is available at:
http://www.turtlewar.org/avfs/
The package includes a readme.txt file with installation instructions and release notes.
For users of prior version of AVFS, things have changed. AVFS is now an executable, not a DLL. The installation is now simpler, but some explorer integration is lost. Also, the required Pismo File Mount (PFM) build 174 now implements mounting differently, through a c:\volumes folder instead of a virtual mount point placed over the AVS script.
End Update
-----------
I would like to help build an open source or freeware Avisynth virtual file system. This would allow a user to mount an Avisynth script, exposing a virtual uncompressed AVI file through the file system. This would provide alternative solutions for:
- chaining non VFWAPI enabled video processing tools.
- chaining tools that are running on different systems.
- chaining between 32 bit and 64 bit tools.
I have the Windows system extension work completed for this, see http://www.pismotechnic.com/ . If someone is willing to help who has Avisynth/VFWAPI/AVI code experience and resources, I believe things would come together pretty quickly.
Gerard V
1st January 2008, 21:29
FWIW this is an excellent concept - provides a means for a Linux port by mounting an avs script as a file system which can be accessed by other apps, bypassing the VFW issues entirely.
IanB
1st January 2008, 22:53
This sounds like an automagic MakeAvis implementation, could be very interesting.
This could be a very good way of mapping audio only scripts to a *.WAV file. This has always been a pain as currently they end up appearing as an Audio only *.AVI file, which of course most apps turn there noses up at.
Question :- if you AVFS *.avs files thru to there resulting AV streams how do you propose to edit the underlying script text?
joe48
2nd January 2008, 02:45
I'm not familiar with AVFS.
With the Pismo File Mount system extension on Windows, files are mounted/unmounted manually by the user, not automatically based on name or type. This is done through mount/unmount commands in explorer context menus, or from the command line through the pfm.exe command. While mounted, the file appears as a folder, the contents of the folder provided by a user mode file system.
A user would edit the .avs file, mount it, access the resulting .avi (or .wav), unmount, edit the .avs file some more, etc..
IanB
2nd January 2008, 07:13
AVFS="Avisynth virtual file system"
While mounted, the file appears as a folder, the contents of the folder provided by a user mode file system.So you "mount" fred.avs, then access fred.avs\fred.avi or fred.avs\fred.wav
Would it then be possible to access fred.avs\fred.avs so you could edit the script without having to unmount/remount fred.avs (assuming you "compile" the script at each open of fred.avs\fred.avi).
All up this sounds pretty easy. The application opens the fred.avs\fred.avi, internally you have a "map" of the file's .avi structure. As the application read bytes from the file, you PClip->GetFrame() and/or PClip->GetAudio() to populate the user buffer with the appropriate data.
What do you need? Is the Pismo source available?
joe48
2nd January 2008, 07:46
Ian,
I did a quick search for AVFS after your first post. It hit on a Linux project that allows transparent mount of archive file contents. I guess that wasn't what you were referring to. I like the acronym AVFS. It's not like it is really possible to avoid acronym collisions.
I think we're on the same page. The file system could be written a number of different ways. Like you mention, the source for the avs script could be echoed into a virtual file to allow it to be edited without unmounting. Could also dynamically change portions of the script based on the name of the output file that is opened, so opening the out.avi would run a slightly different script than opening out.wav.
fred.avs
+- script.avs
+- out.avi
+- out.wav
(or fred.avi, fred.wav, like your example)
To get started, a basic mode would be a single output avi file with Avisynth initialized only at the initial mount. This would avoid multiple instances of the filters running in a single process. Maybe that's not an issue.
IanB
2nd January 2008, 08:06
So where to from here?
joe48
2nd January 2008, 08:28
What I need to get started is another developer who can do the things you mentioned earlier.
Most of what I'll provide is already included in the Pismo File Mount Audit Package. This package includes a developer document, headers files, and a few C/C++ sample formatters (user mode file systems). Still, I can speed up the PFM specific parts of the development, do troubleshooting, etc..
To start with I can put together the basic AVFS formatter source, minus the actual AVI/Avisynth bits. I need to know the general parameters first:
C or C++?
Allow edit of AVS file while mounted?
Virtual file naming conventions?
Source code repository?
AVS file type recognition strategy?
Tools? (I prefer the SDK compilers myself)
The Pismo File Mount Audit Package can be downloaded from http://www.pismotechnic.com/download/ . It is a freeware utility that allows mounting if various archive file formats, and includes the PFM development kit. The audit package exists and is licensed for free use by individuals, business users, developers, and to be used as an enabling system extension for other freeware and open source projects.
If you are willing to work with me on this, send me a PM and we can continue offline.
hanfrunz
5th January 2008, 13:33
i came up with similar ideas years ago, hopefully now someone is coding it :-) here are the links to older threads:
http://forum.doom9.org/showthread.php?t=44028
http://forum.doom9.org/showthread.php?t=49383
http://forum.doom9.org/showthread.php?t=103426
i'm not a filessystem/driver programmer, but i'll help whereever i can.
regards,
hanfrunz
joe48
5th January 2008, 18:15
Coding is in progress. The driver bits were already done. AVFS is pretty simple as file systems go. Things should come together pretty quickly.
I expect some longer term work will be needed to add output file format options, to allow compatibility with more video processing programs.
sh0dan
6th January 2008, 13:33
Feel free to contact me, if you need additional, or help coding some of it.
I can help with various audio formats, and avisynth internals.
Fizick
14th January 2008, 18:49
Probably it was related discusion?
http://forum.doom9.org/showthread.php?t=108653
joe48
14th January 2008, 20:10
I hadn't read that thread. It is related.
I have finished the file system bits for AVFS. The code is on sourceforge in the module avfs at the root of the avisynth2 CVS repository. It builds with MSVC6 and has been through some developer testing.
http://avisynth2.cvs.sourceforge.net/avisynth2/avfs/
What is finished is a virtual file system that allows you to "mount" an avs script, turning it into a folder that contains an empty virtual media file and an editable copy of the script file.
Not finished:
1. Determine the initial names and sizes of the virtual media file(s).
- use stream info from avisynth and options from avs file to determine appropriate file format for virtual media file.
- support spanned media files, for the varios 32 bit file size limitations.
- support different media file formats, wav, avi1, avi2.
2. Handle virtual file read requests.
- figure out which frames and audio are needed for a range of bytes in the virtual file.
- read frames and audio from avisynth and fill the read buffer.
- fabricate any file or frame headers needed for portions of the read buffer.
Anyone interested in working on these remaining bits, send me a PM.
hanfrunz
16th January 2008, 11:10
two wishes:
-support for uncompressed bitmap sequences (TIFF, TGA, YUV, ...)
-support for uncompressed Quicktime-MOV
regards
hanfrunz
IanB
16th January 2008, 21:43
@Hanfrunz,
It would help if you did the google homework and find the references needed to write the file formats.
Zarxrax
24th January 2008, 18:29
Hmmm, would it be possible for this to support multiple files?
For instance, if I have a folder of 100 avisynth scripts, could they all be mounted?
joe48
24th January 2008, 18:54
Mounting and unmounting files is a manual action, but you can simultaneously mount as many files as you want. Each mount is handled by an instance of AVFS+Avisynth running in a dedicated pfmhost.exe process. You will be able to do things like feed the output of 2 scripts into a 3rd script.
Mug Funky
24th January 2008, 22:33
on quicktime support:
http://forum.doom9.org/showthread.php?t=104293
there should be some useful stuff there about stuffing yuy2 into a mov file, although i think it uses quicktime itself to handle it, so it may not work for virtual filesystem stuff.
one question:
would this work over a network? could i for example create an AVFS folder on the SAN here from one computer (an 8-core PC with dual fibre-channel connection to the SAN), and load it on another machine (a mac edit suite)?
it'd be truly awesome to be able to dump an avs straight into final cut pro, and render it there for realtime playback, especially considering the colour problems with quicktime (ie, if you use quicktime to export a mov, it'll bugger up the colours in a peculiar and unrecoverable way - something like YUV to RGB with made-up coefficients and some kind of gamma "correction").
i'm not sure if this would be possible though, bearing in mind the network share in question is a mac one, running who-knows-what filesystem.
IanB
25th January 2008, 05:18
@Mug Funky,
Ta! muchly (but the idea was to make Hanfrunz earn his keep :D )
Well we have the .WAV file virtualization working (this is a trivial file format) and as far as I can see W2K3 (at least) cannot tell there is anything different from real files in the same file tree. In fact for testing as this box has no sound card I shared the upper directory and accessed the virtual files remotely. Beeeuuudy!
squid_80
25th January 2008, 06:26
Sorry to be a spoilsport, but what happens if the .wav file is >4GB (5.1 channels etc.)?
hanfrunz
25th January 2008, 18:31
hello,
here are some fileformat specs:
TGA (http://www.dca.fee.unicamp.br/~martino/disciplinas/ea978/tgaffs.pdf)
TIFF (http://partners.adobe.com/public/developer/tiff/index.html)
regards,
hanfrunz
Shinigami-Sama
25th January 2008, 21:47
just to be a stick in the mud
will the eventually be made cross platform, or would that be to much effort?
Adub
26th January 2008, 22:49
I sure hope so. I am getting more and more excited about this, especially if this were to be used in conjunction with David Horman's Avisynth cluster plugin. He said he was having problems with networking file access. This should make things a little bit easier.
joe48
27th January 2008, 01:36
Network access of AVFS files will work fine so long as the user creating the mount has administrator privileges, and the mount is created with "everyone read" access.
A Linux version of AVFS is feasible, assuming a native Linux port of Avisynth. The PFM/Windows specific code in AVFS would be replaced with Linux/Fuse code.
IanB
27th January 2008, 08:32
@Squid,
Current design provides sequential segmented wave files when total size exceeds 2GB. Longer term we may provide alternate formats like .W64 that is popular and doesn't have a limit.
1st cut we will probably provide a single .WAV for 0 to 4Gb and 1GB? segments for 1GB-> hugh (it costs nothing to provide parallel virtualizations).
In the 1st cut of .AVI will follow the same size modeling. Doing >4gb .AVI files involves an extra indexing and internal segmentation layer, that will make a quick implementation into an epic saga. So hugh .AVI will be phase 2.
IanB
27th January 2008, 08:42
@hanfrunz,
But you said you wanted .MOV :D
hanfrunz
28th January 2008, 11:03
@hanfrunz,
But you said you wanted .MOV :D
of course:
Official Apple Developer Site (http://developer.apple.com/documentation/QuickTime/)
Quicktime Fileformat (pdf) (http://developer.apple.com/documentation/QuickTime/QTFF/qtff.pdf)
:)
Mug Funky
7th February 2008, 10:41
i'm really looking forward to seeing some kind of quicktime support :)
not to hassle anybody of course, but given the current state of quicktime, avisynth + qtinput/qtoutput is the only way to avoid colour shifts within quicktime. this is a massive problem that crApple steadfastly refuse to even admit the existence of, but can be plainly seen even on uncalibrated monitors with an untrained eye.
...hmm, seems i'm offloading some of my frustration to the wrong place :).
basically, an AVFS would give a working link between the grading suite and the online suite without having to go to a tape intermediate (which has it's own problems, thankyou very much nVidia/Assimilate). it would also be quite fast - just drop the virtual mov in, render, then output. rather than hours of fannying about with image sequences in final cu't pro.
Gerard V
7th February 2008, 22:37
JMTCW. To keep this practical and to avoid feature creep, I would recommend that the initial project limit itself to whatever capabilities a chosen version of Avisynth has built in, and works to deliver that via a VFS on Linux. Call that phase 1. When that works, additonal capabilities can be added, and ports to other OSes envisgaed. Too much too soon will kill this project which has somewhere between 0.5 and 2 developers based on my assessment of the posts above. Keep it simple or it'll remain in the just another good idea state.
hanfrunz
3rd March 2008, 16:05
Uuhm is there any progress with this tool? I love the idea of a virtual FS and it could be so usefull in a production enviroment. Think of serving a DVD perfectly resized and processed to a discreet inferno 2k project via ftp (TGA-Sequence) with a normal Workstation without TB of harddiskspace...
regards
hanfrunz
joe48
3rd June 2008, 03:30
The first release of Avisynth Virtual File System is now available. The package includes a readme.txt file with brief installation instructions. It is available for the time being at:
http://www.turtlewar.org/avfs/
Remember, this is a first release. Chew slowly.
Getting it to this stage has taken a significant amount of work by Ian B and myself.
Joe L.
Shinigami-Sama
3rd June 2008, 03:44
question
can this be chained?
as in
PC1 -> de-interlace -> resize -> share
PC2 -> mounts share -> processes ( sharpen/denoise ect)
if so I might have to start collecting those relativly low powered PCs again
joe48
3rd June 2008, 03:57
question
can this be chained?
as in
PC1 -> de-interlace -> resize -> share
PC2 -> mounts share -> processes ( sharpen/denoise ect)
I hope so. Someone still needs to prove it. I have fed a virtual AVI back into a second script, and a few months back I tested through a file share.
Joe L.
Shinigami-Sama
3rd June 2008, 04:13
I hope so. Someone still needs to prove it. I have fed a virtual AVI back into a second script, and a few months back I tested through a file share.
Joe L.
awesome
may be able to put some older hardware to good use again with this
hanfrunz
3rd June 2008, 10:59
:D
great!!!
i hope i understand the source and can help with further file formats.
Could you write a simple sample for let's say an uncompressed raw RGB32 File, so new developers can quickly understand how all this works?
And is it possible to generate image sequences in an extra folder?
EDIT:
using this very simple script: colorbars(320,240)
i get an error with virtualdub 1.7.8. (stable): AVI Truncated or invalid audio format (16 byte, should be 18).
Fileinfo says Compression: Unknown (tag 0003)
regards
hanfrunz
joe48
3rd June 2008, 15:38
And is it possible to generate image sequences in an extra folder?
Changes are needed to support virtual files in a sub-folder. I might work on this next, whenever next is.
using this very simple script: colorbars(320,240)
i get an error with virtualdub 1.7.8. (stable): AVI Truncated or invalid audio format (16 byte, should be 18).
I missed adding a sample.avs to the package. Try this:
--- clip ---
ColorBars()
ConvertAudioTo16bit()
ConvertToRGB24()
--- clip ---
Joe L.
Zarxrax
3rd June 2008, 16:20
Wow, this is awesome! I have a few questions:
I notice it creates some fake uncompressed files. Do these files actually take up the amount of space on your hard disk that they report?
Does this create any performance hit compared to accessing the avs directly?
Will there be any problems mounting and accessing many avs scripts at the same time with this?
joe48
3rd June 2008, 16:44
Do these files actually take up the amount of space on your hard disk that they report?
Data comes straight from Avisynth, no intermediate hard disk space is used.
Does this create any performance hit compared to accessing the avs directly?
Ian did some perf tests a while back, indicated it was slightly slower. If anyone runs some perf tests they should post numbers.
Will there be any problems mounting and accessing many avs scripts at the same time with this?
No arbitrary limits on number of mounted scripts. Each script is handled by a separate process.
pwolfamv
3rd June 2008, 19:03
This is awesome, great work. I did a few tests. The one i'm most concerned about is an HD source test which is mostly about loading time.
My source is 1920x1080 and the filesize in the vfs is about 400gb. It took about 5-10 minutes to load it into vdub compared to the seconds it takes to load just the script (or a file of similar size). Of course, after loading the file, it seeked like normal.
Is this something that can be worked on, or is this just a limitation of the virtual file system, that anyone who uses this will have to deal with?
joe48
3rd June 2008, 19:34
It took about 5-10 minutes to load it into vdub compared to the seconds it takes to load just the script (or a file of similar size).
Script loading should not be any slower with AVFS. I am seeing script loading take ~5 sec per DirectShowSource() in the script, with similar load times for AVFS as for reading the script directly with Virtualdub.
pwolfamv
3rd June 2008, 21:44
Script loading should not be any slower with AVFS. I am seeing script loading take ~5 sec per DirectShowSource() in the script, with similar load times for AVFS as for reading the script directly with Virtualdub.
I'm just letting you know. The test i did was using a 90gb lagarith encoded avi (1920x1080) using avisource().
I did another test with the original EVO sources using ffmpegsource and it took about a minute or two to load. the file size in the vfs was about half the size.
Mug Funky
5th June 2008, 08:55
haha! sweet. now i can load any video i want into scratch via quicktime and converttorgb24(). excellent.
[edit]
even better, if i share this on the network it still works! i can load avs files into final cut pro and play them to digi now, so long as the processing and network speed are fast enough (which should be fine for standard def at least).
in case anyone wants to do this:
- make your avs, put "converttoyuy2()" at the end. make sure the avs file is somewhere shared on the network.
- mount it the long way, so you can give "everyone" read permission
- go to your mac, open the avi file, ignore the "baaw! no codec" error, save a reference movie, open that ref movie in textedit, searchreplace "YUY2" with "yuvs" (this is case sensitive), and it should magically work. with FCP in "unlimited RT" you may be able to play out as-is, otherwise just render it and know it's more reliable than qtoutput...
i haven't tried ingesting into avid yet, but i'm sure that works too.
Smetvid
5th June 2008, 16:08
This thing works great so far!
I tried it with Avid Liquid by treating the clip as RGB. Avid Liquid never works with anything and it will only load DV, RGB and mjpeg avi files. The clips even come in with the correct properties and settings. The only problem is they are very very slow. I get about 1 fps playback with these clips even though I am just feeding a mjpeg sample that plays perfectly fine in Liquid when I import it directly. The only problem is that Liquid thinks it is a realtime clip and it expects it to playback at full speed. The only way to do a force render is to put an effect on the clip. I never expected this stuff to playback in RT but it would be nice if it could be a little bit faster.
joe48
5th June 2008, 16:31
I get about 1 fps playback with these clips even though
Is the 1fps due to processing in the script, or do you think there is some sort of compatibility problem?
Things you could try:
- Try the virtual AVI in VirtualDub, see if it plays faster.
- Copy the virtual AVI to a real file and try it.
- Save the virtual AVI through VirtualDub and try it. VirtualDub has more mature AVI formatting logic.
- Monitor pfmhost.exe (and ...) CPU usage in task manager.
Joe L.
Zarxrax
5th June 2008, 18:28
The only problem is that Liquid thinks it is a realtime clip and it expects it to playback at full speed. The only way to do a force render is to put an effect on the clip. I never expected this stuff to playback in RT but it would be nice if it could be a little bit faster.
That sounds exactly like a problem that Premiere Pro has if you are using the avisynth script import plugin with it. It "expects" the clips to be able to play in realtime, but they often can't, and you have to put an effect on them to make it render.
Smetvid
5th June 2008, 19:18
To be totally fair this is a 1920x1080 clip and perhaps avisynth just doesn't handle HD all that fast.
I tried the clip in virtual dub and it plays a little bit faster but not much. I think it is around 5 fps.
cpu usage is around 42% on my single 3.0 Ghz cpu with 2 GB of ram.
Again this HD mjpeg clip will play perfectly fine on this system in it's native form.
Shinigami-Sama
5th June 2008, 21:03
To be totally fair this is a 1920x1080 clip and perhaps avisynth just doesn't handle HD all that fast.
I tried the clip in virtual dub and it plays a little bit faster but not much. I think it is around 5 fps.
cpu usage is around 42% on my single 3.0 Ghz cpu with 2 GB of ram.
Again this HD mjpeg clip will play perfectly fine on this system in it's native form.
try turning off HT
I had to do that a few times to get certain clips to play smoothly
joe48
10th June 2008, 00:33
Available at: http://www.turtlewar.org/avfs/
Changes
--------
- Added background read-ahead cache to improve CPU utilization on multi-core systems or when serving data through the network. Includes some tuneability 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.
mikeytown2
10th June 2008, 12:53
Running andLinux (http://www.andlinux.org/) Beta 1 (04/21/2008), and using cofs (http://colinux.wikia.com/wiki/Cofs_device) to access the NTFS drive, andLinux can not read the fake dir. This is not a show stopper because it can be read using a sambia share. Just thought i would let you know. The problem probably exists in cofs since direct NTFS reading is still experimental.
http://img176.imageshack.us/img176/1474/andlinuxavsfsjo1.th.jpg (http://img176.imageshack.us/my.php?image=andlinuxavsfsjo1.jpg)
Thanks for developing AVFS, its quite amazing!
joe48
10th June 2008, 17:04
Running andLinux Beta 1 (04/21/2008), and using cofs to access the NTFS drive, andLinux can not read the fake dir.
I can guess as to why COFS access does not work. The Windows half of the COFS code may open files as system instead of as the user who is running Linux. If so then there will be other effects, like the inability to access NTFS encrypted files, bypassing some 3rd party Windows security software, maybe even privilege escalation vulnerabilities. Anyway, just guessing.
A work-around in Pismo File Mount is probably possible. It is not an AVFS specific problem.
Adub
10th June 2008, 19:34
So, wait a second. Could I use this to create an avs script on one computer, have another linux computer connect to that script via network share, and then use my linux computer to encode that script? Is all avs processing done on the host computer? Like am I feeding raw data to my linux computer?
I am thinking that I might be able to apply this so that I run all of my scripting on an Avisynth and AVFS enabled XP machine, and then via a gigabit network, send the raw data a 64-bit Gentoo install were I encode the final output using mplayer with x264.
joe48
10th June 2008, 20:12
I am thinking that I might be able to apply this so that I run all of my scripting on an Avisynth and AVFS enabled XP machine, and then via a gigabit network, send the raw data a 64-bit Gentoo install were I encode the final output using mplayer with x264.
This should work. Post your results if you try it. Most interesting is how much CPU utilization you are able to get on each machine. Ideally at least one of the machines would have one CPU core fully utilized.
Adub
10th June 2008, 21:06
Cool. I can't do it yet, but I might be able to get it working this summer. If I do (or don't) get it working, I will be sure to post back.
Adub
11th June 2008, 20:35
Okay!! I got it working!! Which is good. However, it's disappointingly slow.
Here is what I did:
Log into windows, and then share my working folder.
I mount that shared folder in my linux machine with "sudo mount -t smbfs //ip.add.res.s/Videos /media/share"
I can browse around the shared folder and play the files using mplayer. I can even encode them!! Now, here is where the example comes in.
If I take my example file, and stream it directly to x264 via mencoder, I can get around 122fps on the first pass and ~12.18 fps on the second pass.
However, if I use AVFS, I get around 15fps on the first pass. I didn't even test the second pass.
The script was very simple, just a basic "Directshowsource("example.mkv")". I don't know if there is something I can do to improve it, but right now it's too slow for me to use in my encoding pipeline.
Edit: And as to CPU utilization, I didn't get above 20 % on either machine. The one running AVFS barely went above 10.
Shinigami-Sama
11th June 2008, 20:42
betcha your network maxed out
SMB is stupidly inefficient...
Adub
11th June 2008, 20:57
But, that makes no sense. Using the same network and same mounting techniques, I got 122 fps without using AVFS to 15 fps using AVFS. That makes little sense.
Unless.....Oh!!! Is it because I am sending UNCOMPRESSED? And that would result in bigger frame sizes, thus resulting in the decreased network speed, thus the decreased encoding speed. Is there a better alternative to SMB?
Note: This was on a 100mb network. Maybe if I can't fix it with an alternative to SMB, would an upgrade to 1000mb network work?
mikeytown2
11th June 2008, 21:00
Okay!! I got it working!! Which is good. However, it's disappointingly slow.
Since the network seems to be the bottleneck, make AVS the bottleneck. What i mean is, this would be useful when the AVS script takes 100% cpu, because then the network would no longer slow you down. So the idea of using this would make since when using monster scripts.
Also for alt to SMB i found this thread
http://www.neowin.net/forum/index.php?showtopic=308559
Edit: look at the taskman networking tab to make sure the network is maxing out
Edit2: If your looking at 10GB net (http://www.google.com/products?q=dual-port+10Gb+network&oe=utf-8&scoring=p), its about 400 bucks per computer...
joe48
11th June 2008, 21:03
However, if I use AVFS, I get around 15fps on the first pass. I didn't even test the second pass.
RGB24 AVI at 720x480 is ~1MB per frame. 80% of 100Mbit network is ~8fps. 30% of 1Gbit network is ~30fps. The frame rates double for YV12. Depending on your network, 15fps may be all you can hope for. The 2nd pass may run at the same speed though.
(Hope I got the math right)
Shinigami-Sama
11th June 2008, 21:13
RGB24 AVI at 720x480 is ~1MB per frame. 80% of 100Mbit network is ~8fps. 30% of 1Gbit network is ~30fps. The frame rates double for YV12. Depending on your network, 15fps may be all you can hope for. The 2nd pass may run at the same speed though.
(Hope I got the math right)
maybe passing it off to an i-frame only lossless codec could speed it up?
huffman maybe
should double or so the network access
shouldn't be to hard to do either
mikeytown2
11th June 2008, 21:46
maybe passing it off to an i-frame only lossless codec could speed it up?
huffman maybe
should double or so the network access
shouldn't be to hard to do either
VLC (http://www.videolan.org/) sounds like it could do the job. Speaking of VLC, could it accept avs files for input (http://forum.videolan.org/viewtopic.php?f=14&t=38283)?
Adub
11th June 2008, 22:23
Okay, so it IS my network. Let me see if I can find a gigabit card for my laptop.
Shinigami-Sama
12th June 2008, 10:39
actually
cold the fake AVI file be passed off to a http server? I don't see why not
you could easily have a script pass it off to a lossless encoder
though I guess that might not work for some applications...
IanB
12th June 2008, 12:04
People need to consider the data being virtualized here is big, really big. A RGB24 1920x1080 24fps progressive stream is 149,299,200 bytes per second. Even a YV12 (4:2:0) 720x480 60i is still 15,552,000 bytes per second. This is 24% more than the theoretical maximum transfer of a 100Mb/s ethernet (probably more than twice the practical throughput). These numbers are even a small chunk out of a 800MHz FSB memory channel at around 6,400,000,000 bytes per second.
joe48
12th June 2008, 17:58
Lossless compression in AVFS is not a solution to network bandwidth problems. AVFS would need to preprocess (compress) all frames to figure out file layout and indexing. It would make more sense to skip AVFS and losslessly encode to a real AVI file.
Serving over a network is still useful when the CPU overhead of the script and encoder are limiting throughput below what the network can handle.
Adub
12th June 2008, 19:29
Yeah, this is making more and more sense. Looks like I have a nice project to work on over the summer! I just need to setup a decent gigabit network, and look at my filter chain to see if I can change the bottleneck to be the avs, not my network.
Zarxrax
14th June 2008, 20:26
I've found a very strange bug. I have a folder full of a few hundred avisynth scripts, and all of them contain the line
AssumeFPS("ntsc_double")
I was going through mounting each one, one at a time, and i noticed that some of them would mount fine, but when i tried to mount others, it would crash. On these that failed to mount, I discovered that I could get them to mount by simply removing the AssumeFPS line. That's really strange though, since all of my scripts have that line, and some of them work. I've determined that it is this specific line that it causing it to crash though, in many of my scripts.
joe48
17th June 2008, 07:53
I've found a very strange bug. I have a folder full of a few hundred avisynth scripts, and all of them contain the line
AssumeFPS("ntsc_double")
If you can get me a sample exhibiting the problem I can look at it. Send me a PM.
morsa
20th June 2008, 17:48
Could something simillar to "FireHose" from Cinelerra be modified for our uses?
Quark.Fusion
21st June 2008, 18:13
About compression on network: did someone tried open share over compressed vpn link?
Quark.Fusion
21st June 2008, 18:32
Also about networking with avisynth: avisynth already have networking functionality with TcpServer(), will it work with mounted file?
What about adding multithreaded Lagarith compression for networking to AVFS? For user this can look like adding two variables to avs file with port number and compression method (like in TcpServer), on other side user will mount special file, that will re-create avi file in virtual filesystem (like using TcpSource). Of course all functionality already here (you can just mount TcpSource() avs file), but it is with ugly code (i was read that somewhere) and without lagarith compression.
joe48
25th June 2008, 21:50
I've found a very strange bug. I have a folder full of a few hundred avisynth scripts, and all of them contain the line
AssumeFPS("ntsc_double")
If you can get me a sample exhibiting the problem I can look at it. Send me a PM.
The bug Zarxrax found is a divide-by-zero with clips that are less than 1 second long. I will have the fix in the next release.
joe48
25th June 2008, 21:58
What about adding multithreaded Lagarith compression for networking to AVFS? For user this can look like adding two variables to avs file with port number and compression method (like in TcpServer), on other side user will mount special file, that will
TcpSource and AVFS should interoperate fine.
I am not very familiar with TcpSource. It should not be necessary to know the compressed size of each frame in advance, so lossless compression could be implemented...
tally3
6th November 2008, 02:02
TGA sequences would be really useful!
http://www.organicbit.com/closecombat/formats/tga.html
thommyfilm
6th November 2008, 06:46
hello! sounds like very good work. one (maybe dumb) question: you say you would add output file format options. would it be possible to show an mpeg4 h264 file on the filesystem instead of a avi file? this should happen without reencoding. the input files are already mp4 h264 files.
krieger2005
6th November 2008, 10:01
You can't do it without reencoding. Every change, which you made with an avisynth-script to your video must be reencoded. This is a simple Law:
-> No change -> No Reencoding -> You don't need to use avisynth
-> change (in anyway) -> need reencoding
mikeytown2
6th November 2008, 10:08
@thommyfilm, thats what MeGUI is for ;)
Adub
6th November 2008, 18:34
Uh, guys, I think he is asking if support for a "fake" mp4 front could be added in addition to the "fake" avi front. I don't know why this could be, as everything supports avi, while mp4 is much more limited.
IanB
7th November 2008, 00:33
Also would programs that accept MP4 containers handle uncompressed video and audio data. I suspect not.
joe48
23rd November 2008, 21:22
There may be some performance changes when AVFS is used with the latest PFM Audit Package (build 048). I changed the caching in the file system driver to use 256k blocks instead of 48k. I did not test this against AVFS, probably should have...
I have some optimizations in the works for Pismo File Mount that will improve AVFS performance. Mainly there will be buffering improvements to eliminate extra data copying. It will be a while before I get this out, probably January.
Joe L.
Adub
23rd November 2008, 22:59
Great!! I look forward to the next release!
Thanks for your hard work joe48.
hanfrunz
25th November 2008, 16:38
I have another wish. Is it possible to mount multiple .avs to one virtual folder or drive? So lets say i have clip1.avs, clip2.avs and i like to have \clips\clip1.avi and \clips\clip2.avi? So i could import two files via drag and drop to my encoder.
that would be realy helpful.
regards,
hanfrunz
joe48
25th November 2008, 17:29
I have another wish. Is it possible to mount multiple .avs to one virtual folder or drive? So lets say i have clip1.avs, clip2.avs and i like to have \clips\clip1.avi and \clips\clip2.avi?
On vista you might be able to fake this using a file search.
If the \clips\ folder is a real folder then this would be difficult. On vista it could maybe be done by having avfs create and delete NTFS symbolic links.
If the \clips\ folder is a virtual folder, then it would require more UI, probably an .avs file list mount file. It also would result in multiple avisynth instances running in a single process, which might be problematic.
hanfrunz
26th November 2008, 12:11
On vista you might be able to fake this using a file search.
filesearch is a very good idea and should work on xp as well, thanks!
mikeytown2
24th December 2008, 09:43
Any chance of adding YUV output as well as RGB?
http://forum.doom9.org/showthread.php?p=1218241#post1218241
IanB
24th December 2008, 13:20
@mikeytown2,
:o :o It already does. :o :o
AVFS outputs the exit format of your Avisynth script, RGB24, RGB32, YUY2 or YV12
paulvdb
27th December 2008, 08:17
I can't get this to work. I download and installed Pismo and then registered the avfs dll. When I mount an avs file it creates a new folder with that same avs file in it and a file called error.log which just context the text "(null)". Should I do anything else to get it to work? I've tried this with several avs files including the sample.avs that came with AVFS. I'm using Windows XP SP2 with all the latest updates.
paulvdb
29th December 2008, 14:32
I managed to solve my problem by upgrading avisynth. Apparently AVFS doesn't work with avisynth 2.56.
joe48
23rd March 2009, 19:36
I released a new version of Pismo File Mount Audit Package earlier this month, build 050.
This new version has some substantial changes to buffering and caching to eliminate unnecessary memory copying. Depending on data sources and AVS scripts, there might be some performance increase using AVFS on build 050 and later. No changes to AVFS itself were necessary, so the AVFS build has not been updated.
Build 050 also uses 128kb sized cache buffers in the driver, instead of 256k in build 047-048, and 48k in build 046 and earlier. This only affects client applications that do not do unbuffered I/O.
Joe L.
Quant
17th August 2009, 14:32
And how about BoxedApp SDK (http://boxedapp.com/). I heared, that this SDK is for emulating file system and registry too? Does anybody use this?
a451guy451
11th December 2009, 23:59
I love this thing, but it only lets me host virtual files (that my Mac can see) on shared folders physically on the host windoz machine. Is there a way to get files on independent network storage to work, because while SD sourced files work great HD stuff chokes on my ethernet card? Right now, I technically can make virtual files on network storage, but they are only accessible as such via my host machine which defeats the purpose. Or perhaps this is impossible and I need to go buy a 10gbps ethernet card... Thanks for any input!
a451guy451
12th December 2009, 00:31
Oops. I think I'm having a FSB bottleneck, not ethernet. Just swapped my penrin host machine with an i7 and it dramatically improved.
Oddly enough, if I connect to my virtual folder from any PC on my network, everything works great. It seems my Mac is having a personal problem (or perhaps quicktime is specifically). Does anybody else make virtualfiles using HD sources and use them on their Mac? I'm low on apple expertise, and am not really sure how to troubleshoot the system for the bottleneck there.
Dreadkillz
21st December 2009, 22:06
Hi, I would really love to use this, but whenever I so much as select the avi file from my script, my folder explorer would just freeze. I checked that pfmhost also grows in memory usage by a lot. Loading the virtual file is A LOT slower than loading the actual script file for me. Also, the heavier that my filters are, the slower it is to load. BTW, I have an XP with AMD 3600 x2
joe48
31st March 2010, 20:30
Hi, I would really love to use this, but whenever I so much as select the avi file from my script, my folder explorer would just freeze. I checked that pfmhost also grows in memory usage by a lot. Loading the virtual file is A LOT slower than loading the actual script file for me. Also, the heavier that my filters are, the slower it is to load. BTW, I have an XP with AMD 3600 x2
Performance is often slower with AVFS than a frame served or VFW accessed AVS, but it depends on the script and on the program accessing the virtual AVI file. The problem is not that AVFS adds any significant overhead to rendering, because it doesn't (there are file systems built on PFM doing hundreds of MBs per second sustained throughput). The problem is that the programs accessing the virtual AVI files often issue reads that require frames to be rendered that the application does not use.
With the limited types of scripts I use, the performance issue I see is a delay when opening the virtual AVI. This is caused by sloppy reads of the AVI file headers and indexes inadvertently causing unneeded frames to be rendered.
There may be some things that can be done with the tunable AVFS parameters in the script to improve performance. Also, someone with some C/C++ coding experience, who is seeing performance issues, could experiment with caching and/or padding in a custom avfs.dll.
IanB
31st March 2010, 22:26
... but whenever I so much as select the avi file from my script, my folder explorer would just freeze. I checked that pfmhost also grows in memory usage by a lot. ...
Various tools and explorer plugins like to 'investigate' .AVI files. And then there are virus scanners and security products. It is crucial these never be allowed to read through the contents of the pseudo .AVI files. If they do then the pseudo contents has to be rendered. If it takes 2 hours to render the full Avisynth script, then it will take 2 hours to read through the pseudo .AVI file.
Joe, does PFM have knowledge of the "Application name" when a pseudo file access happens? Could various applications be black listed and the returned contents just be 1 big zero fill. Or maybe a white list so only say VirtualDub.exe, X264.exe and Vegas*.exe get to see the rendered pseudo contents.
... The problem is that the programs accessing the virtual AVI files often issue reads that require frames to be rendered that the application does not use.
... This is caused by sloppy reads of the AVI file headers and indexes inadvertently causing unneeded frames to be rendered. ...
In the original implementation, I went for up tight maximum packing in the pseudo AVI file. On reflection perhaps a sparse highly padded approach would have been better.
In an AVI structure 'JUNK' segments can be freely used to align/pad other data segments, this is normally done when capturing uncompressed video to match the clustering alignment of physical disks and maximise performance.
It would be trivial to have the frame data aligned on some nice round offset (say 64K or more) and add a 'JUNK' padding/guard block between each frame chunk. The data contents in the 'JUNK' blocks doesn't even matter, so no actual memory transfer/zero fill needs to occur, further boosting performance.
I assume the marshalling code is happy if no actual data is written to the application's buffer.
_____________________________________
Case study :- On mapped Linux systems the /dev/zero driver can apparently achieve throughputs of 100's of GB/s, way in excess of the actual memory bandwidth of the host CPU. This is achieved by zero filling 1 physical memory page and mapping it repeatedly onto the users buffer. E.g. App does a 1Mb _read of /dev/zero, on a modern CPU one might expect this to take 40 microseconds (25GB/s), profile the _read call and it only takes 5 microseconds (200Gb/s). Woooohoooo!
joe48
1st April 2010, 00:17
Various tools and explorer plugins like to 'investigate' .AVI files. And then there are virus scanners and security products. It is crucial these never be allowed to read through the contents of the pseudo .AVI files.
.....
Joe, does PFM have knowledge of the "Application name" when a pseudo file access happens? Could various applications be black listed and the returned contents just be 1 big zero fill. Or maybe a white list so only say VirtualDub.exe, X264.exe and Vegas*.exe get to see the rendered pseudo contents.
No current mechanisms exist in PFM to allow the formatter to change behavior based on the process name. If it were supported, it would only be available during open, not at read.
But, I really do not like this sort of a solution. It looks like a quick fix, but it has a lot of drawbacks.
Examples:
1) Explorer related I/O, such as various shell extensions, is going to happen in the open dialog in applications in the white list.
2) Some of the anti-virus products and system extensions open files and do I/O in the context of the triggering process (this is true of prefetch as well).
3) Some apps/plugins may do work out-of-process, so the user has to track down the name of processes they did not run and add them to the white list.
4) Dllhost.exe, rundll32.exe, and the like.
One thing that should help is to set the FILE_ATTRIBUTE_OFFLINE flag on the virtual media files. This is a trivial change to avfs.dll. I would have done this originally, but it was not supported two years ago when we first put AVFS together. This flag will convince explorer to leave the file alone, only show default icon, etc.. Many 3rd party shell extensions and applications also honor this flag, otherwise they are unusable in enterprise environments that use any sort of HSM. The shell extensions that do not check this flag should be bugged back to the developer.
The anti-virus issues can be handled (usually) with exclusions. Well, if the anti-virus product does not support user exclusions then the user might want to look for another vendor.
In the original implementation, I went for up tight maximum packing in the pseudo AVI file. On reflection perhaps a sparse highly padded approach would have been better.
...
It would be trivial to have the frame data aligned on some nice round offset (say 64K or more) and add a 'JUNK' padding/guard block between each frame chunk. The data contents in the 'JUNK' blocks doesn't even matter, so no actual memory transfer/zero fill needs to occur, further boosting performance.
I can not recall if there were any compat issues with the padding between frame and audio chunks. There is the existing AVFS_AVI_NoInterleave option to disable interleaving the audio and video chunks. Some more padding options would probably be useful.
The below thread indicates the no-interleave option solves some performance issues. I am suspicious about the comment that it introduces audio sync issues, but this is the sort of compat trouble that playing with the index and with padding is likely to cause.
http://www.dvinfo.net/forum/canon-eos-5d-mk-ii-hd/140473-intermediate-codecs-windows-users-2.html#post990122
Robert Martens
1st April 2010, 02:15
Talk about a small world; after years of lurking, I registered an account here a few weeks ago to post about an Avisynth helper script I'd developed. I ended up revising it practically every other day, though, and thought it best to wait until I'd settled on something more stable before bringing it up here, so I have yet to get around to that (maybe later tonight, actually), but I was just browsing the boards and stumbled across this.
As evidenced by my username, I'm the same guy from the aforementioned DV Info Net thread. It's been over a year since I last experimented with the AVFS as it applies to 5D Mark II Quicktime files, so I'm a little fuzzy on the details, but yes, I do remember that while there was a performance improvement brought about by AVFS_AVI_NoInterleave, we subsequently ran into an issue with A/V sync. Barely being able to "Hello, World!" my way out of a wet paper bag, I was and still am in no position to diagnose the cause, and the simplest solution was just avoiding that option. Ultimately I believe most people started using a Cineform transcoding solution for their 5D (and now 7D and T2i) footage for use in their NLEs.
I still have the sample clip I was using for tests in that DVi thread (on the same system, no less, with the same processor, RAM and hard drives, though now I'm using Avisynth 2.5.8 MT), and I'm happy to help if there's anything I can do as far as testing. Or, at least, shedding some light on that particular discussion. It's been awhile, but I'm sure I could remember the details if you have any questions.
joe48
1st April 2010, 16:31
I do remember that while there was a performance improvement brought about by AVFS_AVI_NoInterleave, we subsequently ran into an issue with A/V sync.
....
and I'm happy to help if there's anything I can do as far as testing. Or, at least, shedding some light on that particular discussion. It's been awhile, but I'm sure I could remember the details if you have any questions.
If you get a chance, could you rerun the test with and without the no-interleave option and verify the audio sync issue comes and goes?
Robert Martens
1st April 2010, 20:20
Turns out more had changed than I remembered, in that I had been using the CoreAVC decoder and loading the fake AVI files into a trial copy of Vegas Pro. I've downloaded Vegas too many times now (I've needed it more than once to help someone diagnose a problem; it now tells me the trial period has expired, so I can't register the download), and pathetic as it may seem I can't throw any money at CoreAVC for the moment.
I have nonetheless confirmed the behavior in question by other means. I have ffdshow-tryouts version 3154 installed, and I have the H.264/AVC "decoder" dropdown set to ffmpeg-mt for both DShow and VfW, since I find that performs best on my system.
I created a simple script, AVFSsynctest.avs, containing these lines:
AVFS_AVI_NoInterleave=false
DirectShowSource("C:\Downloads\mvi_1419.mov")
ConvertToRGB24(matrix="PC.709")
The source clip doesn't appear to be in the same place as when I grabbed it, but that Vimeo user referenced in the DVi thread has made the clip available here: http://drop.io/larktav
I swapped NoInterleave between true and false, and commented out the ConvertToRGB line for a couple of tests. The script was mounted with the latest PFM/AVFS, the files were opened in Liquid 7.2, combustion 3.0.4, and MediaInfo, and the script was explicitly Unmounted between each change. Results were as follows:
1.) NoInterleave=false->DirectShowSource->ConvertToRGB24->Liquid 7.2
On a 1080/30p timeline (exactly 30p, not 29.97), everything displays as if it's fine; the audio in the AVI file shows up as being the same duration as the video, as do the two WAV files generated (AVFSsynctest.wav and AVFSsynctest.00.wav). I'm inclined to believe this is a quirk of the NLE, however, thanks to tests 3 through 8.
2.) NoInterleave=true->DirectShowSource->ConvertToRGB24->Liquid 7.2
Same as 1; everything looks fine, durations all appear to match.
3.) NoInterleave=false->DirectShowSource->combustion 3.0.4
Here's where the first sign of trouble begins. The video track is reported as 491 frames, but audio is reported as 490 whether I load it from the AVI container or either of the WAVs.
4.) NoInterleave=true->DirectShowSource->combustion 3.0.4
Even stranger; the durations behave as in test 3, but trying to load the AVI as an audio source causes only the last ten frames or so to display a waveform in the combustion interface; further, the audio track is silent even during those ten frames. The WAVs as audio sources had the 490 duration, but played back without issue.
5.) NoInterleave=false->DirectShowSource->ConvertToRGB24->combustion 3.0.4
For tests 3 and 4 I had initially removed the ConvertToRGB line, as combustion doesn't require it, but thinking it might have some impact on my results I restored the line and tried again. Results were identical to test 3.
6.) NoInterleave=true->DirectShowSource->ConvertToRGB24->combustion 3.0.4
Same as number 4.
7.) NoInterleave=false->DirectShowSource->ConvertToRGB24->MediaInfo
Finally, I loaded the phantom files in MediaInfo 0.7.19 to see what it could tell me, and found that in this case the AVI video track showed a duration of 16s 366ms, and the audio a duration of 16s 333ms. The external files, AVFSsynctest.wav and AVFSsynctest.00.wav, were also both 16s 333ms.
8.) NoInterleave=true->DirectShowSource->ConvertToRGB24->MediaInfo
Changing only the NoInterleave option, this time I found the AVI video track was its expected 16s 366ms, but the audio packed into the AVI had shrunk to 15s 867ms. AVFSsynctest.wav and AVFSsynctest.00.wav, though, were both 16s 333ms, as I'd seen in the other examinations.
All of this is in line with what we experienced in that thread; I was unclear at first, but as soon as I saw those numbers in MediaInfo I remembered running into the same audio-shrink last time.
IanB
1st April 2010, 22:22
Joe, Seems you have a bug, you forget to put back the 0.5 secs of preload when not in interleave mode.
joe48
2nd April 2010, 03:58
@Robert, I sent you a PM with a link to a test build of AVFS. It would be great if you could give it a look.
joe48
2nd April 2010, 21:36
As Ian noted, AVFS is truncating .5s off the audio stream when the no-interleave option was set, creating an invalid AVI file. I put together a fix for this and Robert verified it resolved this issue. The fix will be in 1.0.0.5, which should be out pretty quickly.
The extra frame in the virtual AVI compared to the source file (491/490, 16.366s vs 16.333s) seems related to the DirectShowSource and ffdshow-tryout setup. Using FfmpegSource the frame count and duration are correct, verified by Robert. I have given up on reproducing this as I have been unable to get DirectShowSource and ffdshow-tryout to work on my system, a 2 yr old Vista 64 install.
The "open as audio only" issues are probably limitation of the specific application. I expect most applications will have trouble with non-interleaved audio, that was my experience during the initial AVFS development.
Thanks for the help Robert.
Robert Martens
2nd April 2010, 22:32
You're welcome, I'm glad to be of service.
I think I've finally learned my lesson, and I'll stick to FFmpegSource and DGDecode for my non-AVI files from now on. Loading the clip as audio-only is likewise something I don't foresee a need for, interleaved or not, so if I need an external file as an audio source I can simply use the WAV files AVFS creates.
Thank you for the fix, I'll be sure to append that DV Info Net thread with the information once 1.0.0.5 is released!
joe48
3rd April 2010, 01:43
I know a few pople have worked out how to setup scripts so AVFS will work with specific products, such as Quicktime and Final Cut Pro. In particular, being able to import without converting to RGB.
I would like to get this info in the AVFS readme to save some users having to figure this out, or giving up trying. Please post any tips you think will help.
Also, anyone who has had problems with things like explorer, shell extensions, anti-virus, content indexer, etc., causing grief by reading the virtual AVI files, get that info posted here as well so I can look into it.
JoeH
4th April 2010, 22:30
Hi Joe!
Thanks for this product. I use it together with DGIndexNV in order to import H264 / VC1 files directly into Sony Vegas Pro 8 for editing. I find that final rendering is about 25% faster than this way compared to using an intermediate codec, and obviously it's great for disk space.
The only difficulty I have found is that the thumbnails in Vegas are painted very slowly - it takes about 10 seconds usually to paint the whole timeline of thumbnails. In comparison, if I use an intermediate codec it takes around 1 second.
I have an NVidia 9500 GT which is reading the video using DGIndexNV. As Vegas can't import AVS scripts, I use your AVFS to create an AVI which I import. Any ideas for getting improved performance on the thumbnail creation?
joe48
5th April 2010, 20:05
Hi Joe!
The only difficulty I have found is that the thumbnails in Vegas are painted very slowly - it takes about 10 seconds usually to paint the whole timeline of thumbnails. In comparison, if I use an intermediate codec it takes around 1 second.
....
Any ideas for getting improved performance on the thumbnail creation?
I do not have any experience with Vegas (or any other pro editing tools for that matter), so do not know any specifics. Things are going to be slower with NLE tools since you have the script overhead for every frame that is touched by a read from the editing app.
You may be able to setup your script so that you can easily disable/enable the more time consuming processing steps. Use the script with the time consuming steps disabled when doing editing, then enable full processing and reopen your project before generating final output.
Jim_Pansen
26th June 2010, 17:46
I found the AVFS today & I'm very impressed! It matchs my needs for using AVS scripts in my workflow.
It speeds up my workflow immediately!
THX a lot for developing this!
Great tool!
Jim
kolak
22nd September 2010, 20:17
Is there a way to implement V210 at the output, so in case of 10bit codecs (v210, Cineform, ProRes, DNxHD) we could keep this precision?
It's a great and simple piece of software :)
Thanks,
Andrew
IanB
22nd September 2010, 22:45
@kolak,
Avisynth does not have any internal pixel formats other than 8 bit at present.
And the design here is to output uncompressed pixel data wrapped as an uncompressed virtual .AVI file.
This is an open source project, sure you could add a compression interface, but why would one want to burn cpu cycles generating pixel data. then compressing it into memory, only to then decompress it again immediately to use the raw pixel data. :confused:
kolak
23rd September 2010, 14:48
@kolak,
Avisynth does not have any internal pixel formats other than 8 bit at present.
And the design here is to output uncompressed pixel data wrapped as an uncompressed virtual .AVI file.
This is an open source project, sure you could add a compression interface, but why would one want to burn cpu cycles generating pixel data. then compressing it into memory, only to then decompress it again immediately to use the raw pixel data. :confused:
You did not understand me correctly. I don't want to put any codec in between- these are exapmle of 10bit codecs only.
I just would like to keep 10bit precision. If my source file is 10bit (eg Cineform file) I would like to have 10bit uncompressed virtual file. It gets converter to YUY2 now. This is what I expcted, it's an avisynth limitation :(
Is there any trick to pass v210 output from eg. Cineform, ProRes?
Andrew
StainlessS
23rd September 2010, 21:50
WARNING, Pismo File Mount Audit Package (pfmap-159-win.exe) is flagged
by COMODO AntiVirus as suspicious (Today with just updated AV DB).
Have submitted to VirusTotal.com where only COMODO out of 42 AV scanners
had any concern over it. Have submitted to COMODO as false +ve.
joe48
23rd September 2010, 22:42
WARNING, Pismo File Mount Audit Package (pfmap-159-win.exe) is flagged
by COMODO AntiVirus as suspicious (Today with just updated AV
Anti virus products should be required by law to have a warning label attached to their packaging.
+------------------------------------------
| WARNING: Windows security products
| contain snake-oil, a substance known to
| the admin general to deteriorate the
| performance, reliability, and security of
| computer systems.
+------------------------------------------
(joke)
This looks like a heuristic (fuzzy logic) detection. Likely the anti-virus product noticed that the PFM installer loads a kernel driver. Possible the anti-virus product mistakenly thinks the PFM installer is a packed executable. I doubt PFM has specifically been classified as malware by the anti-virus product.
The PFM install package and every contained executable/DLL is signed with a code signing certificate. Most security products trust signed executables until they get a sample of some malicious code that was signed with the same certificate. I am surprised if Comodo is not doing the same.
Joe L.
StainlessS
26th September 2010, 04:19
Yes, just suspicious, as Heur.Suspicious@116614127.
Also, as an aside, I think Comodo is supposed to be one of the
biggest certificate issuers in the world.
JoeH
30th December 2010, 18:18
The only difficulty I have found is that the thumbnails in Vegas are painted very slowly - it takes about 10 seconds usually to paint the whole timeline of thumbnails. In comparison, if I use an intermediate codec it takes around 1 second.
I found a solution to this problem - index the file with FFMS2 and then mount with AVFS the AVS script that opens the ffindex file. The H264 / VC1 files fly... just like an intermediate codec. Very useful if you need to edit one in Sony Vegas, or any other video editing program.
name123
14th January 2011, 03:03
i like this concept but i am unable to test this out because when i run the installer for pismo film mount it crashes my win7 x64, has anyone experienced this?
joe48
14th January 2011, 03:35
i like this concept but i am unable to test this out because when i run the installer for pismo film mount it crashes my win7 x64, has anyone experienced this?
PFM runs fine on Win7 x64. A crash is most likely a compatibility issue between the PFM kernel extension and some other kernel extension or malware installed on the system. I am not aware of any specific compatibility issues at this time, but there have been a few cases over the last few years. If you are interested in helping to diagnose the issue, contact me via the support e-mail address listed on the Pismo Technic website.
name123
14th January 2011, 03:58
will do, thanks
torwart
20th January 2011, 07:19
You are a genious joe48!!!! Great program!!!!!!
JoeH
21st January 2011, 10:37
I use it on Win7 64 without any problems.
Overdrive80
13th March 2011, 18:19
Hi guys, i have a problem when i try reg dll with pfm command but windows says: "Not recognized as internal or external command, program or file batch executables".
Any idea?
joe48
13th March 2011, 23:10
Hi guys, i have a problem when i try reg dll with pfm command but windows says: "Not recognized as internal or external command, program or file batch executables".
Sounds like the PFM Audit Package is not installed.
Overdrive80
13th March 2011, 23:58
I try install "Pismo File Mount Audit Package build 159" but merge windows with this message:
http://www.imagengratis.org/images/capturadj7td.png
joe48
14th March 2011, 01:11
I try install "Pismo File Mount Audit Package build 159" but merge windows with this message:
PFM installs and functions on the vast majority of Windows configurations. If you are interested in helping to diagnose the issue with your configuration and PFM, contact the support e-mail address listed on the Pismo Technic website.
verydoomed
19th March 2011, 15:57
I am confused, I have the Pismo File Mount system extension and it works fine, why do I need this AVFS thingy? what is the advantage?
IanB
19th March 2011, 21:41
The Avisynth Virtual File System is a Pismo File Mount system extension to mount an Avisynth script as a virtual .AVI file. The .AVI file can then be opened in various programs that cannot normally open Avisynth scripts.
Mug Funky
5th April 2011, 04:03
quick question...
i've had some luck serving to crapple land by opening the yuy2 avi file, saving a reference mov of it, then using a text editor manually searchreplacing "yuy2" with "yuvs".
i just did some googling, and found this link:
http://developer.apple.com/quicktime/icefloe/dispatch020.html
this is telling:
kYUVSPixelFormat
'yuvs'
8-bit 4:2:2 Component Y’CbCr format. Identical to the k2vuyPixelFormat except each 16 bit word has been byte swapped. This results in a component ordering of; Y0, Cb, Y1, Cr. This is most prevalent yuv 4:2:2 format on both Mac and Win32 platforms. The equivalent Microsoft fourCC is ‘YUY2’.
now i might add that there seems to be some colour encoding problems - when i tried going SD to HD a couple of years ago, i found the colours shifted. but what may have happened is FCP assumed 601 coeffs even though i gave it 709 data.
anyway, if yuy2 is simply a byte-swap of 2vuy, it should be trivial for AVFS to just do a byte-swap and make the mounted avi file a "2vuy" (blackmagic or other SDI capture card, 8-bit 4:2:2) instead of a yuy2.
this would immediately remove a lot of manual text editing and possible colour mismatches from anyone trying to get avs content smoothly into quicktime land...
IanB
5th April 2011, 15:10
Setting the fourcc in the pseudo .avi header to "yuvs" is zero cost. Other fourcc's with the same byte order as 'YUY2' include 'yuyv', 'YUYV' & 'YUNV'.
Doing a word swap to implement '2vuy' would require additional processing. Currently VFB data is simply copied to the application buffer. Other fourcc's with word swap byte order of 'YUY2' include 'UYVY', 'UYNV', 'cyuv', 'IYUV', 'HDYC', 'Y422' & '2vuy'.
Mug Funky
6th April 2011, 01:55
that's good to know.
the reason i was looking at 2vuy is because there's a limited number of formats that final cut pro is willing to play out through an SDI interface without having to render anything.
though network bandwidth would most likely mean having to render anyway, i thought having AVFS do the grunt work would possibly allow a fast enough network to go to tape in realtime straight from an avs script.
my test last night showed no colour shifts, so i'm gonna go ahead and check HD now.
k-c-ksum
29th April 2011, 15:03
I try install "Pismo File Mount Audit Package build 159" but merge windows with this message:
http://www.imagengratis.org/images/capturadj7td.png
reboot then install is as "Run it as Administrator"
tateu
20th July 2011, 05:42
Is anyone else seeing unbearably huge memory leaks?
My system:
Windows 7 Pro x64
2 X5550 Intel Xeon Processors @ 2.79 GHz
16 GB Ram
AviSynth v2.58 tsp MT v5 2009/07/12 07:46:21
Pismo File Mount Audit Package build 159 (1.0.0.159.x64 2010/07/07)
AVFS 1.0.0.5 2010/05/23
After a clean reboot my System process is only using a few hundred KB of memory.
AviSynth Script used
ColorBars(928,768).Trim(0,1799)
or
AviSource("lagarith_no_audio_928x768.avi").Trim(0,1799)
pfm mount test.avs
Open mounted test.avi file in VirtualDub or the player/encoder of your choice.
In VirtualDub, press F5 to play the avi. By the time all 1800 frames have been played, my System process is using over 2GB of memory. If I close and reopen the file, it will push my System process memory usage up to a max of 4GB.
Closing and unmounting the file does not release the memory. The only way I can get it back is to reboot.
tateu
22nd July 2011, 17:33
After more investigation, it appears that the memory leak might be with the Pismo File Mount Audit Package itself, not just the Avisynth virtual file system plugin.
I created an uncompressed avi, zipped it and mounted the zip file with the Pismo File Mount Audit Package zip handler and then opened the mounted avi in VirtualDub. I experienced the same memory leak in the System process with the mounted zip file as I did with the mounted avs file: within a short time of playing the avi file my System process had consumed 1/4 of my total installed memory and it doesn't get released until I reboot. I have tested this on several different machines and two different OSes.
Pismo Technic Inc. has a support email address so I will send them a note about it and see if they have anything to say.
joe48
7th October 2011, 04:20
Is anyone else seeing unbearably huge memory leaks?
...
After more investigation, it appears that the memory leak might be with the Pismo File Mount Audit Package itself, not just the Avisynth virtual file system plugin.
PFM does not have a memory leak. The number showing in task manager is just a number, there are no other symptoms to bear. If you had a huge memory leak then your system would get sluggish (I mean more than normal for Windows), and would eventually crash.
Most file systems on Windows use ram to cache data, true of PFM and NTFS. The amount of ram used by PFM to cache data is under complete control of the system (Windows), the same as for NTFS. For technical reasons, PFM maps its cached data differently than other file systems resulting in the current ram usage showing up in task manager in the system process. The cache ram usage of NTFS does not show up in the system process because it maps its cached data in the kernel, not because any more or less ram is being used.
The large number you are seeing in task manager is because you have plenty of ram installed in your machine and the system has not yet had any need to reallocate ram from the PFM cache to other tasks. As soon as you run some other memory hungry tasks, the system will reallocate the ram for other uses.
Joe L.
ffffuuu...
14th December 2011, 15:41
Hi there,
I've been aiming to use NTFS (under XP) to open a video from DVD structure in an app that only handles avi, so my goal was to save as much space (on mobile HD) as possible. I extracted audio tracks while indexing with DGMPEGDec, and then wrote a script using mpeg2source for the d2v index file, alternatively NicAC3source or FFAudioSource for ac3 file and AudioDub for joining the two. The resulting script played well in Media Player Classic, but the avi file created with AVFS rapidly slowed down to about 10fps and went out of sync. A video-only avi created with a script using only mpeg2source played at more less right framerate. What problem may there be?
B.F.
10th December 2012, 16:31
Latest version of PFM+latest version of AVFS.
win7x64
32bit programs work, 64bit doesn't. Any ideas about what can go wrong?
joe48
10th December 2012, 18:57
Latest version of PFM+latest version of AVFS.
win7x64
32bit programs work, 64bit doesn't. Any ideas about what can go wrong?
No idea off the top of my head. PFM does not give AVFS any information about the client applications.
Please send some instructions to reproduce to the support e-mail on the pismotechnic.com website. I will look into it.
Joe L.
TakuSkan
21st December 2012, 02:29
Latest version of PFM+latest version of AVFS.
win7x64
32bit programs work, 64bit doesn't. Any ideas about what can go wrong?
I too cannot get the latest version of PFM+latest version of AVFS to work in Windows 7 x64. It installs and creates virtual files fine in Windows 7 x32.
I've tried 3 older versions of Pismo File Mount Audit Package, and the problem persists. I'm trying to track down an older version of Avisynth Virtual File System, but am not having much luck. If anyone has a download link , could they please post it here?
JoeH
22nd December 2012, 07:40
I have always used in on Win 7 64bit. For me it works fine with Vegas 32 bit, but not with Vegas 64 bit, but this isn't a problem for me for the moment.
StainlessS
22nd December 2012, 08:02
It would seem to be relying on a 64bit ONLY file system/OS facility (EDIT: can't guess what that might be),
ie Windows 64 bit, so assumes the file system is a W64bit. (Vegas64)
TakuSkan
22nd December 2012, 14:14
I have always used in on Win 7 64bit. For me it works fine with Vegas 32 bit, but not with Vegas 64 bit, but this isn't a problem for me for the moment.
Are you saying that you can successfully mount an avs file in Windows 7 x64? And then load the virtual file into a 32 bit version of Sony Vegas in Win7 x64?
I can get an avs file to mount in a 32 bit copy of Windows 7, but in Windows 7 x64 I get the error message:
"MOUNT FAILURE
File x\xxx\xxxx.avs cannot be mounted.
It is not of a supported file format."
joe48
22nd December 2012, 18:13
"MOUNT FAILURE
File x\xxx\xxxx.avs cannot be mounted.
It is not of a supported file format."
This sounds like an installation issue. From a cmd prompt try:
pfm formatters
Output should include a line:
AVFS C:\...\avfs.dll
Try using some other tool to process a script directly using the avfs.dll from the same location.
Joe L.
JoeH
23rd December 2012, 09:10
Are you saying that you can successfully mount an avs file in Windows 7 x64? And then load the virtual file into a 32 bit version of Sony Vegas in Win7 x64?
Yes, I've used it this way for a couple of years without problems.
TakuSkan
24th December 2012, 06:48
I found the problem. It started in the AVFS readme.txt file where it told me I could:
Copy avfs.dll to a folder of your choosing.
I tend to put all dll files in \windows\system32. That works for the avfs.dll in Win7 x32, but not Win7 x64 (probably should have been \windows\SysWOW64). I unregistered the file, moved it to \windows, registered it there, and files mount fine now.
Glad it was obvious looking at it from a fresh start. I know nothing about avisynth scripting, and had no idea how I'd do what you suggested, or what other tools I might try. I'm just glad to get a bit of a handle on MeGUI & Sony Vegas. ;)
Fantastic little tool! Thanks.
kolak
5th January 2013, 21:21
2 notes for developers:
-avfs needs ditributor() at the end of the script to run with setmt modes (otherwise script runs in 1 thread)
-if script is memory hungry (QTGMC, interframe) you have to patch pfmhost.exe with Large Address Aware flag to have much better stability. Maybe Pismo developer can add this flag by the default.
JeanMarc
12th January 2013, 15:57
Great tool, thanks to the developer!
A question though: my avfs seems to work great (I am still in the process of testing an SSIM script), but only from Windows 7 Administrative user. From the regular user, I get the error:
File "E:\path\to\my\file\sample.avs" cannot be mounted.
It is not a supported file format.
Is there something I missed?
joe48
12th January 2013, 18:43
A question though: my avfs seems to work great (I am still in the process of testing an SSIM script), but only from Windows 7 Administrative user.
You do not need to run as administrator to mount files with PFM. I suspect the avfs.dll is not registered or can not be loaded from your user account.
joe48
12th January 2013, 18:50
-if script is memory hungry (QTGMC, interframe) you have to patch pfmhost.exe with Large Address Aware flag to have much better stability. Maybe Pismo developer can add this flag by the default.
Good suggestion. I will have this set for the executables in a future PFM release. Not sure why MS has not made this the default yet.
kolak
12th January 2013, 20:30
Great tool, thanks to the developer!
A question though: my avfs seems to work great (I am still in the process of testing an SSIM script), but only from Windows 7 Administrative user. From the regular user, I get the error:
Is there something I missed?
No need for user to be only Administrator, but...
you have to register dll for each user separately!
It would be good to have an option: "Register for all users" during registration process. It there such a switch already?
@joe48:
Also- how much work is required to make MOV format?
JeanMarc
13th January 2013, 01:58
@Kolak and joe48. That didt it! I didn't realize I had to register the dll for each user! Thanks a lot.
Alanick
16th February 2013, 03:13
Hello all.
I've recently discovered this amazing way of mounting an video file using AVFS, AND I LOVE IT.
Thank you for this.
Now, if i may, i have a question.
What is the best .avs script option for an .m2ts, that has multiple audios, to select which ever you want and create the .avs then to be mounted.
for instance i use this option
DirectShowSource("TEST.m2ts", fps=23.976, audio=true, convertfps=true).AssumeFPS(24000,1001)
LanczosResize(720,480)
Audio being set to true, still does not see the audio in the mounted folder.
Can someone help me out with a better script on how to choose the audio if there is more than one, and
how to make it in 16bit for instance, 48.000Hz, and to preserve the channels 2 or 6 or 8
And when i mount the .avs to see inside the folder, the raw video with the wav at 16bit, 48.000Hz and all original channels(if possible).
Thank you in advance
kolak
16th February 2013, 13:11
What if you drag script to Vdub- does it show audio fine? AVFS preserves audio properly for me.
directshow source is not the best one- use some other, eg ffvideosource.
tyee
9th November 2013, 23:26
Does this system work in Win7 64bit and Sony Vegas 64 bit. I'm going to trial Vegas and have to decide 32 or 64 bit?
How can this be off topic. If it doesn't work with Vegas 64 bit, I can't use it.
JoeH said this -
I have always used it on Win 7 64bit. For me it works fine with Vegas 32 bit, but not with Vegas 64 bit, but this isn't a problem for me for the moment.
Just wanted to know if it still applies?
joe48
24th March 2015, 04:16
How much interest is there in DPX frame stack support for AVFS?
This would work as one or more "frames" folders under the AVS script mount point, each containing 1000's of "NNNN.DPX" files.
I think I could code this without too much effort, but I am not setup to work out the required features or properly test. Some help from someone who works with a variety of related tools would be needed.
kolak
27th March 2015, 09:25
It would be great, but MOV would be awesome :)
I can help with development.
Some pro tools for DPX reading/writing:
Assimilate Scratch Play- free advanced player
Davinci Resolve - read/write
http://pomfort.com/dpxheadereditor/ - headers viewer, editor
http://www.tweaksoftware.com/downloads/tweak-software-license-terms-and-conditions - advanced player (trial)
Nuke - read/write has personal learning mode, so no license needed
http://www.gluetools.com/downloads_dpx.html - DPX QT component, has trial mode
The most important is the way how data is packed- there are few modes, but looks like most people use 1 of them (I think method A) due to better compatibility with GPUs. There is also now DPX ver. 2.
Mediainfo can print very detailed info about DPX.
joe48
27th March 2015, 18:07
I may get some time next week to do some coding while I am at a conference. If so I will work on the general frame stack style output support, and go from there.
If you want to help with dev, setup for building AVFS with VC6 is pretty straightforward. All the code should be in the release package, or you can get it from the sourceforge Avisynth CVS repository.
kolak
27th March 2015, 18:28
I can help with testing, practical "approach", knowledge around DPX usage etc, but not really with coding part :(
Other than DPX maybe you can have a look at EXRs, as this is forming as a new "standard" for high-end work. DPX and EXRs have much more sense with vapoursynth, which does all pixel formats up to 32bit float.
VS already has your code implemented with some additional features like v210 support, which was requested by me and swiftly implemented by Myrsloik :)
I have a general/big idea about virtual video file system, but unfortunately no skills to make it "real".
tyee
8th April 2015, 01:42
Just tried the latest version. I suppose I have to double click the mounted .avs file within the c:\volumes folder? When I do this I see the avi file and the original avs file. Can't seem to play it. Do I drag this avi file into a media player to test it? I tried mpc-hc and it won't load. If I go back one folder directory in my file manager and then go back into c:\volumes and double click the avs file again my file manager hangs because mpc-hc is still trying to load it. Just found out that mpc-hc won't close in task manager until I close cmd window of avfs.exe. My avi file size is 200GB and mpc-hc is still opening it after 2 minutes with nothing showing. Am I doing something wrong? Your sample.avs works fine. I'll try some of your tips
joe48
8th April 2015, 01:58
... double click the avs file again my file manager hangs. Just found out that mpc-hc won't close in task manager until I close cmd window of avfs.exe ...
The c:\volumes\xxxxx.avs is not your AVS file, it is a temporary mount point to expose the AVFS virtual volume created from your script, like a virtual folder, not your script file. I hope you are not copying your AVS file into c:\volumes .
Make sure your AVS file opens and functions outside of AVFS, for example using Virtualdub. Next make sure you can mount a simple sample AVS file, such as the sample.avs file included in the AVFS package.
tyee
8th April 2015, 02:24
Hi Joe
Thanks for the fast reply. OK, still can't open it. The mounting goes well and I can see my mounted .avs file within the c:\volumes folder. So how do I load this into mpc-hc?
I have been double clicking the mounted avs file which shows me the large avi file. I then drag and drop that large avi to mpc-hc but it never finishes loading. My avs itself loads and plays fine though. Note - I am using avisynth MT in my script, does that matter?
Update - I disabled some lines in my avs file, namely the MT portion, and the QTGMC portion. Looks like just enabling MT works ok, loads and plays fine. When I enable the QTGMC filter, this causes the hang and it never loads to play.
joe48
8th April 2015, 02:50
... Looks like just enabling MT works ok, loads and plays fine. When I enable the QTGMC filter, this causes the hang and it never loads to play.
I don't know what issues there may or may not be when using AVFS with MT, or with specific filters and MT. Probably need the filter developer to look at what is going on in the avfs.exe process when it is stuck.
Note that AVFS is compiled against an Avisynth 2.5.x API header, which predates the MT branch/changes. Possible the filter you are using is just not compatible with AVFS unless AVFS is rebuilt with a different Avisynth API version.
Overdrive80
8th April 2015, 15:15
Hi Joe
Thanks for the fast reply. OK, still can't open it. The mounting goes well and I can see my mounted .avs file within the c:\volumes folder. So how do I load this into mpc-hc?
For example, copy avfs.exe in avisynth 2.5 plugins folder, create you cmd file, for example:
"C:\Program Files (x86)\AviSynth 2.5\Plugins\avfs.exe" "Path\Premiere.avs"
You can found in C:\Volume folder you virtual file. You should too install last version of pismo (build 175). Maybe you have remove old avfs.dll for discarding conflicts, I think.
EDIT: To Lost shell integration is a enormous lost.
kolak
8th April 2015, 23:56
Update - I disabled some lines in my avs file, namely the MT portion, and the QTGMC portion. Looks like just enabling MT works ok, loads and plays fine. When I enable the QTGMC filter, this causes the hang and it never loads to play.
QTGMC can be very problematic.
Read this:
http://forum.doom9.org/showthread.php?p=1609171#post1609171
Sparktank
9th April 2015, 00:23
QTGMC can be very problematic.
Read this:
http://forum.doom9.org/showthread.php?p=1609171#post1609171
pfmhost should be LAA by now.
I think the only thing of interest is to use ditributor() for setmt scripts.
Bruce/Fl
7th September 2015, 07:22
I gave up on VFAPI, (see this thread (http://forum.doom9.org/showthread.php?t=172553)) at least for now, and am trying AVFS. It installed fine, as did the PFM program, but it won't open an avs file, either by clicking on the executable, using the PFM mount option, or by using the cmd line. I saw some references here about "registering" the avfs.dll. I'm not familiar with the concept, but thought I'd find the dll and look, and I can't find the avfs.dll.
Anybody have an idea what I'm doing wrong?
I'm on a Windows 7 Pro 64 bit.
Thank you,
Bruce
Bruce/Fl
7th September 2015, 16:22
There is no avfs.dll now in the latest version. Have you done what the readme says?
Yes, I put a copy of the avfs.exe in the windows folder. I then tried the "avfs somescriptfile.avs" after the prompt it goes to "Press CTRL+C to exit." And I can't enter anything else in it at that point.
When I tried the "start avfs somescriptfile.avs" after the prompt, another cmd box opens this time, labeled simply C:|Windows\avfs.exe, with "Press CTRL+C to exit" in it. And I can't enter anything else in it at that point again.
I rarely if ever run cmd commands, so maybe I am missing something obvious. I am interpretating "somescriptfile" as the name of my .avs file, and simply inserting that name there. Or does it need more info like as in the location of the file? So in this case, I am simply writing "avfs movtest1.avs" after the "C:\Users\Bruce>" prompt and hitting enter. Is that the issue?
TheFluff
7th September 2015, 16:58
Yes, if the file isn't in C:\users\bruce you need to specify the full path to it, not just the filename. So, for example
start avfs "c:\some\folder\somescriptfile.avs"
The quotes are important (unless you don't have any spaces or other funny characters in the path but I wouldn't take any chances, just put quotes around the path always and you're safe)
Bruce/Fl
7th September 2015, 19:34
Well...you don't need to enter anything after the script is mounted (when you see "Press CTRL+C to exit." appears). Like the readme says (in the Operation section), the script output is presented as various *.avi and *.wav files in the C:\Volumes\somescriptfile.avs folder. Now you can use your favorite application to open that avi file as a normal video for processing then.
Thank you both, I got past that point now, and I have a set of files in my "volumes" folder.
Now, when I try to open them in Vegas (Pro 13) I get the error message: "Warning: An error occerrred while opening one or more files. An error occurred while opening a codec"
Did I miss loading up something? The file is in .avi format, never had a problem opening one of those before.
Reel.Deel
8th September 2015, 15:39
I'm still using AVFS v1.0.0.5 (https://web.archive.org/web/20140707231925/http://www.turtlewar.org/avfs/), the latest version limited shell integration (it was very handy :().
----
@joe48
Is it OK to just AVFS v1.0.0.5 with the latest version of Pismo File Mount? I'm using Pismo File Mount build 166 right now but I want to make sure before I upgrade to build 178.
Iron_Mike
24th March 2016, 14:34
Hi,
is it possible to route the output of AVFS to a different folder than c:\Volumes ?
if so, how would I do that ?
these video files get quite large and I don't have enough space on the c: drive...
TIA.
joe48
24th March 2016, 17:21
The c:\Volumes folder is not configurable, but as HolyWu said, no space on the C: drive is actually used regardless of how large the virtual AVI files appear to be.
Iron_Mike
24th March 2016, 23:24
The c:\Volumes folder is not configurable, but as HolyWu said, no space on the C: drive is actually used regardless of how large the virtual AVI files appear to be.
thank you, that makes sense ! :)
I went back to an older version of PFM and it allows to mount the file/script within the containing folder...
any concerns using AVFS 1.0.0.6 with an older version of PFM ?
Thanks.
Myrsloik
31st March 2016, 18:15
I thought I'd quickly grab the changes for VSFS but pfmmarshaller.h doesn't seem to exist anymore in the build 181 sdk.
Did I miss something or could you do a small revision of AVFS source to work with the latest pismo build?
asarian
2nd April 2016, 23:20
I have to admit I still don't quite get the point of it all.
I mean, why would I want to open a virtual AVI? So as to parse it to x264? I can do that directly! (Or via avs2yuv pipe). Or so I can load the AVI in a video editor? Why would I then not just create a real output file first?!
Honestly, I don't mean to be negative. In fact, I love the idea! Just not entirely sure how I could use it in a way that would benefit me over what I currently do. Outputting via a virtual file system to a 64-bit version of x264, that I could see happen. :)
Anyways, seems this thread is not seeing all that much activity as it is, so my questions may be moot to start with.
TheFluff
2nd April 2016, 23:36
it's for tempfile-less interaction with programs which can open avi but do not do so via vfw nor support pipe input
granted, that's a pretty specific use case, but it does solve an existing problem. if you don't have that problem, well, then you don't need this particular bit of software.
Iron_Mike
2nd April 2016, 23:44
Hi,
I have a question:
does AS always fake output or actually convert the input file by default (w/o specifying specific output parameters) ?
example: When I input a 10-bit RGB (444) file, MediaInfo shows the virtual output file as 8-bit... so is that just the default fake file format done by AS or is the file actually converted to 8-bit ?
Thanks.
poisondeathray
3rd April 2016, 00:51
Hi,
I have a question:
does AS always fake output or actually convert the input file by default (w/o specifying specific output parameters) ?
example: When I input a 10-bit RGB (444) file, MediaInfo shows the virtual output file as 8-bit... so is that just the default fake file format done by AS or is the file actually converted to 8-bit ?
Thanks.
Avisynth is 8bit natively, it's probably converted by your source plugin
There are "tricks" to load higher bit depth into avisynth (such as stacked 16), but I don't know if they will output a standard format compatible with AVFS, and certainly the receiving program won't understand those hacks
vapoursynth supports higher bit depths natively, it has an VSFS based on AVFS, but I don't think you can get 10bit RGB to work (at least I couldn't, I could get it to load as 10bit RGB in vapoursynth, but not through VSFS) . It might be because I'm running older vpy versions and plugins, not sure
asarian
3rd April 2016, 01:27
Just to be clear, AVFS will not trash my SSD, right?! (I just don't understand how you can have like a 4G virtual file, without major disk I/O involved).
TheFluff
3rd April 2016, 06:48
It isn't a 4GB file. That's what "virtual" means - the file doesn't exist. AVSFS files work exactly like any other Avisynth script, the only thing that's different is the interface. There is never anything written to disk.
Iron_Mike
3rd April 2016, 07:37
Avisynth is 8bit natively, it's probably converted by your source plugin
There are "tricks" to load higher bit depth into avisynth (such as stacked 16), but I don't know if they will output a standard format compatible with AVFS, and certainly the receiving program won't understand those hacks
vapoursynth supports higher bit depths natively, it has an VSFS based on AVFS, but I don't think you can get 10bit RGB to work (at least I couldn't, I could get it to load as 10bit RGB in vapoursynth, but not through VSFS) . It might be because I'm running older vpy versions and plugins, not sure
okay, thanks for explaining that.
here's a test I did:
I fed a 10-bit RGB file to AS and modified the 4CC to fake it as a 10-bit 422 file... which it successfully did - MediaInfo shows it as a 10-bit 422 file.
in this example, what is the actual AS output:
(a) an 8-bit file (downconverted from 10-bit RGB) that AS fakes to be this 10-bit 422 file
(b) it is really the original 10-bit RGB file faked as 10-bit 422
(c) or is it a true 10-bit 422 file, downconverted from 10-bit RGB
?
I somewhat lean towards (a) given your explanation, can you clarify ?
Thanks.
asarian
3rd April 2016, 09:42
It isn't a 4GB file. That's what "virtual" means - the file doesn't exist. AVSFS files work exactly like any other Avisynth script, the only thing that's different is the interface. There is never anything written to disk.
Just installed it. Didn't use complex things yet, but I have to say, it worked flawlessly! :) Pretty cute like that! Seeking went very well too (this will likely change when I do things like MCTemporalDenoise, or QTGMC, though). Very nice! Thx all!
poisondeathray
3rd April 2016, 18:23
okay, thanks for explaining that.
here's a test I did:
I fed a 10-bit RGB file to AS and modified the 4CC to fake it as a 10-bit 422 file... which it successfully did - MediaInfo shows it as a 10-bit 422 file.
in this example, what is the actual AS output:
(a) an 8-bit file (downconverted from 10-bit RGB) that AS fakes to be this 10-bit 422 file
(b) it is really the original 10-bit RGB file faked as 10-bit 422
(c) or is it a true 10-bit 422 file, downconverted from 10-bit RGB
?
I somewhat lean towards (a) given your explanation, can you clarify ?
Thanks.
Probably 8bit because it's loaded as 8bit
Normally what people do is use test videos (e.g. 10bit gradients and patterns) , where it's easy to see if the values are valid in the receiving application
10bit 422 YUV source (i.e. "v210") can be done with the VSFS variant, but it's fourcc becomes "P210" (the planar 10bit 422 variant) when fed through VSFS, and most receiving programs don't understand that. How did you change the fourcc ? Did you mean with a hex editor in the source file ?
kolak
3rd April 2016, 18:55
I don't think you can get 10bit with vsfs using avisynth, as avisythn doesn't natively support any 10bit pixel format on output (I may be wrong here). Other than this I don't think vsfs is written to support any 10bit pixel formats with avisynth.
Use vapoursynth and there you can get few 10bit pixels formats, including mostly supported v210, which Myrsloik kindly added after I asked him.
poisondeathray
3rd April 2016, 19:08
Use vapoursynth and there you can get few 10bit pixels formats, including mostly supported v210, which Myrsloik kindly added after I asked him.
Were you able to get v210 out of VSFS (I mean through .vpy , not .avs) , vspipe works fine, but it's only "p210" for me in the VSFS virtual AVI
Have you tested 10bit RGB "r210", "r10k" in VSFS ? It loads fine internally as 10bit RGB, but again doesn't work with the VSFS AVI
Or is there a special switch I'm missing ?
(Maybe should post in the vapoursynth section)
kolak
3rd April 2016, 20:17
v210 works with vpy for sure (just needs special line in the script to enable it). I don't think r210 and r10k work, as these are packed formats, so support for them has to be "added".
In the same time RGB48 and B64A also work if I remember well.
poisondeathray
3rd April 2016, 20:23
v210 works with vpy for sure (just needs special line in the script to enable it). I don't think r210 and r10k work, as these are packed formats, so support for them has to be "added".
In the same time RGB48 and B64A also work if I remember well.
Yes, they all work in the script (RGB30 for 10bit RGB) , and vspipe out to something like ffmpeg, just not the virtual AVI
I'm asking specifically about VSFS and the virtual AVI, I couldn't even get v210 to work (it "becomes" P210) , even with the v210 switch "enable_v210 = True"
kolak
3rd April 2016, 20:27
some_clip.set_output()
enable_v210 = True
v210 definitely worked for me (in older vs versions). This has been debugged and tested with many software. Fake v210 AVI worked in Vdub, AE, Premiere, Edius etc. For some software, like Resolve you may need to open fake AVI in QT 7 PRO and save QT reference file.
Maybe Myrsloik broke it :)
asarian
4th April 2016, 06:19
I have to admit this is all pretty cute. :) Especially the free seeking is awesome! Not sure how that works, but even while the avs is doing its thing, I can still randomly seek anywhere (like to precisely a troublesome spot). No more carefully select an exact fragment to encode first!
So, thank you for making this!
asarian
12th April 2016, 08:59
For users of prior version of AVFS, things have changed. AVFS is now an executable, not a DLL. The installation is now simpler, but some explorer integration is lost.
I'm kinda sad about this. VapourSynth still uses the menu context integration (wth dll), and I find it to be a superior way of mounting things. Is there any way we can get the dll method back?!
Noctis001
28th June 2016, 18:12
Hello, I'm trying to mount two or more avs scripts files with avfs in order to work with multiple video files at the same time in Premiere. Do you know a way to do it?
Thank you.
ultim
2nd July 2016, 20:02
Hello, I'm trying to mount two or more avs scripts files with avfs in order to work with multiple video files at the same time in Premiere. Do you know a way to do it?
Thank you.
Alternatively to avfs, frameserving avs scripts to other applications can also work using the frameserving capabilities of virtualdub.
poisondeathray
2nd July 2016, 21:21
You can mount multiple scripts at the same time (at least you can with the older version) ; each one will appear in the c:\volumes folder in separate sub folders . Is that what you are asking ? or are you asking how to make them appear in the same directory level ?
Myrsloik
3rd July 2016, 23:37
I decided to make a small update. The plan is to merge the avfs and vsfs codebases in the end. But first I plan to change the whole thing into something resembling sane C++11 code.
Changes:
Added output support for all 2.6 formats, obviously it no longer works with older versions
Fixed some 64 bit warnings
Fixed headers to match the names modern compilers expect
Simplified a pointlessly complex function
Here's the link (https://dl.dropboxusercontent.com/u/73468194/avfs-test1.7z).
VS2015 runtime required!!!!!!!!!!!!!!!!!!
Myrsloik
17th July 2016, 17:04
I've now produced something that you could call a true successor if you consider features. Maybe I'm the new maintainer now or something. I guess.
The source changes can be found in the VapourSynth git (https://github.com/vapoursynth/vapoursynth/tree/master/src/avfs). The same binary supports both avs and vs at once. Doesn't require both to be installed either. Any file ending with .vpy will be treated as a vs script, everything else will be fed to avisynth.
Binaries here (https://dl.dropboxusercontent.com/u/73468194/avfs1.7z). Report bugs or success to help development and so on...
Changes:
Added VaporSynth support with all sane raw fourccs supported
Added output support for all 2.6 formats, obviously it no longer works with older versions
Fixed some 64 bit warnings
Compilable with clang-cl
Fixed headers to match the names modern compilers expect
Simplified a pointlessly complex function
Myrsloik
15th October 2016, 11:23
If anyone needs the most recent binaries simply grab the VapourSynth portable packages and extract avfs.exe from there. Needs VS2015 runtime installed.
tyee
11th November 2016, 20:10
Just trying this again in a long while. I mount the avs and see the shortcut to the .avs file in the c:\volumes folder but that is all that is there. No avi or wav file. What am I missing?
Myrsloik
11th November 2016, 20:17
Just trying this again in a long while. I mount the avs and see the shortcut to the .avs file in the c:\volumes folder but that is all that is there. No avi or wav file. What am I missing?
Look at the text file in the folder to see the error message.
osgZach
29th January 2017, 03:19
Myrsloik your version keeps crashing when I try to load a script. Not sure how to get any information out of it so I can give to you.
(I just get the "program has stopped working" modal)
Windows 10 x64
avisynth 32bit.
Myrsloik
29th January 2017, 12:23
Myrsloik your version keeps crashing when I try to load a script. Not sure how to get any information out of it so I can give to you.
(I just get the "program has stopped working" modal)
Windows 10 x64
avisynth 32bit.
Start by revealing the exact versions of everything.
mp3dom
29th January 2017, 13:49
Same here, avfs 1.0.0.7 (the one provided in the VapourSynth package) and vanilla AviSynth 2.60 x86 on WinServer 2008-R2 x64.
The avs is just a simple call of AVISource to an UTVideo avi (ULY2, so YUY2).
Reverting to 1.0.0.6 and everything returns to work as expected.
osgZach
29th January 2017, 22:50
Sorry, yes
OS: Windows 10 x64 Professional
Avisynth: 2.60 Official x32
AVFS: 1.0.0.7 from the R36 Vapoursynth x32 portable package
Same Avisynth trial as the poster above me. only with YV12
I have not tried an older version yet. But standard old old build from AVFS site works for me.
-----------
I need to verify a few things but I suspect the problem may be UTCodec version 17.3.0
I just reverted to 17.2.0 because YV12 was being decoded as YV16, and now its loading a script without crashing.
Myrsloik
29th January 2017, 23:05
...
I'll investigate. I think I only really tested with Avs+...
mp3dom
29th January 2017, 23:53
I just reverted to 17.2.0 because YV12 was being decoded as YV16, and now its loading a script without crashing.
Uhm, I don't think it's due to UTVideo.
It just crashes even when I try to mount an avs with Colorbars.
This is the error I got (if it may be helpful)
Problem signature:
Problem event name: APPCRASH
Application Name: AVFS.exe
Application Version: 1.0.0.7
Application Timestamp: 5883d60f
Fault Module Name: kernel32.dll
Fault Module Version: 6.1.7601.23572
Fault Module Timestamp: 57fd0378
Exception code: c0000005
Exception Offset: 0001136d
OS Version: 6.1.7601.2.1.0.272.7
Locale ID: 1040
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
osgZach
30th January 2017, 00:08
How did you get that crash dump?
Also weird, you're right. I don't know why its not crashing now
edit: haha I'm dumb as shit. I was loading a script that didn't exist.
It still crashes, only now its when trying to load the signpost instead of the script.. how can I obtain a data dump like you posted?
osgZach
30th January 2017, 03:59
So I also went back to AVFS distributed with R35
Vegas won't import AVS scripts unless I throw a ConvertToRGB() on the end, however that does also make AVFS crash.
ConvertToRGB() will make it crash when trying to load the signpost
ConvertToRGB24() will make it crash immediately upon trying to mount the script
Oddly enough if I use DirectShowSource instead of AviSource, it will load the file, ConvertToRGB won't crash anything and the video track will import into Vegas just fine from what I can tell
I hope this information is helpful
marcorocco
13th March 2017, 16:24
Hi to all, kindly I wonder if there is a way so that the virtual .AVI file have the interlace flag. My NLE recognize the AVFS output only as "progressive" also even if the content is interlace. Consequently I come to have a series of problems related to the treatment, if possibile I would like to have a virtual .AVI file (uncompressed YUY2 in my case) that looks like interlaced.. also for the mediainfo. Is this possible? thanks
Myrsloik
13th March 2017, 18:35
So I also went back to AVFS distributed with R35
Vegas won't import AVS scripts unless I throw a ConvertToRGB() on the end, however that does also make AVFS crash.
ConvertToRGB() will make it crash when trying to load the signpost
ConvertToRGB24() will make it crash immediately upon trying to mount the script
Oddly enough if I use DirectShowSource instead of AviSource, it will load the file, ConvertToRGB won't crash anything and the video track will import into Vegas just fine from what I can tell
I hope this information is helpful
I've investigated some more but can pinpoint the exact reason it breaks. In my tests it works properly around 1/4 of the time to make things even more odd.
marcorocco
17th March 2017, 00:43
Hi, I use AVFS to load 100/150 video clips (video only, no audio) and I have noted that for each clip loaded there is a RAM usage. When I have charged all the clips the PC is slow because freee RAM is too little. I wonder if is there a way to set avfs, possibly, to avoid ram usage or use only hard disk. Thanks
marcorocco
18th March 2017, 01:35
Hi, I use AVFS to charge 100/150 video clip (no audio) but I have noted that when the number of clip loaded is too high my PC become slow and the usage of RAM is a lot. Please I wonder if is there a way to don't use RAM for each clip loaded or if AVFS can use hard disk instead of ram. Thanks
Myrsloik
21st March 2017, 19:58
All bugs should now have been ironed out in VS R37. I can also blame them all on Avisynth 2.6 API changes. They're evil.
marcorocco
27th March 2017, 09:07
Hi,
kindly I wonder if there is a way to get as target .AVI a MJPG video file instead of YUY2 uncompressed. I know this process is not really cheap but to improve compatibily with some NLE software that can manage only mjpeg video file .. this is the only way. Is it possibile? thanks
Myrsloik
27th March 2017, 09:08
Hi,
kindly I wonder if there is a way to get as target .AVI a MJPG video file instead of YUY2 uncompressed. I know this process is not really cheap but to improve compatibily with some NLE software that can manage only mjpeg video file .. this is the only way. Is it possibile? thanks
No.
Filler.
marcorocco
27th March 2017, 20:08
No.
Filler.
I understand, otherwise is there a way to get an interlaced .avi YUY2 uncompressed virtual file? I mean an .avi that is "flagged interlace" and represent a pure interlace video file recognized as well aldo by mediainfo. At the moment seems that AVFS expose only a progressive output, even if with a interlaced content... but NLE and all others "receiver" can see it only as "progressive". Is it possible that? thanks
Myrsloik
27th March 2017, 20:43
I understand, otherwise is there a way to get an interlaced .avi YUY2 uncompressed virtual file? I mean an .avi that is "flagged interlace" and represent a pure interlace video file recognized as well aldo by mediainfo. At the moment seems that AVFS expose only a progressive output, even if with a interlaced content... but NLE and all others "receiver" can see it only as "progressive". Is it possible that? thanks
I guess I could add a script variable to control that. Maybe. I'll think about it. There's no existing way to do it though.
kolak
28th March 2017, 21:33
AVI doesn't have a standard way of flagging filed order, store timecode etc.(at least as far I know). Different companies do it different way using private headers etc.
I would rather see avfs supporting MOV (MXF is to complex I assume) which would make it more robust and better supported. I assume MOV formatter is not trivial either.
rs008f
14th July 2017, 03:47
AVFS 1.0.0.6 auto exit for me. How do I fix this? I have Windows 7 64bit.
VS_Fan
14th July 2017, 06:21
AVFS 1.0.0.6 auto exit for me. How do I fix this? I have Windows 7 64bit.
Use the latest version from VapourSynth portable package (https://github.com/vapoursynth/vapoursynth/releases): If anyone needs the most recent binaries simply grab the VapourSynth portable packages and extract avfs.exe from there. Needs VS2015 runtime installed.
Myrsloik
14th July 2017, 12:19
Use the latest version from VapourSynth portable package (https://github.com/vapoursynth/vapoursynth/releases):
You need the VS2017 runtime instead nowadays but that's the only difference
link626
28th July 2017, 07:46
My windows control panel shows I have 2015 visual C++ installed.
Then I installed 2017 C++ runtime x86 and x64.
But avfs still auto exits when I try to mount an .avs. Goes straight back to command prompt.
D:\encode>avfs frameserver.avs
Press CTRL+C to exit.
D:\encode>
It just quits and doesn't mount anything.
c:\volumes is empty.
But i know pfm works because I mounted an iso file just fine.
I tried both 1.006 and 1.007. Both auto quit.
I'm running win10 x64. Help?
my frameserver.avs code is simply
AviSource("d:\encode\output.avi")
premiere pro is frame serving to output.avi.
VS_Fan
28th July 2017, 19:21
... Help? ...Some ideas:
Try using the “-d” switch to get diagnostic info from avfs. Post it here
Can you open the “output.avi” file by any other means? Any media player?
If you are not doing any processing in avisynth you don’t need avfs. Just use the “output.avi” file.
link626
29th July 2017, 08:06
Some ideas:
Try using the “-d” switch to get diagnostic info from avfs. Post it here
Can you open the “output.avi” file by any other means? Any media player?
If you are not doing any processing in avisynth you don’t need avfs. Just use the “output.avi” file.
output.avi is a pseudo-file, no more than a few hundred KB, frameserved by Advanced FrameServer from within premiere pro.
ffmpeg can open and encode from the output.avi.
virtualdub can open the avi.
But I was trying to frameserve to handbrakecli, because that is what I always use to encode x264.
Based on instruction from the web, I needed avfs and pfm in order for handbrakecli to be able to encode from the virtual file.
-d switch doesn't show any output at all.
it goes straight to "press ctrl c to exit"
then quits.
However, when I look at my c:\volumes folder, I see a frameserver.avs folder created for a split second, then it disappears.
VS_Fan
29th July 2017, 09:50
ffmpeg can open and encode from the output.aviI’m guessing you tried reading the “output.avi” file directly into handbrakecli, but it didn’t work, right? Here a couple more ideas:
If ffmpeg can read your file, try using ffmpegsource input avisynth filter (http://avisynth.nl/index.php/FFmpegSource) instead of AviSource in avisynth: FFmpegSource2 ("d:\encode\output.avi") Use ffmpeg to encode to h264 (https://trac.ffmpeg.org/wiki/Encode/H.264)
poisondeathray
29th July 2017, 15:19
So the afs avi is valid since vdub can open it, but check if frameserver.avs is valid - can you open that in vdub and any error messages
mp3dom
30th July 2017, 22:40
I have exactly the same problem with Win10 CU x64. Doesn't mount and go directly to the prompt and the -d switch doesn't do anything.
Also, after a while I unsuccessfully try to mount an avs, I always get a APC_INDEX_MISMATCH BSOD (the more I try, the quicker it appear)
Myrsloik
30th July 2017, 22:55
I have exactly the same problem with Win10 CU x64. Doesn't mount and go directly to the prompt and the -d switch doesn't do anything.
Also, after a while I unsuccessfully try to mount an avs, I always get a APC_INDEX_MISMATCH BSOD (the more I try, the quicker it appear)
This happens with trivial scripts like a simple avisource or version?
poisondeathray
31st July 2017, 00:54
What about running from elevated prompt ? Windows is very picky about permissions and writing to c: drive
Or how about changing c:\volumes to some other drive ? Not sure how to do that
link626
3rd August 2017, 10:37
So the afs avi is valid since vdub can open it, but check if frameserver.avs is valid - can you open that in vdub and any error messages
virtualdub can open the avs file just fine. no error.
elevated prompt doesn't make a difference.
I've been encoding with ffmpeg the last few videos, and I think I have most of the handbrakecli settings translated over, so this will have to be the workaround to the avfs fail.
MysteryX
24th August 2017, 19:35
I confirm this doesn't work on Windows 10 x64. C:\volumes remains empty. I tried running as admin.
marcorocco
12th November 2017, 23:51
seems that AVFS wont' works with avisynth's 64bit script :(
Myrsloik
13th November 2017, 00:06
seems that AVFS wont' works with avisynth's 64bit script :(
lrn2bugreport kthxbye
poisondeathray
13th November 2017, 01:53
64bit avs works ok here with avfs
There was an update a few months ago with pfmap IIRC , make sure you guys are using latest versions of everything
marcorocco
19th December 2017, 22:18
pfmap IIRC ?
I already have download the Pismo File Mount Audit Package 190 + AVFS 1.0.0.6 but seems won't load 64bit .avs :(
poisondeathray
20th December 2017, 00:00
For avs+ x64 mt , I use avfs script.avs . The avfs.exe I use is bundled with vapoursynth x64. It's definitely working, and definitely x64 mt (prefetch working). (That avfs.exe also mounts vpy scripts)
For avisynth x86 (vanilla) I use pfm mount . I still need the x86 version to interface with things like debugmode frameserver / advanced frameserver
marcorocco
24th December 2017, 12:28
Ah ok Avisynth R274 + AVFS 1.0.0.7 + LSMashsource R921 in my Windows10-64bit now works.
But using AVFS.EXE 1.0.0.7, instead of the "PFM mount" I alwais need to keep open the commandline dos-window :( I'm in a batch processing and need to mount 50/100 video files... it's not the best solutions keeping open 50/100 dos windows, so I wonder if is there a way to have the 64bit version of AVFS (1.0.0.7) like the 32bit (1.0.0.5 using PFM.exe + avfs.DLL)?
Or in there a way to get the AVFS.DLL 64bit to have the same usage?
Thanks
Myrsloik
24th December 2017, 14:25
Ah ok Avisynth R274 + AVFS 1.0.0.7 + LSMashsource R921 in my Windows10-64bit now works.
But using AVFS.EXE 1.0.0.7, instead of the "PFM mount" I alwais need to keep open the commandline dos-window :( I'm in a batch processing and need to mount 50/100 video files... it's not the best solutions keeping open 50/100 dos windows, so I wonder if is there a way to have the 64bit version of AVFS (1.0.0.7) like the 32bit (1.0.0.5 using PFM.exe + avfs.DLL)?
Or in there a way to get the AVFS.DLL 64bit to have the same usage?
Thanks
No. It's no longer implemented as a shell extension. Just write your own wrapper to hide and manage the processes if it bothers you.
marcorocco
24th December 2017, 18:40
Oh, I understand however the usage of AVFS.exe in batch processing and with multiple files is uncomfortable, having to open a new window each time.
Nobody can create a .dll with the 64bit version of AVFS?
I'm a Cat... I'm not able to write a wrapper o_o however AVFS works great
mtamimi
6th April 2018, 12:31
sometimes w/o "ConvertToRGB24()" the picture is garbled, so using "ConvertToRGB24()" fixes the issue, but also alters the color of the source! what can I do to overcome this problem?
Thnx
poisondeathray
6th April 2018, 15:49
sometimes w/o "ConvertToRGB24()" the picture is garbled, so using "ConvertToRGB24()" fixes the issue, but also alters the color of the source! what can I do to overcome this problem?
What is the source?
Did you use the correct matrix ? For most HD sources it would be 709
eg.
ConvertToRGB24(matrix="rec709")
mtamimi
7th April 2018, 11:26
What is the source?
Did you use the correct matrix ? For most HD sources it would be 709
eg.
ConvertToRGB24(matrix="rec709")
No I did not! I did not encode anything with avfs because of that issue. So how can I determine the correct color matrix for Blu-Rays and DVDs?
Thnx
poisondeathray
7th April 2018, 15:51
No I did not! I did not encode anything with avfs because of that issue. So how can I determine the correct color matrix for Blu-Rays and DVDs?
Thnx
As as general rule, "SD" use Rec601 , "HD" uses Rec709 . (UHD BD can use Rec2020)
mtamimi
13th April 2018, 07:27
Thnx for the help...
So now I am using this "ConvertToRGB(matrix="rec709")" as the last line in my avs scripts so that I can use avfs w/o issues.
My question is, does this alter the source quality -i.e. regular Blu-Ray- in any way?
Also, using ConvertToRGB instead of ConvertToRGB24, does this lead to any differences at all?!
Thnx
poisondeathray
13th April 2018, 15:45
So now I am using this "ConvertToRGB(matrix="rec709")" as the last line in my avs scripts so that I can use avfs w/o issues.
My question is, does this alter the source quality -i.e. regular Blu-Ray- in any way?
Technically, yes . To the human eye it will be pretty much indistinguishable. But this is an 8bit conversion to RGB from YUV - there are going to be minor rounding errors and precision loss . Some values in 8bit YUV are not "mappable" to 8bit RGB. You will not be able to "recover" the original YUV values from the BD source exactly. If you export back out an 8bit 4:2:0 YUV format, there is some loss too, for the same reasons. Also some loss from the chroma up/down sampling algorithm unless you use nearest neighbor. You can read up on YUV/RGB conversions for more info, it's discussed here and other places quite frequently
Also, using ConvertToRGB instead of ConvertToRGB24, does this lead to any differences at all?!
By default, ConvertToRGB() is actually ConvertToRGB32() . RGB32 in avisynth usually indicates three 8 bit channels R,G,B each + 8bit alpha channel or dummy alpha channel (fake data) . There is no alpha channel from a blu-ray source.
But some programs and codecs might handle RGB32 better than RGB24 in terms of performance. It has to do with memory layout and handling. Quality wise no difference if coming from a BD source
mtamimi
14th April 2018, 10:40
Technically, yes . To the human eye it will be pretty much indistinguishable. But this is an 8bit conversion to RGB from YUV - there are going to be minor rounding errors and precision loss . Some values in 8bit YUV are not "mappable" to 8bit RGB. You will not be able to "recover" the original YUV values from the BD source exactly. If you export back out an 8bit 4:2:0 YUV format, there is some loss too, for the same reasons. Also some loss from the chroma up/down sampling algorithm unless you use nearest neighbor.
Is there a way not to use this conversion at all and continue using avfs?!
Thnx
*edit*
I have to add that I am only using a script to transcode the Blu-Ray video to x264...In other words, this loss due to conversion, does it matter in my case since I am converting from lossless to lossy?!
*edit2*
I just made a test encode, and Media Info is showing this "Color space : YUV", what does this mean? Didn't we convert to something else?!
poisondeathray
14th April 2018, 15:35
*edit*
I have to add that I am only using a script to transcode the Blu-Ray video to x264...In other words, this loss due to conversion, does it matter in my case since I am converting from lossless to lossy?!
Then you don't need avfs
avfs is to make a "fake" virtual AVI, that allows you to bridge avisynth to other programs which do not accept avs scripts, or avoiding the alternative of using large lossless intermediate files . A common use is some other programs (e.g. NLE's) might not be compatible, and some of them do not accept "YV12" by the avfs method, hence the need for RGB
x264 can be compile with avs support (direct avisynth input) , or ffmpeg libx264 can accept avs directly
*edit2*
I just made a test encode, and Media Info is showing this "Color space : YUV", what does this mean? Didn't we convert to something else?!
You started with YUV, the final format is YUV. You don't need avfs
mtamimi
14th April 2018, 16:46
Then you don't need avfs
avfs is to make a "fake" virtual AVI, that allows you to bridge avisynth to other programs which do not accept avs scripts, or avoiding the alternative of using large lossless intermediate files . A common use is some other programs (e.g. NLE's) might not be compatible, and some of them do not accept "YV12" by the avfs method, hence the need for RGB
x264 can be compile with avs support (direct avisynth input) , or ffmpeg libx264 can accept avs directly
You started with YUV, the final format is YUV. You don't need avfs
the gui that I am using does not support avs scripts, that's why I am using avfs...is there a different way to use avs scripts with apps that does not support avisynth w/o the need to convert to rgb?
Also, since I did convert to rgb, why the output is yuv?
Thnx
poisondeathray
14th April 2018, 16:50
the gui that I am using does not support avs scripts, that's why I am using avfs...is there a different way to use avs scripts with apps that does not support avisynth w/o the need to convert to rgb?
Then consider using another GUI, or another method. There are many GUI's that support direct , proper YUV without that intermediate step
This is avoidable loss, and faster without avfs or extraneous conversions
Also, since I did convert to rgb, why the output is yuv?
Because you're encoding YUV . That RGB step is unnecessary. Slower to encode and process, and you incur some quality loss converting back and forth
YUV => RGB => YUV
x264 support RGB encoding too, but it's not commonly used and compression efficiency is low. YUV 4:2:0 is the most common
mtamimi
14th April 2018, 22:39
Then consider using another GUI, or another method. There are many GUI's that support direct , proper YUV without that intermediate step
Can you suggest some? So that I can test and choose among a list of suggestions...
Thnx
poisondeathray
15th April 2018, 00:09
Can you suggest some? So that I can test and choose among a list of suggestions...
Thnx
I'm not up to date on the GUI's , but some popular ones might include megui, staxrip, ripbot264, hybrid, simple x244 launcher,... probably dozens more
mtamimi
15th April 2018, 20:53
I'm not up to date on the GUI's , but some popular ones might include megui, staxrip, ripbot264, hybrid, simple x244 launcher,... probably dozens more
:thanks:
Dogway
20th December 2018, 19:42
Does anyone know if this works with DaVinci Resolve or Nuke? Mounting works because I can open the mounted avi (even in avspmod with directshowsource() ) but it refuses to load in said aplications. Everything is x64 on my end. Thanks.
poisondeathray
20th December 2018, 20:55
Does anyone know if this works with DaVinci Resolve or Nuke? Mounting works because I can open the mounted avi (even in avspmod with directshowsource() ) but it refuses to load in said aplications. Everything is x64 on my end. Thanks.
Commandline version does , for only for certain pixel formats (at least it works in vapoursynth, it should for avs+ )
For example , Resolve expects 10bit RGB and won't accept 8bit
Dogway
21st December 2018, 14:01
Thanks poisondeathray, worked flawlessly. In Nuke doesn't but I doubt I will ever need it for Nuke though.
1. Is AVFS a dead project already?
2. Is it normal that after adding "convertbits(10)" the script is no longer supported by AVFS?
Myrsloik
25th July 2023, 14:00
1. Is AVFS a dead project already?
2. Is it normal that after adding "convertbits(10)" the script is no longer supported by AVFS?
1. Nope, maintained by me. Updates binaries with avs+ support are distributed with vapoursynth portable.
2. "No longer supported". This is where you post the error message. Some formats exist as 10 bit but not all.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.