View Full Version : Is avfs still a thing?
asarian
5th December 2024, 10:58
I recently had cause to use avfs again. I wonder, is it even meant for 4k movies? Process was burning near 100% CPU, and movie wouldn't even play from mount (or if it would, it didn't so in the first 10 minutes, from an SSD). Mounted test script was pretty minmal:
import vapoursynth as vs
core = vs.core
core.max_cache_size = 65535
vid = core.lsmas.LibavSMASHSource(r"h:\veai\00001_4.mov")
vid = core.std.CropRel (clip=vid, left=4, right=4, top=2, bottom=2)
vid.set_output ()
The movie, outside the mount, plays just fine in this script, btw.
Myrsloik
5th December 2024, 11:41
I recently had cause to use avfs again. I wonder, is it even meant for 4k movies? Process was burning near 100% CPU, and movie wouldn't even play from mount (or if it would, it didn't so in the first 10 minutes, from an SSD). Mounted test script was pretty minmal:
import vapoursynth as vs
core = vs.core
core.max_cache_size = 65535
vid = core.lsmas.LibavSMASHSource(r"h:\veai\00001_4.mov")
vid = core.std.CropRel (clip=vid, left=4, right=4, top=2, bottom=2)
vid.set_output ()
The movie, outside the mount, plays just fine in this script, btw.
I didn't do any performance testing recently but it should work for opening in editors. Realtime playback has always been a bit iffy.
asarian
6th December 2024, 08:26
I didn't do any performance testing recently but it should work for opening in editors. Realtime playback has always been a bit iffy.
Something is weird. The error.log shows no anomalies, mounts just fine; but avfs.exe consumes an insane amount of CPU anyway, and any player won't play the movie -- just sits there waiting.
It's probably not you, it's me. :) But something here is screwy nonetheless. PFM Mount works fine still, but maybe that's interfering somehow.
poisondeathray
6th December 2024, 15:40
Is the MOV prores ? 10bit422?
Does UHD have anything to do with it ? Try a SD blankclip
vid = core.std.BlankClip(format=vs.YUV422P10, length=1000, color=[64, 512, 512])
What player ? Try something else like MPCHC (works here).
By default, you will be sending P210 (planar 10bit422), some players might not like it e.g. VLC ("Codec not supported:
VLC could not decode the format "P210" (No description for this codec)")
You can change the pixel type to v210 (interleaved or packed 10bit422) by using vid.set_output(alt_output=1) ; Now VLC plays it. V210 is also more compatible with editors
Alternatively, change the actual pixel type to something more common like RGBP, or YUV420P8
poisondeathray
6th December 2024, 15:53
Another issue could be firewall, security settings. Sometimes they prevent virtual files from working (for windows, the c: drive location especially)
asarian
6th December 2024, 21:12
Is the MOV prores ? 10bit422?
Does UHD have anything to do with it ? Try a SD blankclip
vid = core.std.BlankClip(format=vs.YUV422P10, length=1000, color=[64, 512, 512])
What player ? Try something else like MPCHC (works here).
By default, you will be sending P210 (planar 10bit422), some players might not like it e.g. VLC ("Codec not supported:
VLC could not decode the format "P210" (No description for this codec)")
I tried your line with both YUV422P10 and YUV420P10 (as I have no device that can play 422, other than at ca. 2fps). First, log says this:
Video stream :-
Duration: 1000 frames, 00:00:41.666
Format: YUV422P10
Width: 640 pixels, Height: 480 pixels.
Frames per second: 24.0000 (24/1)
No audio stream.
AvfsWavMediaInit: Clip has no audio.
So far, so good. But then media player throws an error, after a while, saying it can't get video data, with this extended data:
LAV Splitter Source (internal)::Video
Media Type 0:
--------------------------
Video: P210 640x480 24fps 236165kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_P210 {30313250-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo {05589F80-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 88
VIDEOINFOHEADER:
rcSource: (0,0)-(640,480)
rcTarget: (0,0)-(640,480)
dwBitRate: 236165766
dwBitErrorRate: 0
AvgTimePerFrame: 416667
BITMAPINFOHEADER:
biSize: 40
biWidth: 640
biHeight: 480
biPlanes: 1
biBitCount: 32
biCompression: P210
biSizeImage: 1228800
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
pbFormat:
0000: 00 00 00 00 00 00 00 00 80 02 00 00 e0 01 00 00 ...........à...
0010: 00 00 00 00 00 00 00 00 80 02 00 00 e0 01 00 00 ...........à...
0020: 86 9a 13 0e 00 00 00 00 9b 5b 06 00 00 00 00 00 ......[......
0030: 28 00 00 00 80 02 00 00 e0 01 00 00 01 00 20 00 (......à..... .
0040: 50 32 31 30 00 c0 12 00 00 00 00 00 00 00 00 00 P210.À..........
0050: 00 00 00 00 00 00 00 00 ........
The same goes for YUV420P10 too.
asarian
6th December 2024, 21:32
Another issue could be firewall, security settings. Sometimes they prevent virtual files from working (for windows, the c: drive location especially)
Is this something I can change myself? (And not one of those mystical, internal Window setting it sometimes sets on files). Anyway, downloaded portable R70 version of VapourSynth, renamed its AVFS.exe to AVFSX.exe, and tried it with that one. Same result.
asarian
7th December 2024, 14:14
Another issue could be firewall, security settings. Sometimes they prevent virtual files from working (for windows, the c: drive location especially)
I should mention PFM itself works just fine; I mount many ISO's with it. And, as you can tell from the error.log, things get mounted just fine. It's just that media players can't play the AVI, saying they can't get video data (but not a missing codec). Besides, AVI files outside the AVFS system play just normally, of course.
Is AVFS perhaps using a type of AVI format Windows 11 can't use?
poisondeathray
7th December 2024, 14:56
Can you get anything to play at all with different pixel format ? YUV420P8 ? RGB24 ? Does it open in vdub2 ? Which ones work ?
For 10bit422, try v210, because that is the most compatible fourcc - it even works in some picky video editors. See post #4 on how to change p210 to v210
asarian
7th December 2024, 15:23
Can you get anything to play at all with different pixel format ? YUV420P8 ? RGB24 ? Does it open in vdub2 ? Which ones work ?
For 10bit422, try v210, because that is the most compatible fourcc - it even works in some picky video editors. See post #4 on how to change p210 to v210
No format produces anything. Tried them all. Even extended debug info shows nothing out of the oridinary (see below). Log starts out okay, for starters:
Video stream :-
Duration: 1000 frames, 00:00:41.666
Format: YUV422P10
Width: 640 pixels, Height: 480 pixels.
Frames per second: 24.0000 (24/1)
No audio stream.
AvfsWavMediaInit: Clip has no audio.
Then there's the debug data (see below). Looks like everything, internally, gets loaded and read just fine; but something seems to be blocking actual data being sent to the media player (I tried like 4 different ones), and thwt all wind up with an error saying they can't get video data. Very bizarre.
F:\jobs>avfs mount.vpy -D
Mount point: C:\Volumes\mount.vpy
Press CTRL+C to exit.
W 0x18
WC 0x18
WF
00001 version
client version 10
client flags 1
client file name type 1
00001 version success
server version 10
min client compat version 1
volume flags 0x800
data align 0x040
formatter name avfs
00002 open
name
create file type 0
create file flags 0x00
write time 1601-01-01 00:00:00.000
new create open id 0
existing access level 1
new existing open id 1
00002 open success
open id 1
open sequence 1
access level 5
control flags 0x00
file type 2
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0x0
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 1601-01-01 00:00:00.000
change time 1601-01-01 00:00:00.000
touch 0
existed 1
parent file id 0x3
end name .
link name part count 0
link data size 0
link data
00003 mediainfo
open id 0
00003 mediainfo success
uuid 00000000-0000-0000-0000-000000000000
id 64 0x0
id 32 0x0
flags 0x00
create time 1601-01-01 00:00:00.000
label
00004 capacity
open id 0
00004 capacity success
total capacity 0x49545CC4
available capacity 0xF4240
00005 open
name
create file type 0
create file flags 0x00
write time 1601-01-01 00:00:00.000
new create open id 0
existing access level 2
new existing open id 2
00005 open success
open id 1
open sequence 2
access level 5
control flags 0x00
file type 2
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0x0
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 1601-01-01 00:00:00.000
change time 1601-01-01 00:00:00.000
touch 0
existed 1
parent file id 0x3
end name .
link name part count 0
link data size 0
link data
00006 list
open id 1
list id 1
max result count 1412
00006 list name .
file type 2
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0x0
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 1601-01-01 00:00:00.000
change time 1601-01-01 00:00:00.000
00006 list name mount.vpy
file type 1
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0xC2
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 2024-12-07 14:10:27.504
change time 1601-01-01 00:00:00.000
00006 list name error.log
file type 1
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0xD2
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 2024-12-07 14:10:27.504
change time 1601-01-01 00:00:00.000
00006 list name mount.avi
file type 1
file flags 0x00
extra flags 0x01
color 0
resource size 0x0
file id 0x0
file size 0x494518F0
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 2024-12-07 14:10:27.504
change time 1601-01-01 00:00:00.000
00006 list success
result count 4
no more 1
00000 listend
open id 1
list id 1
00000 listend success
00007 list
open id 1
list id 2
max result count 1412
00007 list name .
file type 2
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0x0
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 1601-01-01 00:00:00.000
change time 1601-01-01 00:00:00.000
00007 list name mount.vpy
file type 1
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0xC2
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 2024-12-07 14:10:27.504
change time 1601-01-01 00:00:00.000
00007 list name error.log
file type 1
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0xD2
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 2024-12-07 14:10:27.504
change time 1601-01-01 00:00:00.000
00007 list name mount.avi
file type 1
file flags 0x00
extra flags 0x01
color 0
resource size 0x0
file id 0x0
file size 0x494518F0
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 2024-12-07 14:10:27.504
change time 1601-01-01 00:00:00.000
00007 list success
result count 4
no more 1
00000 listend
open id 1
list id 2
00000 listend success
00008 open
name
create file type 0
create file flags 0x00
write time 1601-01-01 00:00:00.000
new create open id 0
existing access level 2
new existing open id 3
00008 open success
open id 1
open sequence 3
access level 5
control flags 0x00
file type 2
file flags 0x00
extra flags 0x00
color 0
resource size 0x0
file id 0x0
file size 0x0
create time 1601-01-01 00:00:00.000
access time 1601-01-01 00:00:00.000
write time 1601-01-01 00:00:00.000
change time 1601-01-01 00:00:00.000
touch 0
existed 1
parent file id 0x3
end name .
link name part count 0
link data size 0
link data
00009 list
open id 1
list id 3
max result count 1412
00009 list name .
file type 2
file flags 0x00
extra flags 0x00
color 0
poisondeathray
7th December 2024, 15:54
Admin privileges?
If you tested vdub2, and it doesn't work - vdub2 supports p210, v210 natively (and all those pixel formats), so it's more likely some sort of transmission issue - maybe it has to do with permissions / administrator / security settings /firewall
Disconnect from internet and disable firewall/security, try again
There were requests in the past to have control over the virtual file location instead of c:, but the requests were unfulfilled . (Windows can be finicky with c drive)
(Also MOV container has a lot more support in professional programs / NLE's - so a MOV emulator would be ideal - requests made, but also unfulfilled)
asarian
7th December 2024, 19:17
Okay, a blank clip as follows finally works:
clip = core.std.BlankClip(format=vs.YUV420P8, length=100, width=1280, height=720, fpsnum=146877, fpsden=1001, color=[64, 64, 64])
Anything 10-bit, however, won't. But this is already something, as at least this way I can mount pre-cropped blu-rays or something (for TVAI). TVAI can definitely take YUV420P10 input, of course; but apparently not from the AVFS mount. It's relevant log portion:
2024-12-07 19-00-50.987 Thread: 8876 Info Trying to open the file "C:/Volumes/mount.vpy/mount.avi" false
2024-12-07 19-02-07.545 Thread: 8876 Critical Unable to open file "C:/Volumes/mount.vpy/mount.avi"
2024-12-07 19-02-07.545 Thread: 8876 Warning ===--- Could not open reader at path: "C:/Volumes/mount.vpy/mount.avi" | videoio::Reader(0x2778887a5d0) | false
2024-12-07 19-02-07.545 Thread: 8876 Info Trying to close the file false "C:/Volumes/mount.vpy/mount.avi" false
2024-12-07 19-02-07.545 Thread: 8876 Critical Unable to open file at "C:/Volumes/mount.vpy/mount.avi"
2024-12-07 19-02-07.545 Thread: 46556 Critical Unable to load video C:/Volumes/mount.vpy/mount.avi Unable to open file at C:/Volumes/mount.vpy/mount.avi
2024-12-07 19-04-52.520 Thread: 46556 Warning Retrying to obtain clipboard.
Thanks for all your help, at least!
poisondeathray
7th December 2024, 19:39
Anything 10-bit, however, won't. But this is already something, as at least this way I can mount pre-cropped blu-rays or something (for TVAI). TVAI can definitely take YUV420P10 input, of course; but apparently not from the AVFS mount.
v210 works in VEIA with avfs. avfs/v210 even works in Resolve - and Resolve is pickier and more restrictive than VEIA. See post#4 again for v210 instructions
asarian
8th December 2024, 20:25
v210 works in VEIA with avfs. avfs/v210 even works in Resolve - and Resolve is pickier and more restrictive than VEIA. See post#4 again for v210 instructions
I tried v210 on UHD material, and it kinda works, but only when I said the output to YUV422P10.
Anyway, thank you for your help. Like I said, at least now I can mount regular blu-rays (which is what I will be mostly using it for, in a pre-pass script).
N.B. And yes, ProRes or something makes more sense, these days; or mkv even. But I'll take what we got. :)
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.