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 31st August 2019, 11:37   #81  |  Link
Natty
Noob
 
Join Date: Mar 2017
Posts: 221
Quote:
Originally Posted by Wolfberry View Post
404. That’s an error.

The requested URL was not found on this server. That’s all we know.
Natty is offline   Reply With Quote
Old 31st August 2019, 12:05   #82  |  Link
ChaosKing
Registered User
 
Join Date: Dec 2005
Location: Germany
Posts: 1,795
Quote:
Originally Posted by Natty View Post
404. That’s an error.

The requested URL was not found on this server. That’s all we know.
Click on his signature link, you can find a newer version there.
__________________
AVSRepoGUI // VSRepoGUI - Package Manager for AviSynth // VapourSynth
VapourSynth Portable FATPACK || VapourSynth Database
ChaosKing is offline   Reply With Quote
Old 31st August 2019, 13:18   #83  |  Link
Natty
Noob
 
Join Date: Mar 2017
Posts: 221
Quote:
Originally Posted by ChaosKing View Post
Click on his signature link, you can find a newer version there.
got it.
Natty is offline   Reply With Quote
Old 10th October 2019, 00:50   #84  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Quote:
Originally Posted by qyot27 View Post
Since I've now hammered out the kinks (hopefully), I'm able to answer this based on actually cross-compiling VapourSynth instead of using gendef on Windows dlls.

Not really. Most of the weirdness is in how to handle Python (it still needs to be gendeffed, et al.). VapourSynth itself has only three issues at play here:
  • src/vsscript/vsscript.cpp has an include of Windows.h that trips up cross-compiles due to case sensitivity.
  • No matter what I tried, I couldn't force NASM to recognize the multilib MinGW-w64 environment and actually compile 32-bit objects, so I have to force-override the Makefile to compile the correct object format.
  • The Requires.private invocation of python in vapoursynth-script.pc screws up FFmpeg's configure tests; Libs.private does work as expected.
  • A possible fourth issue is whether there's a case for including -lstdc++ in the .pc file's Libs(.private) stuff (it's not a problem when a bunch of other external libraries are enabled, since one/several of them pull in -lstdc++, but a 'simple' build of FFmpeg with VapourSynth and AviSynth as the only enabled external libraries fails unless --extra-libs is used to provide libstdc++ as detailed way earlier in this thread). Or whether a Cflags.private entry should be added for pkgconf users so -DVS_CORE_EXPORTS can be used only in the case of static linking. Essentially, this 'point' basically is just bikeshedding.

The entire process is documented here (link goes directly to the VapourSynth section of the guide):
https://github.com/qyot27/mpv/blob/e...ious.txt#L4396


One distinction is that when I'd tested with using gendef to handle VapourSynth too, I could get FFmpeg to link to it, but mpv refused to link to libavformat. gendeffing only Python and then cross-compiling VapourSynth like any other library results in both FFmpeg and mpv being able to link to it (importantly, mpv being able to directly play back scripts this way).

32-bit and 64-bit FFmpeg and mpv with static VapourSynth

Said binaries include *both* VS demuxers. The upstream demuxer is still 'vapoursynth', and the other one is 'vapoursynth_alt'. It's easy to tell them apart because they return different data types as input: '-f vapoursynth' returns wrapped_avframe, '-f vapoursynth_alt' returns rawvideo. The upstream demuxer also doesn't honor relative file paths across directories (in just FFMS2? maybe in general?), while the alt demuxer does.
Both versions crash very quickly with my deinterlacing script. ffmpeg simply hangs and does nothing.
Wolfberry version does absolutely nothing- just ends without any print or error.
kolak is offline   Reply With Quote
Old 10th October 2019, 00:57   #85  |  Link
poisondeathray
Registered User
 
Join Date: Sep 2007
Posts: 5,340
Quote:
Originally Posted by kolak View Post
Both versions crash very quickly with my deinterlacing script. ffmpeg simply hangs and does nothing.
Wolfberry version does absolutely nothing- just ends without any print or error.
Is it valid script ? Does it work in other programs?

what does info say ?

vspipe --info script.vpy -

Post the script.
poisondeathray is offline   Reply With Quote
Old 10th October 2019, 04:21   #86  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,416
Roll back VapourSynth (git) and Python (release) to versions that were current at the end of May. Trying to mix and match versions will fail spectacularly.

Or don't use a build from nearly 5 months ago; use a current one built against the now-current versions of those environments.
qyot27 is offline   Reply With Quote
Old 10th October 2019, 09:58   #87  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Where can I find current build?
(script is absolutely fine)
kolak is offline   Reply With Quote
Old 10th October 2019, 12:28   #88  |  Link
unix
Registered User
 
Join Date: Aug 2015
Posts: 47
Quote:
Originally Posted by kolak View Post
Where can I find current build?
(script is absolutely fine)
https://drive.google.com/drive/folde...mHKYLzO3elemlC
unix is offline   Reply With Quote
Old 10th October 2019, 20:30   #89  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
I've used this one already:
ffmpeg-20190926-87ddf9f-win64-static.7z

and it does nothing. Maybe my PY is too new as it's the latest one (3.7.4).
kolak is offline   Reply With Quote
Old 11th October 2019, 01:39   #90  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,416
FFmpeg and mpv built with static VapourSynth/Python, 2019-10-10

VapourSynth: git-bae5d1a
Python: 3.7.4

The incompatibility is most likely tied to the version of Python, but VS itself probably incurs *some* of the restriction too (it matters which version of Python the VS .dlls were built against, just as much as it matters which one is linked into FFmpeg). I still have Python 3.7.3 and the official release build of R47 installed system-wide, but built FFmpeg with Python 3.7.4 and VapourSynth's current git HEAD. It worked just fine. It seems to be okay as long as the Python and VapourSynth linked into FFmpeg are newer than the ones on the system, but the inverse situation will almost certainly fail.

As before, both VapourSynth demuxers are present. The upstream demuxer is vapoursynth, the rawvideo demuxer patch provides vapoursynth_alt.
qyot27 is offline   Reply With Quote
Old 11th October 2019, 12:51   #91  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
THX.
Any difference in demuxers stability wise?
kolak is offline   Reply With Quote
Old 12th October 2019, 12:11   #92  |  Link
kolak
Registered User
 
Join Date: Nov 2004
Location: Poland
Posts: 2,843
Seems to be working. Just getting this:
"Script exceeded memory limit" which I assume is about some cache in vs. How do I increase it ?
With vapoursynth_alt speed is 3x better.

Last edited by kolak; 12th October 2019 at 12:13.
kolak is offline   Reply With Quote
Old 26th October 2019, 00:30   #93  |  Link
Pat357
Registered User
 
Join Date: Jun 2006
Posts: 452
The FFmpeg binaries work fine to play/process .VPY files directly ; the vapoursynth_alt demuxer seems faster than the build-in.

How to feed a.vpy directly to MPV ?
Is there a way to specify which demuxer/format to use when playing a .vpy file using MPV ?

Last edited by Pat357; 26th October 2019 at 00:37.
Pat357 is offline   Reply With Quote
Old 26th October 2019, 00:46   #94  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,416
--demuxer-lavf-format=vapoursynth (or vapoursynth_alt). The 64-bit mpv from the package I posted on the 10th also supports using VapourSynth as a video filter (for say, 24->60fps motion interpolation).

.vpy can associated with the above command in the config file, so you don't have to remember to use it:
Code:
[extension.vpy]
demuxer-lavf-format=vapoursynth
qyot27 is offline   Reply With Quote
Old 31st March 2020, 22:05   #95  |  Link
stax76
Registered User
 
stax76's Avatar
 
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
I'm trying to pipe from ffmpeg to the crappy SvtAv1EncApp, with avisynth it works using cmd, it sucks that it doesn't work with Windows Terminal and PowerShell, creates distorted output.

With VapourSynth it does not work with cmd either, vspipe doesn't support format conversation apparently. I don't know if the crappy Intel encoder supports y4m input, it's not documented at least.

ffmpeg.exe -loglevel fatal -hide_banner -i aaa.avs -nostdin -f rawvideo -pix_fmt yuv420p - | SvtAv1EncApp.exe -i stdin -n 328 -w 1280 -h 720 -q 20 -b test.ivf

ffmpeg.exe -loglevel fatal -hide_banner -f vapoursynth -i aaa.vpy -nostdin -f rawvideo -pix_fmt yuv420p - | SvtAv1EncApp.exe -i stdin -n 328 -w 1280 -h 720 -q 20 -b test.ivf


edit:

found a way:

ffmpeg -loglevel fatal -hide_banner -f vapoursynth -i aaa.vpy -nostdin -f yuv4mpegpipe -strict -1 -pix_fmt yuv420p - | SvtAv1EncApp -i stdin -n 328 -w 1280 -h 720 -q 20 -b aaa.ivf

Last edited by stax76; 31st March 2020 at 23:20.
stax76 is offline   Reply With Quote
Old 2nd April 2020, 05:09   #96  |  Link
Selur
Registered User
 
Selur's Avatar
 
Join Date: Oct 2001
Location: Germany
Posts: 7,255
@stax76: that looks strange,... isn't '-1' only needed when handling 10+bit content?
and shouldn't the output pixel format then be yuv420p10le (for example) ?
Analog to SvtHevcEncApp, I would try something like:
Code:
ffmpeg -y -loglevel fatal -noautorotate -nostdin -threads 8 -i "F:\TestClips&Co\files\10bitTest.mkv" -map 0:0 -an -sn -vf zscale=rangein=tv:range=tv -pix_fmt yuv420p10le -strict -1 -vsync 0  -f yuv4mpegpipe - | SvtAv1EncApp -i stdin -fps-num 25 -fps-denom 1 -n 429 -b "E:\Temp\10bitTest_06_05_51_8410_01.ivf"
to handle 10bit content,..

Cu Selur
__________________
Hybrid here in the forum, homepage

Last edited by Selur; 2nd April 2020 at 05:14.
Selur is offline   Reply With Quote
Old 2nd April 2020, 05:27   #97  |  Link
stax76
Registered User
 
stax76's Avatar
 
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
My code relies on the fact that for every progress a line break is written to the output stream, I've never seen a console app that don't do it and most .NET apps rely on this and working around it will take at least a day, I made a request and quit for now.
stax76 is offline   Reply With Quote
Old 20th June 2020, 17:19   #98  |  Link
poisondeathray
Registered User
 
Join Date: Sep 2007
Posts: 5,340
Are there any updated ffmpeg windows binaries complied with vapoursynth demuxer available ? Thanks
poisondeathray is offline   Reply With Quote
Old 20th June 2020, 17:38   #99  |  Link
stax76
Registered User
 
stax76's Avatar
 
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
In the staxrip apps dialog you can find binaries and download links. Last Patman build is from this month.
stax76 is offline   Reply With Quote
Old 20th June 2020, 17:40   #100  |  Link
poisondeathray
Registered User
 
Join Date: Sep 2007
Posts: 5,340
Quote:
Originally Posted by stax76 View Post
In the staxrip apps dialog you can find binaries and download links. Last Patman build is from this month.
Thanks
poisondeathray is offline   Reply With Quote
Reply

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 07:11.


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