Log in

View Full Version : Vapoursynth


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 [26] 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

lansing
10th February 2014, 20:14
I was trying the work around way to use the intel quicksync hw decoding from the LAV filter using graphicstudio. I tried ran it along with tivtc in avisynth mt on a blu ray video, but the speed is not good, so I'm just curious how it will do in vapoursynth.

Myrsloik
11th February 2014, 15:21
Short summary for those who can't be bothered to click links: I'm sneezing and a R23 will be done soon as a simple maintenance release.

Here's a slightly longer post (http://www.vapoursynth.com/2014/02/the-yearly-slowdown/) with a few more points. Most of them filler material.

foxyshadis
12th February 2014, 03:24
Cool, I'm looking forward to giving it a whirl.

Myrsloik
16th February 2014, 23:32
It's time for R23 RC1 (https://dl.dropboxusercontent.com/u/73468194/vapoursynth-r23-rc1.exe). Changes:
r23:
the frame range to output can now be set in vspipe as well using -start and -end
documentation fixes
minor build system improvement/fix (Zor)
removed debug printfs in windows x64 build, fixes piping to stdout
fixed tests
installer improvements

The included genericfilters also contains a fix for Canny. Test it, especially if your name is Mystery Keeper.

On a side note I secretly updated my vsrawsource builds to include Daemon404's large file support fix on windows. The links are in that other thread.

Mystery Keeper
17th February 2014, 02:55
Myrsloik, please specify the publisher in the installer. Good thing I remembered to run it as admin. Because last time I did not, and Windows 8 security warning (not UAC) hanged my PC big time.
Canny in 32bit works well where it crashed before. Thank you for your hard work.

Myrsloik
17th February 2014, 08:42
Myrsloik, please specify the publisher in the installer. Good thing I remembered to run it as admin. Because last time I did not, and Windows 8 security warning (not UAC) hanged my PC big time.
Canny in 32bit works well where it crashed before. Thank you for your hard work.

What do you mean by "specify the publisher"? That I didn't sign the installer binary?

Mystery Keeper
17th February 2014, 12:18
Yes. When I try to run it under Windows 8, its security kicks in (think it was Smart Screen) telling me "I shan't run it". If I just double click it, that message blocks everything, not reacting to mouse. Seems like a bug. I managed to get rid of it, but that's still annoying.

Myrsloik
17th February 2014, 14:23
Yes. When I try to run it under Windows 8, its security kicks in (think it was Smart Screen) telling me "I shan't run it". If I just double click it, that message blocks everything, not reacting to mouse. Seems like a bug. I managed to get rid of it, but that's still annoying.

You seem to be the only person with this issue. If it bothers you a lot we can try another session of remote computer control to try to figure it out.

I've just applied for a free open source project code signing certificate so hopefully I'll be able to use it to sign the final release.

Mystery Keeper
17th February 2014, 14:53
Hm. Tested it with explorer and SmartScreen didn't block. Don't bother. The bug seems to be in Unreal Commander.

kamineko
18th February 2014, 15:26
I'm also in the process of getting Vapoursynth working on my Mac for additional testing purposes. I've got the master branch working and compiling and all tests are passing 100%, so I'll switch over to making sure my CUDA branch works on Mac as well.
That sounds like it could save me a ton of work. Could you just outline in a few bullet points what needed to be done to compile Vapoursynth on Mac OSX?

Myrsloik
18th February 2014, 15:30
That sounds like it could save me a ton of work. Could you just outline in a few bullet points what needed to be done to compile Vapoursynth on Mac OSX?

It already works perfectly. See the compilation instructions included in the source.

lansing
19th February 2014, 04:38
Is there any native plugin for loading virtualdub filters?

Myrsloik
19th February 2014, 09:23
Is there any native plugin for loading virtualdub filters?

No. Which vdub filters do you want to use?

lansing
19th February 2014, 09:32
No. Which vdub filters do you want to use?

I use many, such as camcoder color denoise, neatvideo, acobw, color mill.

Myrsloik
19th February 2014, 23:38
I use many, such as camcoder color denoise, neatvideo, acobw, color mill.

Maybe I'll write a vdub plugin loader some day. Or sneakily hack out that one that's in avisynth. But first I'm going to do some other things...

Adub
20th February 2014, 05:20
It already works perfectly. See the compilation instructions included in the source.

Indeed, although you have to work a little bit harder to get a supported version of GCC for C++11 support working on Mac.

I recommend you install GCC using Homebrew, as it will handle the dependencies and guide you through the proper PATH updates, etc.

I haven't had a chance to dive into it again as work as been crazy but I plan on jumping on it again. Maybe I'll write up a blog post about my process...

kamineko
20th February 2014, 23:45
Indeed, although you have to work a little bit harder to get a supported version of GCC for C++11 support working on Mac.

I recommend you install GCC using Homebrew, as it will handle the dependencies and guide you through the proper PATH updates, etc.

I haven't had a chance to dive into it again as work as been crazy but I plan on jumping on it again. Maybe I'll write up a blog post about my process...
Yes, please do. I had Vapoursynth installed on Linux in less than 10 minutes, but I had almost all of the toolchain pre-installed. On Mac, I would start from zero. Your hints already indicate that there might be surprises on the way if you start from scratch.

EDIT: As an alternative, I would also be happy with a link to a pre-compiled one (OSX 10.9). I'd rather not have to start from scratch on the Mac just to compile this one app.

qyot27
21st February 2014, 00:28
If memory serves:

A) Install Xcode from the App Store and/or just the Command Line Tools package. Install Git (obviously). I can't remember if you need to install XQuartz for any of this stuff (possibly for mpv; you definitely need it if you plan to install Wine).
B) Install Homebrew
C) Install GCC 4.8, Automake, Libtool, Autoconf, Python 3, and the GNU binutils through Homebrew (am I missing anything?). Install Cython through pip3. Install libass (I guess the brew recipe is okay? I just compile it myself to be sure).
D) Install any of the FFmpeg-related library dependencies (optional). Homebrew can be used for the dependencies if you prefer, but for some you probably need to compile from source (x265, for instance).
E) Compile FFmpeg, only because I don't trust repositories to ever get the configuration right:
git clone git://source.ffmpeg.org/ffmpeg.git
cd ffmpeg
./configure --enable-gpl --enable-version3 --enable-avresample --enable-avisynth [insert other --enable- stuff for libraries here] --cc=gcc-4.8
make
sudo make install
F) Compile FFMS2:
git clone git://github.com/FFMS/ffms2.git
cd ffms2
./configure --enable-shared
make
sudo make install
G) Compile VapourSynth (you may also need to pass AR=gar RANLIB=granlib to ./waf configure; I'm not sure):
git clone git://github.com/vapoursynth/vapoursynth.git
cd vapoursynth
./bootstrap.py
CC=gcc-4.8 ./waf configure
./waf build
sudo ./waf install
sudo ./setup.py install

# Optionally, you'll probably want to symlink FFMS2's dylib into VapourSynth's autoload directory.
H) Install mpv through either Homebrew or by compiling it yourself (which you may need to do if you built FFmpeg rather than brewing it). It also uses Waf:
git clone git://github.com/mpv-player/mpv.git
cd mpv
./bootstrap.py
./waf configure --disable-debug-build --disable-vdpau
./waf build
sudo ./waf install


And I'm assuming Mavericks since, well, there's little reason not to. Even though when I reinstalled all this stuff fresh last weekend I did it on Lion and didn't upgrade to Mavericks until Monday or Tuesday. Since Mavericks' version of Xcode doesn't provide Apple-provided duplicates of some tools (autotools, notably), it should be easier to set up on Mavericks, rather than having to force symlinking into the Cellar like you have to do under Lion. I'm not sure if Mountain Lion still had them or not.

sl1pkn07
21st February 2014, 08:35
@Qyot27

why avisynth in ffmpeg? is need in linux/MacOS?

qyot27
21st February 2014, 18:21
@Qyot27

why avisynth in ffmpeg? is need in linux/MacOS?
There's no absolute need for it as far as VapourSynth's concerned, but it's
A) Completely free to enable, unlike the other external libraries.

B) Even though AvxSynth exists, the real usefulness of getting people into the habit of using --enable-avisynth will be for whenever cross-platform support is added to AviSynth+.

cretindesalpes
2nd March 2014, 01:29
HolyWu & Myrsloik:

Indeed. The removegrainvs.cpp modification below seems to fix it and gives much more accurate results. Add these lines:

add_x16_s32(sum_0, sum_1, a6, zero);
add_x16_s32(sum_0, sum_1, a7, zero);
add_x16_s32(sum_0, sum_1, a8, zero);

const __m128i fix_0 = _mm_srai_epi32 (sum_0, 15);
const __m128i fix_1 = _mm_srai_epi32 (sum_1, 15);
sum_0 = _mm_sub_epi32 (sum_0, fix_0);
sum_1 = _mm_sub_epi32 (sum_1, fix_1);

const __m128i mult =
_mm_load_si128(reinterpret_cast <const __m128i *> (_mult));
const __m128i val = mul_s32_s15_s16(sum_0, sum_1, mult);
And change this one:
ALIGNED_ARRAY(const int32_t OpRG20::_bias[4], 16) =
{ -0x8000 * 9 + 4, -0x8000 * 9 + 4, -0x8000 * 9 + 4, -0x8000 * 9 + 4 };

I fixed Dither_removegrain16 in Dither too.

Mystery Keeper
9th March 2014, 01:08
Still no motion compensation. Maybe someone who understands math better could try implementing this method (http://www.mia.uni-saarland.de/Publications/brox-eccv04-of.pdf)?

Myrsloik
9th March 2014, 12:57
Here's R23 RC2 (https://dl.dropboxusercontent.com/u/73468194/vapoursynth-r23-rc2.exe).

Should really be final this time.

All changes for R23:
fixed an issue with rearranging old order arguments for Lut2, Merge and MaskedMerge
fixed bugs in rgvs mode 20, eedi3 crash on windows and genericfilters crash in canny
the frame range to output can now be set in vspipe as well using -start and -end
documentation fixes
minor build system improvement/fix (Zor)
removed debug printfs in windows x64 build, fixes piping to stdout
fixed tests
installer improvements

Mystery Keeper
9th March 2014, 13:27
As always, thank you for your hard work.

Myrsloik
9th March 2014, 19:18
I tested rgvs mode 20 in new build and it seems that the bug still exists.

:thanks:

Try this x86 dll (https://dl.dropboxusercontent.com/u/73468194/RemoveGrainVS.dll). Used the wrong conversion because of a typo.

Myrsloik
12th March 2014, 18:18
I sneakily released r23. Only change from rc2 is the rgvs mode 20 fix (part 2). Full changelog and download link in the first post as usual.

sl1pkn07
12th March 2014, 23:53
thanks for the new version!

but always forget release the sources and update tags in github XD

greetings

Myrsloik
16th March 2014, 13:05
thanks for the new version!

but always forget release the sources and update tags in github XD

greetings

Internet connection broke 1 min before I could tag it and then I forgot. It's tagged now.

sl1pkn07
22nd March 2014, 14:26
Hi

my distro has update python 3(.3) to 3.4. now stop build (waf problem?)

http://sl1pkn07.no-ip.com/paste/view/6906276f

greetings

RTW47
22nd March 2014, 15:40
import vapoursynth as vs
core = vs.get_core()
video = core.avisource.AVISource(path=r'D:\ULRG.avi')
video.set_output()

Python exception: 'list' object has no attribute 'set_output'
Traceback (most recent call last):
File "vapoursynth.pyx", line 1148, in vapoursynth.vpy_evaluateScript
(src\cython\vapoursynth.c:18441)
File "D:\test.vpy", line 4, in <module>
video.set_output()
AttributeError: 'list' object has no attribute 'set_output'

#vapoursynth r23 on win32
#edit:. ~for me it looks like problem(s) only occur then loading Ut Video RGB (ULRG) or RGBA (ULRA)

Myrsloik
22nd March 2014, 17:26
import vapoursynth as vs
core = vs.get_core()
video = core.avisource.AVISource(path=r'D:\ULRG.avi')
video.set_output()

Python exception: 'list' object has no attribute 'set_output'
Traceback (most recent call last):
File "vapoursynth.pyx", line 1148, in vapoursynth.vpy_evaluateScript
(src\cython\vapoursynth.c:18441)
File "D:\test.vpy", line 4, in <module>
video.set_output()
AttributeError: 'list' object has no attribute 'set_output'

#vapoursynth r23 on win32
#edit:. ~for me it looks like problem(s) only occur then loading Ut Video RGB (ULRG) or RGBA (ULRA)

It's probably working. Since you have alpha (or avisource guessed alpha more likely in the first case) the return isn't a single clip. It's an array of two clips, one with rgb video and one gray clip containing the alpha channel.

You most likely intended to do: video[0].set_output()

RTW47
23rd March 2014, 00:19
@Myrsloik, thanks for the note.
got video preview in vdub working the following way:
...
video = core.resize.Bicubic(video[0], format=vs.COMPATBGR32)
video = core.std.FlipVertical(video) #converting with COMPATBGR32, still flips output upside down;
video.set_output()

Myrsloik
6th April 2014, 22:17
I guess it's time for a status update. I've been busy working on the mvtools replacement and that's why there haven't been any other visible activity. It's still far from even being a proof of concept so don't expect it to be done soon.

Unfortunately I'm probably going to be too busy to make any real progress until July.

pokazene_maslo
14th April 2014, 11:16
Myrsloik: good luck with those mvtools, i'm looking forward to them

LoRd_MuldeR
6th May 2014, 00:27
Is there are particular reason why VapourSynth explicitly requires Python 3.3 and won't work with Python 3.4?

I'm asking, because I had installed the latest official Python 3.x, which current is Python 3.4.0. But the VapourSynth installer refused to install, until I installed Python 3.3 as well.

sl1pkn07
6th May 2014, 02:40
use waf 1.7.15 instead of waf download by bootstrap

Myrsloik
6th May 2014, 04:01
Is there are particular reason why VapourSynth explicitly requires Python 3.3 and won't work with Python 3.4?

I'm asking, because I had installed the latest official Python 3.x, which current is Python 3.4.0. But the VapourSynth installer refused to install, until I installed Python 3.3 as well.

Because 3.3 was the most recent branch when I made the last release on Windows. To compile it for more than one python version at a time is simply too much work. I already need to prepare both 32 and 64 bit binaries.

So which python version do you want to see the next release work with? 3.3 like now or 3.4 since it's the latest?

LoRd_MuldeR
6th May 2014, 10:50
Because 3.3 was the most recent branch when I made the last release on Windows. To compile it for more than one python version at a time is simply too much work. I already need to prepare both 32 and 64 bit binaries.

So Python sub-versions like v3.3 and v3.4 are not binary compatible and it's really not possible to make a VapourSynth binary that works with both? Or is that more an installer issue?

(I would have expected that Python v2.x and v3.x are not compatible, but v3.x sub-versions should be - at least if they follow the rules of semantic versioning (http://semver.org/)!)

So which python version do you want to see the next release work with? 3.3 like now or 3.4 since it's the latest?

Unless there are any known regressions, I would probably go with the latest release?

Myrsloik
6th May 2014, 11:26
So Python sub-versions like v3.3 and v3.4 are not binary compatible and it's really not possible to make a VapourSynth binary that works with both? Or is that more an installer issue?


It's a python issue, I think. Or at least a windows python/cython one. All modules compiles with cython link against a specific python version. There are actually sometimes quite big api changes between python releases even if the numbers don't hint at it.

I'll make one more maintenance release using python 3.3 and then I'm going to switch.

itzkin
6th May 2014, 15:38
Hello
First I want to say that Vapoursynth is great. While I've only just started, I think it has huge potential.

I have 2 questions:
1) My clips get no audio?
In Avisynth there is FFVideoSource(clip) and FFAudioSource(clip). In Vapoursynth I know only of core.ffms2.Source(). Maybe there is another function I don't know about and can't find in the documentation?
Speaking of which are there any other sources of information except this thread and vapoursynth.com?

2) While I managed to get it working, I am still not sure what happens when I use the VSFS? Reading about Avisynth it was relatively easy for me to grasp the idea that the script is faking as a video file for the next piece of software, but now I am getting confused. How viable is VSFS in a web environment?

nu774
6th May 2014, 15:39
Linked python API library is controlled by pragma in pyconfig.h in case of MSVC.
By adding Py_LIMITED_API definition, generic python3.lib will be picked (this can be done by adding define_macros to setup.py).

HOWEVER, this doesn't work anyway. Generated C source (by Cython) seems to have references to _typeobject related things that is not visible when Py_LIMITED_API is defined.

Reel.Deel
6th May 2014, 15:45
I have 2 questions:
1) My clips get no audio?
In Avisynth there is FFVideoSource(clip) and FFAudioSource(clip). In Vapoursynth I know only of core.ffms2.Source(). Maybe there is another function I don't know about and can't find in the documentation?...

VapourSynth only supports video.

itzkin
6th May 2014, 20:42
VapourSynth only supports video.

Might be a good idea to have that mentioned in the first post or anywhere on its website.

foxyshadis
11th May 2014, 02:46
2) While I managed to get it working, I am still not sure what happens when I use the VSFS? Reading about Avisynth it was relatively easy for me to grasp the idea that the script is faking as a video file for the next piece of software, but now I am getting confused. How viable is VSFS in a web environment?

VSFS allows applications that don't understand VS to see a plain avi file instead, that is a real uncompressed avi to the app. VSFS (via Pismo, which makes writing filesystem filters much easier) intercepts all of the read calls and inserts its own fake data to create a simulacrum of an avi. AVFS works the same way.

foxyshadis
12th May 2014, 09:32
OK, getting VS to build and run was one of the least fun experiences in a while, thanks in no small part to python, but now that I have it up and running I can start submitting a few patches. First, boosting the avisynth compatibility library to read all cpu levels avisynth supports, via VS's already-existing detection. (Allows JpegSource to run, perhaps others.)

Myrsloik
12th May 2014, 11:40
OK, getting VS to build and run was one of the least fun experiences in a while, thanks in no small part to python, but now that I have it up and running I can start submitting a few patches. First, boosting the avisynth compatibility library to read all cpu levels avisynth supports, via VS's already-existing detection. (Allows JpegSource to run, perhaps others.)

Is there any way I could convince you to make it pull requests on github? I can easily merge and comment patches even while I'm out travelling that way. If you don't this won't be applied for many weeks.

The patch itself is ok if you remove the
+ if (cpuf.fma3) ; // no equivalent
+ if (cpuf.avx2) ; // no equivalent
lines since they're dead code that will generate warnings.

If you tried to build it on linux recently there probably are some problems since lachs0r recently replaced most of the build system. Just create bugs for any odd stuff you find and he'll try to fix it.

jackoneill
12th May 2014, 11:53
OK, getting VS to build and run was one of the least fun experiences in a while, thanks in no small part to python, but now that I have it up and running I can start submitting a few patches. First, boosting the avisynth compatibility library to read all cpu levels avisynth supports, via VS's already-existing detection. (Allows JpegSource to run, perhaps others.)

Some of your lines are indented with tabs.

foxyshadis
13th May 2014, 10:30
Never used pull requests, hope this is how you do it.

Some of your lines are indented with tabs.

Oops, I thought I caught all of those. Thanks.

The build problems were dependency building problems (getting ffmpeg and python to build), which never fully worked even with a cross-compile, in the end I just picked up pre-built dev builds. Eventually I'll get them going. The rest was figuring out more about how pyd extensions work, I did learn a lot.

The core Vapoursynth.dll project in MSVC links to the libraries libswscale.a and libavutil.a, but using those, I consistently got dll import problems. I had to change them to swscale.lib and avutil.lib from zeranoe's builds to get them to link right, otherwise it was looking for sws imports in libavutil.dll (maybe a static build would avoid this problem? I used dynamic libraries). When I hunted for answers on stackoverflow, it seems to be a problem with library file formats. Maybe 2013 Update 2 will fix that.

YamashitaRen
15th July 2014, 18:30
Hello.
I'm trying to compile vapoursynth on ARM but waf absolutely wants to use -msse2 ...
How can I disable this switch ?

Here is the config.log : http://pastebin.com/f83FKA9g
Thanks :)

edit : wrong config.log, now it's corrected

Myrsloik
27th July 2014, 00:38
VapourSynth R24 test 2 (https://www.dropbox.com/s/3zis87bhaxbj53l/vapoursynth_r24_test2.exe)
Will be released as is unless someone finds issues or suggests simple awesome features.
Needs Python 3.4
Things that could use extra testing: vivtc and vspipe

Changes:
r24:
vsvfw now properly returns an error message when no output has been set instead of silently failing
fixed a reference leak in vsscript
vspipe has a new argument for passing on values to the script environment from the command line
vspipe now has improved command line parsing and short forms, however old command lines will have to be modified to work
re-added clip.output()
fixed a filter error propagation issue
mixed improvements to vivtc (nodame)
fixed mac compilation of genericfilters
added FreezeFrames, DuplicateFrames and DeleteFrames, they can all delete/duplicate/freeze multiple frames with one command (nodame)
mixed documentation improvements (nodame)
fixed tracking of memory usage that was broken in r22 (nodame)
vivtc now uses framedifference internally and runs completely in parallel, also minor metric reporting fixes (nodame)

I'M BACK!

THIS PROJECT ISN'T EVEN HALF AS DEAD AS CERTAIN OTHER PROJECTS!