R64 – New things break old things

This release fixes a lot of new things, Zen4 CPUs, Cython 3.x and OSX (not so new) compilation broken in R63.

It’s also the end for 32 bit binaries compiled by me. These binaries get almost no downloads and x64 was first introduced 24 years ago. At this point all x86 fans have a 64 bit CPU. And if you don’t you probably shouldn’t be processing video at all. 32 bit builds are also a lot less useful now that most Avisynth plugins have either been ported or have 64 bit support.

Next thing to go will probably be optimizations for x86 CPUs with less than AVX2. It’s already been 10 years since AVX2 was introduced and 8 years since all CPUs have shipped with support for it. These are more or less the same numbers SSE2 had back when I originally released VapourSynth with a SSE2 minimum requirement.

I bet many doom9 users will rage when that day comes, just like when XP support was removed.

R49 – Just another release

There’s a new release that fixes all known R48 regressions and bugs. Not much else to say about it really. One notable thing is that I got myself a raspberry pi recently so now I can actually test compilation on ARM easily and it won’t be broken all the time. I guess that’s interesting for some people.

Audio Support and how it works

Finally the first test version of audio support is ready and this post will describe how it works. Spoiler: It doesn’t work like in Avisynth.

In Python scripts audio nodes are just another unique type. They aren’t stuck together with a video track like in Avisynth. This can be both an advantage and a disadvantage, for example cutting audio and video at the same time by frame numbers will currently require a bit of user scripting. On the other hand with the correct helper functions it’ll be possible to manipulate multiple audio and video tracks as a group easily. Audio also always has a constant format unlike video.

Feedback and downloads are on the Doom9 forum as usual for highly experimental things.

Audio filters

  • BestAudioSource – a new sample accurate but somewhat slow FFmpeg based source filter (usage: core.bas.Source(“rule6.mp4”))
  • BlankAudio – a classic
  • AudioSplice and AudioTrim – with the expected Python overloads of course

Output support

  • VSPipe – outputs raw pcm audio and using the -y switch adds wave64 headers
  • AVFS – uses the audio node assigned to output slot 1
  • VFW – uses the audio node assigned to output slot 1 and video must be assigned to slot 0

An output example

import vapoursynth as vs
audio = vs.core.bas.Source("somefile.mp3", track=-1)
video = vs.core.std.BlankClip()
video.set_output(0)
audio.set_output(1)

API Notes and Changes

Currently the API isn’t completely stable but only minor changes are expected at this point so starting to port plugins. The only mildly breaking change is that the clip type in function argument strings now has been renamed to vnode and obviously the new anode type has been introduced which may confuse existing software tries to parse the argument strings.

The best way to think of audio nodes is as a type completely separate from video nodes that only happen to share some functions to manipulate them. For example you can’t mix audio and video nodes in the same VSMap key or in any other context.

IMWRI – Making it suck less

I’ve mentioned that I hate ImageMagick before. I still hate it but finally took the time to update AND test it for ImageMagick 7. As a result it’s now a mostly usable image source or at least should be. There are only a few remaining quirks which will probably exist for all time. Like being able to figure out if a source file is floating point for any remotely relevant format apart from TIFF. But enough about that, all 8-31 bit images will be assumed to be integer and all 32 bit images will be assumed to be float. Unless it’s in TIFF in which case it will all just magickally work.

Binaries and discussion are in this thread.

Seal holding its breath to avoid the smell of ImageMagick

YATTA 8-133 Released

The new version can be downloaded from the ivtc.org link to the left. Only for real encoders. See the previous post for the main changes.

Don’t expect regular updates. The existing codebase is so horrible I don’t want to make major changes. Report all bugs you find on IRC.

YATTA IS BACK

An ancient evil has returned. The number one IVTC tool for real encoders has been updated to better support modern windows versions. It includes several bug fixes and it’s now system DPI aware so it won’t look so bad. Head to #darkhold on Rizon.net if you’re one of the few who still know how to use it and want to test it.

Still no VapourSynth support though. Too much effort.