Log in

View Full Version : ffdshow or Virtual VCR bugs under system login


4evrplan
26th September 2008, 15:52
I threw together a very quick and dirty scheduling app to start captures for me. All I have to do is log in to my favorite listings website, find the show I want, click the little red record button next to the listing, and the scheduling app picks it up from there. However, I just got a new computer and all of the sudden, it's capturing everything in XViD instead of the MJPEG (via ffdshow) format I set it to. I've discovered, that if I run my capture software (Virtual VCR) with my login, it works as expected, but if I run it under the system login (ala the AT command) it uses the XViD codec every time. I can only assume that ffdshow only works under a user account and not the system.

I found an alternate way to schedule captures via the schtasks command, but the way it works is a little different than AT, so I'd have to change a lot of my code, including the way it writes logs. I was sort of hoping I could find a work around to get ffdshow working when I'm not sitting there at the console.

Here's what I've tried so far:
I read somewhere that you can fix this by running the "Task Scheduler" service under a user login, so I tried it. It requires that you stop and restart the service. However, it fails to restart and displays an error stating that the login is different than 'other services in the same process'. When I google this error, the fix is to set the service to run under the system login (Arrrrgh!).

Does anyone know of a bug in ffdshow or Virtual VCR related to this and/or a way to work around it?

EDIT: I just found this relevant post on the sourceforge ffdshow forum: http://sourceforge.net/forum/forum.php?thread_id=2073044&forum_id=597594. The guy that posted this got it to work by running the service under an Admin account, but as stated above, that didn't work for me. Someone please help.

clsid
26th September 2008, 16:50
ffdshow must run on a user account, there no way around that.

4evrplan
26th September 2008, 16:58
SOLVED!

I found info here (http://ffdshow-tryout.sourceforge.net/phpBB2/viewtopic.php?p=3008&sid=5ca16c8fc4339cb18a6a8008f5dc1300) that explained the problem in more detail. The short version is that my user account has registry entries for ffdshow associated with it that the system account (.DEFAULT user) does not. I simply cloned everything under [HKEY_CURRENT_USER\Software\GNU] that dealt with ffdshow and put it under [HKEY_USERS\.DEFAULT\Software\GNU].

clsid
26th September 2008, 17:39
I always thought that .DEFAULT was used as initial content for new user accounts. Interesting to know that SYSTEM uses it too.

GrofLuigi
26th September 2008, 23:21
I would have tried something like "psexec.exe -i -s -d "c:\program files\virtualdub\VirtualDub.exe"" and configured my codec.

PsExec is here (http://technet.microsoft.com/en-us/sysinternals/bb896649.aspx)

But the result probably would have been the same. :)

GL

4evrplan
29th September 2008, 16:48
That just might have worked, because my home-brew scheduler is split into two pieces (three really, but who's counting), the piece that schedules the capture via AT, and a batch file, which is what AT actually runs, rather than running Virtual VCR directly. I had to do it this way because there's a bug in Virtual VCR which will not let you start a capture from the command line if Virtual VCR is already running, so my batch file kills the process, waits a sec and then issues the command (as well as doing some other scheduling stuff, but that's neither her nor there). I simply could have replaced the line that runs VVCR with a psexec command similar to the one you have above. Of course, this would required having my login credentials in plain text in the batch file.