Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > VapourSynth

Reply
 
Thread Tools Search this Thread Display Modes
Old 3rd January 2016, 21:54   #1841  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
R30 RC1. The only thing left to do is to test imwri thoroughly and then I'll release it.

Try out all four 64 bit Avisynth 2.6 plugins and report your findings.

Changes:
Code:
r30:
added half precision float input/output to expr on cpus that have the f16c extension (ivy bridge or later)
added the possibility for plugins to print messages through the standard logging as well, don't use it unless you really have to
the build system should now autodetect which optional libraries are available
fixed ycocg conversions
planeaverage is now deprecated, use planestats instead
added planestats, a function that calculates min, max, average and difference of a frame at the same time
removed planedifference, deprecated since r28
added avisynth 2.6 and x64 support, note that x64 can only load 2.6 but not 2.5 plugins
no longer installs vsvfw.dlls into system dirs
added nfMakeLinear, this flag will make the immediately following cache do its best to make requests more linear, set it on source filters where seeking is slow
the installer will no longer fail if a newer than expected version of the visual studio runtimes are installed
vspipe now displays the correct number of total frames when -s is used
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 6th January 2016, 16:05   #1842  |  Link
salty1
Registered User
 
Join Date: Nov 2011
Posts: 4
Hello,
i suggest to seperate the props of Planestats.
in r30 RC minmax is in one props,not very easy to use.

i'm sorry for my poor english.
thank you very much
salty1 is offline   Reply With Quote
Old 6th January 2016, 16:20   #1843  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
Quote:
Originally Posted by salty1 View Post
Hello,
i suggest to seperate the props of Planestats.
in r30 RC minmax is in one props,not very easy to use.

i'm sorry for my poor english.
thank you very much
Why do you think it's hard to use? Example?
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 6th January 2016, 16:42   #1844  |  Link
salty1
Registered User
 
Join Date: Nov 2011
Posts: 4
Quote:
Originally Posted by Myrsloik View Post
Why do you think it's hard to use? Example?
for example:
if Ymax < 180 do something with this frame
else do something with this frame

i dont know how to use current props to complete that.
i am a rookie ripper and i dont know python at all...
so i suggest to seperate min and max
salty1 is offline   Reply With Quote
Old 6th January 2016, 18:42   #1845  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
Hint, it's an array:
Code:
if Yminmax[1] < 180:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 7th January 2016, 01:45   #1846  |  Link
salty1
Registered User
 
Join Date: Nov 2011
Posts: 4
Quote:
Originally Posted by Myrsloik View Post
Hint, it's an array:
Code:
if Yminmax[1] < 180:
salty1 is offline   Reply With Quote
Old 9th January 2016, 11:13   #1847  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 5,245
It seems that the media-autobuild_suite supports compiling mpv with support for VapourSynth, but only if VapourSynth is installed. So I wonder, how would I install VapourSynth inside an MSYS2/MinGW building environment? I guess I would more or less follow Linux installation steps, but I don't know if MSYS2 prefers different package managers...
__

P.S.:

VapourSynth installed in Windows is recognized only when it was installed to the default "Program Files (x86)" folder. In addition, it is not meant to recognize *.vpy files as media source now; but you might be able to use VapourSynth video filters inside mpv then (e.g. dare to apply QTGMC to a decoded video stream)... check if it is available:

Code:
mpv -vf help
__________________

German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid

Last edited by LigH; 9th January 2016 at 14:58.
LigH is offline   Reply With Quote
Old 14th January 2016, 00:27   #1848  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
Quote:
Originally Posted by LigH View Post
It seems that the media-autobuild_suite supports compiling mpv with support for VapourSynth, but only if VapourSynth is installed. So I wonder, how would I install VapourSynth inside an MSYS2/MinGW building environment? I guess I would more or less follow Linux installation steps, but I don't know if MSYS2 prefers different package managers...
__

P.S.:

VapourSynth installed in Windows is recognized only when it was installed to the default "Program Files (x86)" folder. In addition, it is not meant to recognize *.vpy files as media source now; but you might be able to use VapourSynth video filters inside mpv then (e.g. dare to apply QTGMC to a decoded video stream)... check if it is available:

Code:
mpv -vf help
That's an unsupported solution really, nobody does that. You're probably actually better off modifying the mpv build so it'll find the headers needed. If you really want to try that. Or poking wm4 to demand better windows support.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 14th January 2016, 00:34   #1849  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
I made a portable version of VapourSynth for those of you who hate installing things. Simply get the appropriate embedded python and unzip VapourSynth in the same directory (overwrite existing files).

Obviously only vspipe works for output (vfw and vsfs require installed files).

It's possible to use VapourSynth Editor if extracted into the python/vapoursynth dir as well.

64bit
32bit
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 14th January 2016, 01:26   #1850  |  Link
LigH
German doom9/Gleitz SuMo
 
LigH's Avatar
 
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 5,245
Quote:
Originally Posted by Myrsloik View Post
I made a portable version of VapourSynth for those of you who hate installing things.
Hooray! Selur (Hybrid) will praise you for this version!
__________________

German Gleitz board
MediaFire: x264 | x265 | VPx | AOM | Xvid
LigH is offline   Reply With Quote
Old 14th January 2016, 05:46   #1851  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 5,492
Nice! -> Doing some testing over the weekend.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 15th January 2016, 11:52   #1852  |  Link
an3k
Registered User
 
an3k's Avatar
 
Join Date: Oct 2006
Location: Munich, Germany
Posts: 147
Is it normal that there is no auto completion for the core functions? Eg. for core.[TAB][TAB] or core.std.[TAB][TAB]

First I thought something is broken but print(core.get_plugins()) (and a manual formatting afterwards) showed me all available plugins, their names and functions and a simple tryout of core.lsmas.LibavSMASHSource() showed that it is actually available and working.

I know it's Python but to be honest I'm not using VapourSynth to learn Python but as an replacement for AviSynth on Linux. The documentation definitely needs to be improved, eg. remove the Python reference and instead add a short howto of how users can find out how to load a given plugin as well as a list of basic functions like set_output()
Currently most of the doc (even the one of each plugin) is written for Windows which is kind of useless because AviSynth is still much better and since VS is running inside of Python there shouldn't be a difference between VS on Windows and VS on Linux beside path formatting.

I'm sorry for sounding ungrateful. I'm definitely not. I'm just a bit tired to trying things out when there could be a doc giving you hints so you know where to look (again, Python reference is not a hint). I actually made a build script that installs all dependencies (apt-get), grabs the latest sources for yasm, libenca, ffmpeg, x264, L-SMASH, etc. and builds these into your home directory so that you have a kind-of-portable user-installation of VapourSynth. It already builds without errors and VS is working but it's in preAlpha stage thus I haven't released it yet but definitely will.
an3k is offline   Reply With Quote
Old 15th January 2016, 11:59   #1853  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
Quote:
Originally Posted by an3k View Post
Is it normal that there is no auto completion for the core functions? Eg. for core.[TAB][TAB] or core.std.[TAB][TAB]

First I thought something is broken but print(core.get_plugins()) (and a manual formatting afterwards) showed me all available plugins, their names and functions and a simple tryout of core.lsmas.LibavSMASHSource() showed that it is actually available and working.

I know it's Python but to be honest I'm not using VapourSynth to learn Python but as an replacement for AviSynth on Linux. The documentation definitely needs to be improved, eg. remove the Python reference and instead add a short howto of how users can find out how to load a given plugin as well as a list of basic functions like set_output()
Currently most of the doc (even the one of each plugin) is written for Windows which is kind of useless because AviSynth is still much better and since VS is running inside of Python there shouldn't be a difference between VS on Windows and VS on Linux beside path formatting.

I'm sorry for sounding ungrateful. I'm definitely not. I'm just a bit tired to trying things out when there could be a doc giving you hints so you know where to look (again, Python reference is not a hint). I actually made a build script that installs all dependencies (apt-get), grabs the latest sources for yasm, libenca, ffmpeg, x264, L-SMASH, etc. and builds these into your home directory so that you have a kind-of-portable user-installation of VapourSynth. It already builds without errors and VS is working but it's in preAlpha stage thus I haven't released it yet but definitely will.
What's windows specific in the docs? Apart from maybe one or two example paths which linux users easily should identify as such.

If you have no intention of learning any Python at all you're going to have a horrible day. That's the way it is.

And WHY would I ever remove the parts of the docs that are useful for people who know Python? That makes absolutely no sense.

Hint:
core.list_functions() for formatted string output
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 15th January 2016, 12:36   #1854  |  Link
an3k
Registered User
 
an3k's Avatar
 
Join Date: Oct 2006
Location: Munich, Germany
Posts: 147
Quote:
Originally Posted by Myrsloik View Post
What's windows specific in the docs? Apart from maybe one or two example paths which linux users easily should identify as such.

If you have no intention of learning any Python at all you're going to have a horrible day. That's the way it is.

And WHY would I ever remove the parts of the docs that are useful for people who know Python? That makes absolutely no sense.

Hint:
core.list_functions() for formatted string output
Nobody would have to learn Python if the documentation would be written for the users point of view. Just as an example: http://www.vapoursynth.com/doc/functions/crop.html says that eg. std.CropRel(clip,0,0,132,132) will work. It doesn't. You know how to call CropRel corrently because you wrote VS but beginners (= those who need a documentation and for whose the documentation was written) don't and wonder what's going on. I know that core (or c or whatever the user chooses) has to specified before and depending on what is specified the std.CropRel() path is different but just use some defaults, eg. core, clip, etc. because it doesn't matter at all if you use core, C0R3, c or whatever to specify vs.get_core().
That way users can copy&paste from the documentation and learn what's the difference between eg. core.std.CropRel() and core.lsmas.LSMASHVideoSource()

People who know Python do need the Python reference? Nevermind. Remove it from the Documentation not from the website or put it into the "Advanced Users" section. It just discourages new users to get into VapourSynth like "Why do I need all of this, I just want to do simple cropping and deinterlacing." Python reference for advanced users is fine.

EDIT: I'm sorry, I mixed two links. Instead of Python Reference I meant the Python Tutorial. "If you donít know the basics of Python, you may want to check out the tutorial." - If a new user don't know Python he definitely does NOT want to read the whole 16 chapters of Python documentation or digg through it, especially NOT after just getting VapourSynth installed. A better approach would be to post an example script that creates a eg. 10 second video with the text "Yeah, VapourSynth is alive and kickin'" or something you prefer but also cheers the users victory of being done. And with comments in the script the user will learn what to use, etc.

As I said: you wrote the documentation from your point of view but since you know Python very well and also how VS works it's 100% clear to you what each bit of the doc means. From the users point of view it's just confusing.


Whatsoever, you feel affronted and very likely will me ignore completely from now on. That's funny because I just said that the documentation could be improved and AFAIK you are not a professional technical documentation writer!?!
an3k is offline   Reply With Quote
Old 15th January 2016, 14:27   #1855  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
Quote:
Originally Posted by an3k View Post
Nobody would have to learn Python if the documentation would be written for the users point of view. Just as an example: http://www.vapoursynth.com/doc/functions/crop.html says that eg. std.CropRel(clip,0,0,132,132) will work. It doesn't. You know how to call CropRel corrently because you wrote VS but beginners (= those who need a documentation and for whose the documentation was written) don't and wonder what's going on. I know that core (or c or whatever the user chooses) has to specified before and depending on what is specified the std.CropRel() path is different but just use some defaults, eg. core, clip, etc. because it doesn't matter at all if you use core, C0R3, c or whatever to specify vs.get_core().
That way users can copy&paste from the documentation and learn what's the difference between eg. core.std.CropRel() and core.lsmas.LSMASHVideoSource()

People who know Python do need the Python reference? Nevermind. Remove it from the Documentation not from the website or put it into the "Advanced Users" section. It just discourages new users to get into VapourSynth like "Why do I need all of this, I just want to do simple cropping and deinterlacing." Python reference for advanced users is fine.

EDIT: I'm sorry, I mixed two links. Instead of Python Reference I meant the Python Tutorial. "If you donít know the basics of Python, you may want to check out the tutorial." - If a new user don't know Python he definitely does NOT want to read the whole 16 chapters of Python documentation or digg through it, especially NOT after just getting VapourSynth installed. A better approach would be to post an example script that creates a eg. 10 second video with the text "Yeah, VapourSynth is alive and kickin'" or something you prefer but also cheers the users victory of being done. And with comments in the script the user will learn what to use, etc.

As I said: you wrote the documentation from your point of view but since you know Python very well and also how VS works it's 100% clear to you what each bit of the doc means. From the users point of view it's just confusing.


Whatsoever, you feel affronted and very likely will me ignore completely from now on. That's funny because I just said that the documentation could be improved and AFAIK you are not a professional technical documentation writer!?!
I don't know Python very well. I just look up what I need in the python docs usually... For some reason they have a scary similarity to the VapourSynth doc structure... I wonder why.

And reading the python tutorial is of course optional too. I simply didn't see any reason to spend the time to recreate something that says almost the same things. Basic control flow you have to learn whether you want it or not. Normal Avisynth barely does it so yes, you need to know more to use VapourSynth.

No, I'm not a technical documentation writer. You can tell I'm not because the documentation doesn't start with 5 pages of legal disclaimers such as "don't lick the power cord while in use". Are you?
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet
Myrsloik is offline   Reply With Quote
Old 15th January 2016, 19:20   #1856  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 5,492
Quote:
I made a portable version of VapourSynth for those of you who hate installing things.
Tried it and failed,...


Here's what I did:
  1. created a folder named Vapoursynth
  2. extracted vapoursynth64-portable-test into that folder (after downloading it from https://dl.dropboxusercontent.com/u/...rtable-test.7z)
  3. extracted python-3.5.1-embed-amd64 into that folder (after downloading it from https://www.python.org/ftp/python/3....mbed-amd64.zip)
  4. extracted the vslsmashsource.dll from L-SMASH-Works-r859-20160109-64bit into a subfolder of Vapoursynth\vapoursynth64\plugins named LSmashSource (after downloading L-SmASH-Works from https://www.dropbox.com/sh/3i81ttxf0...VhYLasmwa?dl=0)
  5. created a new Temp-folder and saved a test.vpy file in it:
    Code:
    import vapoursynth as vs
    core = vs.get_core()
    core.std.LoadPlugin(path=r'G:\Hybrid\VapourSynth\vapoursynth64\plugins\vslsmashsource.dll')
    clip = core.lsmas.LWLibavSource(source="F:\TestClips&Co\test.avi")
    clip.set_output()
    .
  6. opened a Windows command prompt and changed into the Vapoursynth folder.
  7. called the following call:
    Code:
    VSPipe.exe h:\Temp\test.vpy - --y4m | g:\Hybrid\x264.exe --demuxer y4m -o h:\Output\test.264 -
  8. and got this:
    Code:
    y4m [info]: 640x352p 0:0 @ 25/1 fps (cfr)
    No frame returned at the end of processing by LWLibavSourcex264 [
    info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    x264 [info]: profile High, level 3.0
    right before I got a 'VSPipe.exe has stopped working'

I'm new to Vapoursynth, so did I miss something obvious?

Cu Selur

Ps.: I really like the idea of a portable Vapoursynth version for Windows.
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 15th January 2016, 20:53   #1857  |  Link
TheFluff
Excessively jovial fellow
 
Join Date: Jun 2004
Location: rude
Posts: 1,005
Quote:
Originally Posted by an3k View Post
words
While it is true that Vapoursynth could definitely use a better tutorial/more gentle introduction on how to do things, I don't think you should criticize the reference documentation for being reference documentation. It has its place.

That being said, if you don't have at least basic programming knowledge and/or are willing to learn, Vapoursynth is probably not for you. With Avisynth you can get away with not really being a coder, you can just copypaste a bunch of filter lines, but with VS you sorta need to write actual code. Or at least you should, because the possibility of doing that is kinda the raison d'etre of VS.

Last edited by TheFluff; 15th January 2016 at 21:11.
TheFluff is offline   Reply With Quote
Old 15th January 2016, 21:45   #1858  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
Quote:
Originally Posted by Selur View Post
Tried it and failed,...


Here's what I did:
...

I'm new to Vapoursynth, so did I miss something obvious?

Cu Selur

Ps.: I really like the idea of a portable Vapoursynth version for Windows.
I tried in a completely clean windows 10 x64 vm with all updates. And used the same links as you in order. It works.

The only thing I had to change was comment out the loadplugin line (since it's already autoloaded when placed in vapoursynth64\plugins) and to add an r to escape the source path which your script doesn't.

So I have no idea why it won't work for you. Try simplifying it, like encode a blankclip with instead of lsmash source. Or run "vspipe -v" which will fail if vapoursynth is completely broken. Maybe you can narrow it down a bit more.

Btw, OS?
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet

Last edited by Myrsloik; 15th January 2016 at 21:58. Reason: Seplling
Myrsloik is offline   Reply With Quote
Old 15th January 2016, 22:03   #1859  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 5,492
Quote:
Btw, OS?
Win 10 pro 64bit
Quote:
Or run "vspipe -v"
reports:
Code:
VapourSynth Video Processing Library
Copyright (c) 2012-2015 Fredrik Mellbin
Core R30
API R3.4
Options: -
Quote:
and to add an r to escape the source path which your script doesn't.
using:
Code:
import vapoursynth as vs
core = vs.get_core()
core.std.LoadPlugin(path=r'G:/Hybrid/VapourSynth/vapoursynth64/plugins/LSmashSource/vslsmashsource.dll')
clip = core.lsmas.LWLibavSource(source=r"F:/TestClips&Co/test.avi")
clip.set_output()
still crashes VSPipe.exe.

using:
Code:
import vapoursynth as vs
core = vs.get_core()
#core.std.LoadPlugin(path=r'G:/Hybrid/VapourSynth/vapoursynth64/plugins/LSmashSource/vslsmashsource.dll')
#clip = core.lsmas.LWLibavSource(source=r"F:/TestClips&Co/test.avi")
clip = core.std.BlankClip()
clip.set_output()
gives me:
Code:
import vapoursynth as vs
core = vs.get_core()
#core.std.LoadPlugin(path=r'G:/Hybrid/VapourSynth/vapoursynth64/plugins/LSmashSource/vslsmashsource.dll')
#clip = core.lsmas.LWLibavSource(source=r"F:/TestClips&Co/test.avi")
clip = core.std.BlankClip()
clip.set_output()
using:
Code:
import vapoursynth as vs
core = vs.get_core()
#core.std.LoadPlugin(path=r'G:/Hybrid/VapourSynth/vapoursynth64/plugins/LSmashSource/vslsmashsource.dll')
#clip = core.lsmas.LWLibavSource(source=r"F:/TestClips&Co/test.avi")
clip = core.std.BlankClip(format=vs.YUV420P8)
clip.set_output()
works,... (using YUV420P16 instead of YUV420P8 works too)

Not sure if it helps, but the test.avi I use can be downloaded through my GoogleDrive.

Cu Selur
__________________
Hybrid here in the forum, homepage
Selur is offline   Reply With Quote
Old 15th January 2016, 22:25   #1860  |  Link
Myrsloik
Professional Code Monkey
 
Myrsloik's Avatar
 
Join Date: Jun 2003
Location: Ikea Chair
Posts: 1,752
Actually it seems like LWLibavSource simply doesn't like your test.avi. It crashes here too and it's because it returns a null frame without setting an error. Definitely a bug in the plugin.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet

Last edited by Myrsloik; 15th January 2016 at 22:28.
Myrsloik is offline   Reply With Quote
Reply

Tags
speed, vaporware, vapoursynth

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 16:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.