View Full Version : Avisynth Studio v1.2 Beta (OpenSource Avisynth NLE)
teejee2008
18th November 2009, 13:15
Latest version: 1.2 Beta (02-12-2009)
This is a video editor based on Avisynth. It requires .NET 2.0 or higher to run and has been tested on 32-bit Vista only.
Download Avisynth Studio v1.2 Beta (5 MB) (http://www.mediafire.com/?4tgojqmwee1)
Download Source Code (900 KB) (https://sourceforge.net/projects/avisynthstudio/files/1.2%20Beta/AvisynthStudio%201.2%20Beta%20%28Source%29.7z/download)
SourceForge.net Project Page (https://sourceforge.net/projects/avisynthstudio/)
If this program makes your life any easier, please consider donating $2 for its development. You don't need a PayPal account to donate. You can use a credit card or e-check through PayPal without having to open a PayPal account. If you are a computer professional earning money from the use of this software, then it would be nice if you could donate more.
https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif (https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9792338)
Screenshot
http://teejee2008.files.wordpress.com/2009/11/avisynthstudio-main-window.png
wonkey_monkey
18th November 2009, 14:00
AviSynth was not detected on your computer!
This application will now exit.
Aww (running 2.5 on Windows XP 64-bit, so avisynth.dll is in C:\Windows\SYSWOW64)
After some false starts in the past I am very interested in seeing this!
David
ivar
18th November 2009, 14:58
Allright! I`ve been missing something like this also, especially one that takes a wide range of input formats. Will it be kind of like windows movie maker? (just better of course)
teejee2008
18th November 2009, 15:07
@davidhorman
I removed the check for avisynth. Download this file:
v1.0.1 Beta (http://www.fileden.com/files/2009/9/13/2574323/AviSynth%20Studio%201.0.1%20Beta.7z)
Can you check if the following registry key exists on your computer?
HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth
This key is supposed to exist if Avisynth is installed correctly.
teejee2008
18th November 2009, 15:10
@ivar
I'm taking some ideas from windows movie maker but it won't be exactly the same :)
So far it can do only basic editing like cut/copy/paste etc. I have not added any filters till now.
osgZach
18th November 2009, 16:14
This looks like something to follow. Not sure if I have much use for it right now but I will keep following development.
Any plans for GPU acceleration / filters ?
wonkey_monkey
18th November 2009, 16:39
@davidhorman
I removed the check for avisynth. Download this file:
v1.0.1 Beta (http://www.fileden.com/files/2009/9/13/2574323/AviSynth%20Studio%201.0.1%20Beta.7z)
Now I get a bunch of unhandled exceptions (whether I have the 32-bit or 64-bit version of mediainfo.dll):
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.BadImageFormatException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
at AvisynthStudio.frmMain.MouseMove_UpdateStatusBar()
at AvisynthStudio.frmMain.frmMain_Load(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3603 (GDR.050727-3600)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
AvisynthStudio
Assembly Version: 1.0.1.0
Win32 Version: 1.0.1.0
CodeBase: file:///C:/Documents%20and%20Settings/Administrator/Desktop/AviSynth%20Studio/AvisynthStudio.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Can you check if the following registry key exists on your computer?
HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth
This key is supposed to exist if Avisynth is installed correctly.
It's not there, but there is:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AviSynth
David
Zarxrax
18th November 2009, 17:11
What exactly are your plans for this? How far are you willing to take it, feature-wise?
I'm getting an error too. v1.0.1 beta with 64bit mediainfo.dll Running on windows 7 64bit.
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.DirectX.AudioVideoPlayback, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Also, I find it ironic that in a video editor based on avisynth, it can't import avs scripts :p
2Bdecided
18th November 2009, 18:29
Can you check if the following registry key exists on your computer?
HKEY_LOCAL_MACHINE\SOFTWARE\AviSynth
This key is supposed to exist if Avisynth is installed correctly.I have that, under WinXP SP3, and I get "Microsoft .NET Framework - Unhandled exception... Could not load fileor assembly 'Microsoft.DirextX.AudioVideoPlayback'" etc etc
with a very similar (same?) list of exceptions to those seen by davidhorman
Cheers,
David.
honai
18th November 2009, 18:51
@teejee2008
Looks very promising, thanks!
Have you taken a look at AvsP? Might be worthwile to contact the author (qwerpoi) and see if you can combine some of your work.
Gargalash
18th November 2009, 19:01
Very interesting!
May I suggest the option to apply a external set of filters from an .avs file to the video? This way people will easily load and use their favorite tools and it will probably be a simpler way to add complex filters.
Good luck with your project.
MadRat
18th November 2009, 23:50
I've been wondering when someone would make an editor like this.
teejee2008
19th November 2009, 16:16
It's not there, but there is:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\AviSynth
That looks like the correct key.
There should be two values under that key:
(Default) = "Path to avisynth's install folder"
plugindir2_5 = "Path to plugins folder"
Can you please confirm this?
Now I get a bunch of unhandled exceptions (whether I have the 32-bit or 64-bit version of mediainfo.dll):
This program has not been tested on 64-bit windows. I have no idea why those exception are being thrown. I don't have a copy of 64-bit windows now. I'll test it later.
teejee2008
19th November 2009, 16:29
All those people who are getting 'Microsoft.DirectX.AudioVideoPlayback.dll' not found error, please install download the dlls from the internet and put them in the application folder. You will need two DLLs:
Microsoft.DirectX.AudioVideoPlayback.dll
Microsoft.DirectX.dll
The second one should be there on your system already.
The reason I didn't include it with the download is because I thought these files are available on every windows PC. I think these files are part of the DirectX 9c Update but i'm not sure. Download it off the internet or install the latest DirectX 9c update (http://download.softpedia.com/dl/a0e747b3de85e8262e395181a02e2b02/4b05623b/100003545/software/os_enhance/directx_aug2009_redist.exe)
wonkey_monkey
19th November 2009, 16:32
Can you please confirm this?
I can, those paths are present and correct. If I can be of any other help in testing x64, let me know - though from the sound of it, my problem (beyond the now-disabled AviSynth detection) is the same as 2Bdecided's on 32-bit.
David
teejee2008
19th November 2009, 16:35
What exactly are your plans for this? How far are you willing to take it, feature-wise?
As far as I can. I have never made an application like this before so I can't make any promises. I'm adding audio/video filters now. After that i'll decide what to do next.
Also, I find it ironic that in a video editor based on avisynth, it can't import avs scripts :p
Parsing an avisynth script and loading it is an insanely difficult task. So i'm using an XML based project file for saving and loading settings.
teejee2008
19th November 2009, 16:38
@davidhorman
Microsoft.DirextX.AudioVideoPlayback.dll can be downloaded from the internet.
I have a copy of XP. I'll install it tomorrow and see if I can find the problem.
wonkey_monkey
19th November 2009, 17:19
Microsoft.DirectX.AudioVideoPlayback.dll
Microsoft.DirectX.dll
I have both in C:\WINDOWS\Microsoft.NET\DirectX for Managed Code\1.0.2902.0 - should they be somewhere else?
Edit: sorry, your post may not apply to me, I'm having different errors.
David
tin3tin
19th November 2009, 18:51
Wow - you're doing what so many people have talked about for years... :)
v1.0.1 Beta works runs fine here on Vista(Used run as Admin...)
Now, how can we help? :)
There are Tango icons for NLEs here (http://francoiacomella.org/proyectos/tangolerra/doku.php).
Some bugs:
- I'm getting an error thanks to sample_type=32bit, which should be sample_type="32bit" in the blankclip function when importing other than mpg(avi, flv). I'm using Avisynth 2.60 beta.
- If I split a clip into two clips: A and B and change the order to B and A the B part will come out black and silent.
On features:
Locking/unlocking video and audio is a must IMHO.
Import of avisynth scripts.
Parsing an avisynth script and loading it is an insanely difficult task.
You know about the 'Import (http://avisynth.org/mediawiki/Import)' function right? If you add try/catch (http://avisynth.org/mediawiki/Non-clip_functions#Variable_Type_and_File_Checking_Functions) around the Import function you can get the error message and other info on the file. Then save the info to disk by using Writefile (http://avisynth.org/mediawiki/WriteFile) and let your player run the script so a txt file is produced. You can then let you app read from this text file, if the script has errors/has video/has audio etc.
To make sure that variables in the imported scripts will not interfere with each other you should use the import("avisynth_script.avs") from within a function.
When you got that part down. You could add AvsP as an external tool to allow users to open the scripts up in and edith them and when they colse AvsP(after saving the script under tha same name - just recheck the script for errors.
teejee2008
20th November 2009, 04:39
Also, I find it ironic that in a video editor based on avisynth, it can't import avs scripts :p
Parsing an avisynth script and loading it is an insanely difficult task. So i'm using an XML based project file for saving and loading settings.
I totally misunderstood what Zarxrax was trying to say. I thought he was talking about building a project from a avisynth script.
Importing an avisynth file as a source media can be done. I'm aware of the Import function. The problem is that I'm using MediaInfo for analyzing imported files. MediaInfo can't read info from AVS files. I will have to use ffmpeg or mplayer which will add another 5 to 10 MB to the download package. I'll do it later.
Now, how can we help? :)
All the video filters displayed in the GUI will be loaded using definitions from an XML file. I'll need help defining all the video filters. There are more than 100. I'll add a simple editor for editing the definitions.
There are Tango icons for NLEs here (http://francoiacomella.org/proyectos/tangolerra/doku.php).
Those icons are very good. Thanks for the link :)
Some bugs:
- I'm getting an error thanks to sample_type=32bit, which should be sample_type="32bit" in the blankclip function when importing other than mpg(avi, flv). I'm using Avisynth 2.60 beta.
- If I split a clip into two clips: A and B and change the order to B and A the B part will come out black and silent.
I'll fix it
On features:
Locking/unlocking video and audio is a must IMHO.
you can position the audio and video clips by dragging them along the timeline so that their start position are aligned together. You don't need to worry about the audio and video going out-of-sync. Locking the audio and video clips together so that they can be moved as a single unit will require some work. I'll do it later. its not a priority right now.
When you got that part down. You could add AvsP as an external tool to allow users to open the scripts up in and edith them and when they colse AvsP(after saving the script under tha same name - just recheck the script for errors.
I'll add it.
teejee2008
20th November 2009, 04:42
@davidhorman
I'll let you know if I find the problem.
tin3tin
20th November 2009, 07:45
The problem is that I'm using MediaInfo for analyzing imported files. MediaInfo can't read info from AVS files. I will have to use ffmpeg or mplayer which will add another 5 to 10 MB to the download package. I'll do it later.
What I'm saying is that you can use avisynth to extract information about the imported script. Please re-read my post above. There are avisynth functions like clip.width(), clip.height(), clip.framerate() and clip.framecount() too. These infos can be generated by a temp avisynth script, which can save that info to a temp file. This temp txt file you can let your app read the info from.
This is how DVD slideshow GUI does it - I can show you how I do it in wxBasic if you want.
For inspiration on how to handle multitrack, overlays and transitions in an xml format, you could take a look on how mtl (http://www.mltframework.org/twiki/bin/view/MLT/) is doing that: http://www.mltframework.org/twiki/bin/view/MLT/MltXml (http://www.mltframework.org/twiki/bin/view/MLT/MltXml)
Gavino
20th November 2009, 09:56
What I'm saying is that you can use avisynth to extract information about the imported script. Please re-read my post above. There are avisynth functions like clip.width(), clip.height(), clip.framerate() and clip.framecount() too. These infos can be generated by a temp avisynth script, which can save that info to a temp file. This temp txt file you can let your app read the info from.
Yes, use Avisynth to get the info, but instead of using a temporary script with WriteFile writing to a text file which you have to read back in, use the API directly via the library interface.
tin3tin
20th November 2009, 11:44
use the API directly via the library interface.
Can you explain how this is done in more detail? :)
Gavino
20th November 2009, 12:19
IScriptEnvironment* env = CreateScriptEnvironment();
gives you a script environment which you can use with any of the plugin API functions from avisynth.h. In particular, you can load a script by env->Invoke("Import", ...) and get properties from the resulting clip. Note that you need to link with avisynth.lib to make CreateScriptEnvironment available.
See also this post. This refers to the C API, so some of the details are different, but later in the thread, there are examples using C++ too. For just getting clip properties, the process is a bit simpler as you don't need to go as far as getting a frame.
Zarxrax
20th November 2009, 17:19
All those people who are getting 'Microsoft.DirectX.AudioVideoPlayback.dll' not found error, please install download the dlls from the internet and put them in the application folder. You will need two DLLs:
Microsoft.DirectX.AudioVideoPlayback.dll
Microsoft.DirectX.dll
The second one should be there on your system already.
The reason I didn't include it with the download is because I thought these files are available on every windows PC. I think these files are part of the DirectX 9c Update but i'm not sure. Download it off the internet or install the latest DirectX 9c update (http://download.softpedia.com/dl/a0e747b3de85e8262e395181a02e2b02/4b05623b/100003545/software/os_enhance/directx_aug2009_redist.exe)
I have directx 11, so apparently Microsoft.DirectX.AudioVideoPlayback.dll isn't included. I have the other file. I downloaded this dll and put it in the AviSynthStudio folder, and the error about that file went away, but I'm still getting constant unhandled exception errors.
System.BadImageFormatException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
This looks like an exciting application if it can be developed farther. There are hundreds or maybe thousands of people over at animemusicvideos.org who could use a decent free video editor. Since Microsoft has discontinued Windows Movie Maker as of windows 7 (the new WMM Live can not even be classified as a non-linear editor), there doesn't even exist any decent free video editing application anymore.
tebasuna51
20th November 2009, 20:43
@teejee2008
Please replace your bass plugins v2.3, in your installer with the last v2.4
I make (2008-3-14) some changes, from v2.3 to v2.4, in BassAudio.dll (interface between AviSynth and Bass libraries) very importants to decode audio correctly.
The BassAudio.dll v2.4 is in BeHappy package and the rest in http://www.un4seen.com/bass.html (remember change the names to match with your names)
@All BeHappy (or BassAudio.dll) users, update the Bass*.dll with v2.4 in your AviSynth plugins folder.
teejee2008
21st November 2009, 08:07
I have directx 11, so apparently Microsoft.DirectX.AudioVideoPlayback.dll isn't included. I have the other file. I downloaded this dll and put it in the AviSynthStudio folder, and the error about that file went away, but I'm still getting constant unhandled exception errors.
System.BadImageFormatException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
Putting the DLLs in the application directory will throw a lot of exceptions. These dlls have to be installed correctly. You can install the DirectX 9c update on your Win7 system without any problems. It only updates the DirectX 9c DLLs on your system. It won't have any effect on your DirectX 11 setup.
This looks like an exciting application if it can be developed farther. There are hundreds or maybe thousands of people over at animemusicvideos.org who could use a decent free video editor. Since Microsoft has discontinued Windows Movie Maker as of windows 7 (the new WMM Live can not even be classified as a non-linear editor), there doesn't even exist any decent free video editing application anymore.
I don't know how far I can take it. I'll try my best.
teejee2008
21st November 2009, 08:08
@tebasuna51
Thanks for the info. I'll include the updated DLLs next time.
teejee2008
21st November 2009, 08:10
@everybody
I have started adding video filters. It's almost done. I'll try to release a new build by Monday. It may take longer. This is what the filters window will look like:
http://teejee2008.wordpress.com/files/2009/11/avss_vf.jpg
tin3tin
21st November 2009, 12:57
Looks good. Earlier on you mentioned help for making filter definition files. I think AvsP got most of the covered - for setting up spinners and checkboxes. You should maybe look into the files included in AvsP.
Have you thought about how to implement transitions?
teejee2008
21st November 2009, 13:41
I'm using an XML based format for storing definitions. These definitions will be easy to make using the in-built editor (screenshot below)
http://teejee2008.wordpress.com/files/2009/11/avss_def.jpg
teejee2008
21st November 2009, 13:47
Transitions will be difficult to implement
Zarxrax
21st November 2009, 16:09
Do you plan to add support for 2 (or more) video tracks? Having at least 2 video tracks would give a LOT more freedom. Transparency and fades can be done via default avisynth functions.
Also, the plugin "TransAll" will give you access to 28 different transitions.
chris.
22nd November 2009, 17:41
Is the source available? What are your plans for licensing?
ricardo.santos
23rd November 2009, 09:48
SynthEditor, avisynth video editor:
http://forum.doom9.org/showthread.php?p=799564#post799564
Gavino
23rd November 2009, 11:15
Another example for comparison is AVSCutter:
http://www.ecs.fh-osnabrueck.de/avscutter.html
squid_80
23rd November 2009, 15:11
I suggest setting the .NET project to run as 32-bit code only, that should take away some of the headaches for win64 users.
markanini
23rd November 2009, 21:11
Maybe too early for such a request but I'd love to see functionality where I can select different crops of a clip for depanestimate.
nibbles
24th November 2009, 02:20
On x64, I'm getting a mass of errors when I try to run this.
************** Exception Text **************
System.BadImageFormatException: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
at AvisynthStudio.frmMain.MouseMove_UpdateStatusBar()
at AvisynthStudio.frmMain.frmMain_Load(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
teejee2008
24th November 2009, 15:45
I'll try to release the next beta by next week. There are some weird problems with the timeline that I have to fix.
teejee2008
24th November 2009, 15:46
@Zarxrax
2 video timelines is a good idea. I'll have to think about it.
The transAll plugin is great! i will try adding transitions in v1.2
teejee2008
24th November 2009, 15:49
@chris
this project is not open source. At least not yet. I'll release the source code when I stop working on this project.
teejee2008
24th November 2009, 15:51
@squid_80
thanks for the tip :) I'll do it next time.
tin3tin
24th November 2009, 16:30
DVD slideshow GUI (http://download.videohelp.com/tin2tin/) comes with 240+ transitions in avisynth script. :)
Zarxrax
24th November 2009, 17:17
@Zarxrax
2 video timelines is a good idea. I'll have to think about it.
The transAll plugin is great! i will try adding transitions in v1.2
I would recommend that you add transparency and crossfades in the same way that Sony Vegas does it. You could add transitions in the same way, by letting people drag and drop them onto an area that has a crossfade applied. I that sony vegas does it both the fastest and most intuitive way of any NLE out there. They have a trial version available if you need to see how it works.
Gavino
24th November 2009, 17:30
2 video timelines is a good idea.
Better still would be a (virtually) unlimited number of tracks, ie as many as the user chooses to add.
MJ Peg
1st December 2009, 14:14
Can I just say a big Well Done for starting a free/open NLE for Windows, as there's nothing else out there apart from Windows Movie Maker, and the free version of VideoPad. Everything else is either payware or horribly complicated / lacking features / unstable.
I've been driven to play with Linux, it's that bad! :) (see http://www.openshotvideo.com/ for an example of a one man coding effort - he seems to be doing very well)
... so a good Windows video editor should make you a very popular coder!
Thanks
teejee2008
1st December 2009, 14:48
Avisynth Studio v1.1 Beta
Changes:
* Added video filters
* Added an editor for creating/editing/deleting video filter definitions
* Avisynth scripts can be imported
* Avisynth will be detected correctly on 64-bit systems
* The generated script is much more optimized and readable
* Fixed a number of bugs which resulted in bad scripts being generated
* No need to create source clips for imported media which have not been used
* Added scaling method option to project properties
* Warn the user to save project before exiting
* Fixed a crash on copy/pasting a clip on the timeline
* Drawing the timeline now uses 50% less CPU
* Length of timeline was limited to 32,767 pixels (about 54 minutes). Now its unlimited.
* The resolution of the timeline (pixels per second) can be adjusted.
* Fixed a number of problems with clip handling
* Updated Bass Audio dlls to v2.4
* Added a check for video filter plugins. User will be warned if the plugin is missing.
* Added an option to silently update the project file without asking
* Added AvsP as an external tool for editing the generated script
* On moving the mouse over an imported media, media information will be shown in tooltip
* Thumbnails for imported media
* New application icon
* Fixed problems with missing DLLs. They are now included with the download.
Download (5 MB) (http://www.mediafire.com/?1zgmgiow2wi)
buzzqw
1st December 2009, 15:11
link is broken :(
BHH
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.