§ ¶VirtualDub 1.8.0 Released
VirtualDub 1.8.0 is out -- this is a new experimental release that contains many changes I've been working on in the background for months. As this is an experimental release, it is recommended that you stick with 1.7.8 for production use. However, any feedback on changes in 1.8.0 is appreciated and will be used as the 1.8.x branch eventually becomes the new stable branch.
The main big change in 1.8.0 is enhanced audio support, including:
- Support for reading and writing VBR audio with correct sync.
- Input plugins can expose true VBR audio.
- Support for multiplexing in raw MP3 tracks.
- Support for selecting the source audio track when multiple audio tracks are present.
- Built-in audio decoding support for ”-law, A-law, MP2, and MP3 audio.
The VBR warning is still displayed by default, although it can be disabled in Preferences; turns out, some people were using it to detect files that were unlikely to play properly on their hardware players.
The video filter subsystem has also been overhauled for 1.8.0. A side effect of the changes is that some video filters -- in particular, those that use GDI to draw on video frames -- may run slightly slower. However, there are other changes which can allow the filter chain to run much faster as well. The changes:
- Video filters can now increase or decrease the frame rate. A frame rate doubling filter (bob doubler) has been added to exercise this capability.
- Individual filter entries can be temporarily enabled or disabled via checkmark.
- The filter chain can now run directly with YCbCr formats. Existing video filters are still supported via implicit conversion; new video filters can choose to support any subset of the available formats.
- Cropping is supported in YCbCr. The pipeline will, by default, convert YCbCr video to a format with higher chroma resolution if necessary to do the crop -- for instance, attempting to crop to odd pixel boundaries will force a conversion from 4:2:0 to 4:4:4. There is an option in the crop dialog to snap the crop boundaries instead of forcing a conversion.
- The "resize" video filter can now run directly in all supported YCbCr formats. In some cases, this can be significantly faster, as much as 50% faster when this also allows conversions to and from RGB to be omitted.
- The pipeline will automatically convert video formats as necessary. For instance, it is possible to run most of the filter chain in 4:2:0 and convert to 32-bit RGB later to run an existing video filter. The filter dialog indicates where conversions are taking place in the filter chain and can also display the exact formats involved.
- A "convert format" video filter has been added to force conversion to a specific format at a specific point in the filter chain.
- Capture mode has also been enhanced to take advantage of YCbCr filtering. The end conversion to 24-bit RGB is now optional, which means that YCbCr data can be filtered and fed directly to the video codec for enhanced speed.
Video filter authors interested in adding frame rate modification or YCbCr support to their filter should consult the VirtualDub Plugin SDK, version 0.7. The Plugin SDK is still pre-release, but comments and questions are welcome.
There are other miscellaneous changes in 1.8.0, as well as bug fixes that were too risky or extensive to push into 1.7.8.
As I write this, there is an issue on the SourceForge project servers that is preventing me from updating the download page for 1.8.0. If this is still an issue when you read this, visit the VirtualDub project page on SourceForge, and you should be able to download both 1.7.8 and 1.8.0. For those of you who are signed up for new release notifications, the file releases have now been split into stable and experimental packages, so you should subscribe to the virtualdub-experimental package if you wish to be notified when a new experimental release is available. I'd also encourage you to visit the Testing/Bug Reports section of the forum occasionally, as bleeding-edge test releases also appear there.
Changelist after the jump....
Build 29393 (1.8.0, experimental): [February 24, 2008]
* The old support for reading "striped AVIs" has been removed.
* Alternate audio streams in an AVI file can now be chosen.
* Added fallback audio decoders for mu-law, A-law, MP2, and MP3 formats.
* Video files with audio tracks can also be used for replacing existing
* MP3 files without a WAV header can now be used as input.
* Added support for writing AVI files with VBR audio.
* The default frame rate for loaded image sequences can now be changed in
* The time knob can be dragged during a preview.
* Mark-in and mark-out commands now work during preview.
* Added new "time stretch" audio filter.
* Increased precision of ratios for audio stretch filters.
* Added "zone plate" test video mode.
* Changes to the input color format are now reflected in the preview panes.
* Added support for non-standard 15fps MPEG-1 video streams.
* VBR warning for AVI audio streams can now be toggled in Preferences.
* Filters: Can now be toggled on and off in the filter list.
* Filters: Fast YCbCr cropping is now supported.
* Filters: Flip vertically, grayscale, and resize now support direct planar
* Filters: Added "convert format" video filter.
* Filters: Redesigned color popup; hold down SHIFT. Now works after
stretching video window.
* Script: Implemented string+int, string+long, and string+double.
* Plugins: Input driver plugins can now delegate video decompression to
* Capture: Added /capfilealloc switch to preallocate capture files from the
* Hex editor: Now supports Unicode filenames.
* Cmdline: Ctrl+C/Break when a render is running also aborts a running
* If a particular input driver is forced when opening a video, that driver
is remembered in a job.
* Video filter dialog didn't update the indicated frame sizes properly when
deleting a filter.
* Fixed slight delay when a rendering job stops.
* Optimized AVI frame index code to avoid extreme delay when starting a direct
stream mode operation on an AVI file with only one key frame.
* Progress bar is now lies less when reindexing large AVI files.
* Fixed issue in AVI aggressive recovery algorithm that could cause valid
chunks to be missed.
* Selection was not properly saved in .vcf files, causing it to be invalid on
load if edits had occurred.
* Fixed crash when dragging curve points with no video loaded.
* Video/audio error mode dialogs weren't properly disabling options not
supported for the current input file.
* Capture: Video filter list now reflects active capture format.
* D3D: Fixed slowdown when bicubic mode is enabled.
Wow, VBR MP3 support, thats great, thanks for adding this!
ak - 24 02 08 - 21:07
Cool! Now if you could bolt on matroska support which is present on virtualdubmod then I can finally get rid of it :)
(Oh yeah, the streams menu of vddubmod is kinda neat too!)
Anyway, cool one :)
ggn - 25 02 08 - 03:18
w00t! That's neat! I was quite sad to be forced to leave Virtualdub behind due to the speed penalty incurred on YUV material resizing and re-encoding (redefining avisynth scripts every time was getting tedious). It's almost worth booting into Windows again now - Avidemux just isn't Virtualdub in terms of stability.
Mitch 74 (link) - 25 02 08 - 04:31
Alternate audio streams choosing, import audio tracks from video files, MP3 files as input, writing AVI files with VBR audio and draggable time knob can during a preview!
Good features! I was waiting for these! Really good job, thank you!
joeSeggiola - 25 02 08 - 08:42
will there be a virtualdub 2.0 release in the future?
1.8 sounds as if we could soon expect a 2.0 follow up in some time
shevegen - 26 02 08 - 03:39
Cool feature set!
The url under "VirtualDub Plugin SDK, version 0.7." is "h t t p : //vdpluginsdk-0.7.p/" it probably should be "h t t p : //www.virtualdub.org/beta/VDPluginSDK-0.7.zip"
IanB - 26 02 08 - 16:41
Whoops, link fixed.
VirtualDub 2.0? Perhaps if I run out of version numbers....
Phaeron - 27 02 08 - 00:24
AVI files with VBR audio? I've always been told this is a risk. Even if these AVI files do work in many players, this is not "AVI standard" compliant...
topolinik - 27 02 08 - 04:53
The suport for MP3 was really great! But it come a little to late sisce avisynth can do some miracles with things...
I think that for a vd 2.0 to be released it will be a great idea to add a MKV/OGM simple suport and for the seq. releases a improvement on that.
today, virtual dub do not have a suport for non-vfw. I think that suport would be great after the implement of the mkv suport.
but it's only what I think that would make virtual dub really great. Depends on what the programer wants to do on virtual dub
id - 27 02 08 - 12:38
IŽll test it, VBR and MP3 without WAV header are features I usually need. Thanks! I wonder if you can allow joining different frame rate AVIs (keeping first one rate) as an option (donŽt care about A/V sync issues) it is frustrating not being able to do that.
isidro (link) - 27 02 08 - 13:15
Nice new features, but there is one thing, which was besser in the older versions:
The function "Don't run this job now; add it to job control so I can run it in batch mode." in the File/Save dialog isnt saved for next use anymore - so i have to click it every time :(
form - 27 02 08 - 20:46
Yeah, you're right -- but it works on enough players that it's become a defacto standard in some circles. That's why 1.8.0 supports it, but still has warnings enabled by default. When you import a raw MP3, it gives you a choice between CBR or VBR encoding and tells you about the compatibility/size tradeoff.
Better late than never.
As for Matroska support, that's a no-go in the core, because of the codec issue -- in practice, it's impossible to decode Matroska directly without having ffmpeg linked in and having custom logic for each format, because the way that the header data is mapped to each codec is non-standard and varies for each format. That means if you have an older Matroska-based app, it can't read new H.264-based files, because it doesn't have the codec and wouldn't know how to map the private data anyway. The Matroska team tried to get people together to create a new binary codec API, but sadly they weren't able to pull it off.
Video for Windows and DirectShow have the advantage that you can make *forward-compatible* applications, because it has a generic way to map files to codecs. The oldest version of VirtualDub can read AVI files generated with video codecs created years after it was released. It's true that Video for Windows is somewhat outdated, but that's why the internal logic within VirtualDub has changed dramatically -- it's no longer largely VFW based now that it has its own abstraction layer, and that's an important reason why I added support for input plugins, so people can add support for formats that VirtualDub and VFW don't natively support, like MPEG-2 and FLV. It also means that support can be worked on without me being a bottleneck.
VirtualDub doesn't support DirectShow natively right now for a couple of reasons, one being that using it for editing is fragile, and another is that you really need to write a DirectShow filter to use it to read frames from a video clip, and the normal way of doing that has legal issues (you have to link in a non-GPL-compatible static library). I've written a beta version of a DirectShow-based input plugin for 1.7.6+ that can read MPEG and Matroska files via DirectShow, but it's not yet reliable enough to make official and I haven't had time to work around all of the problems yet.
So, realistically, the best answer I can give is that you don't want me to implement Matroska support -- you want me to make it possible for someone else to do it, either via DirectShow or VirtualDub input plugin. Output plugin support isn't in yet, but it's been requested and I'm thinking about it.
I'm not sure this actually was saved in earlier versions, because I don't see it saved in 1.7.8 either. I'll put it in 1.8.1.
Phaeron - 28 02 08 - 00:02
Ok, Matroska format is not the best choice (though its support by VDub is highly needed), but what do you think about MP4 container?
M-t-P - 28 02 08 - 03:00
I didn't know that... well, there is a way to put a mkv in virtualdub the way it is now. In some way avisynth works on virtualdub to, but you have to reecode since avisynth do a yuv conversion on the image and put it as raw video (the same with the sound). This is good if you will put a mkv on an avi file but don't work to put back on mkv. The filters that exist on vd is awesome and easy to work on, that why I mentioned mkv suport.
id - 28 02 08 - 10:26
Just wanted to agree MP4 container / h.264 support would be great by itself.
But also to say VDub is one of the greatest free applications ever - We still appreciate all work done greatly.
old ecard guy (link) - 15 04 08 - 00:43
1-does the vbr support use many megabytes to pad the audio???
2-godd the checkmark, but we still need a unique setting window showing when saving
because too many times we forget to do that crucial setting in one of rhe many settings window..
Movmasty - 23 05 08 - 04:23
I have v-dub 1.10.4.the clip is AVI/Xvid-mp3. I have tried every setting I can think of to get "time stretch " to work.But the end product does not seem to be affected at all. When I try test, error says time-stretch has unconnected pins. I have tried autoconnect and auto arrange, checked and un checked.i have tried 1,2,and3 T-S filters and cant tell where to put them in the box in the window or how to connect them?
steve allred - 17 08 14 - 19:25