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 24th May 2019, 22:50   #81  |  Link
Wolfberry
Helenium(Easter)
 
Wolfberry's Avatar
 
Join Date: Aug 2017
Location: Hsinchu, Taiwan
Posts: 102
Quote:
Originally Posted by jackoneill View Post
By the way, did you need to patch VapourSynth to accomplish this?
I use gendef and dlltool to generate delay-import libraries from official VapourSynth and Python dlls, so no patch is needed.

What I mean by static is that ffmpeg will not require extra dlls at startup.

Quote:
Originally Posted by ChaosKing View Post
I think VS needs to be installed. ffmpeg & ffplay are working fine.
Tested with: ffplay.exe -f vapoursynth -i 'D:\test.vpy'
Portable VapourSynth should also works since this is the only one I tested.

I just extracted VapourSynth64-Portable-R45, python-3.7.3-embed-amd64 and ffmpeg to the same directory and use that as a testing environment.
__________________
Monochrome Anomaly

Last edited by Wolfberry; 28th May 2019 at 08:07.
Wolfberry is offline   Reply With Quote
Old 25th May 2019, 08:40   #82  |  Link
unix
Registered User
 
Join Date: Aug 2015
Posts: 37
Thank you Wolfberry.

By the way using direct vapoursynth method is it faster than vspipe to ffmpeg, or it depends on the filters that using?

Last edited by unix; 25th May 2019 at 09:16.
unix is offline   Reply With Quote
Old 28th May 2019, 08:24   #83  |  Link
Wolfberry
Helenium(Easter)
 
Wolfberry's Avatar
 
Join Date: Aug 2017
Location: Hsinchu, Taiwan
Posts: 102
Quote:
Originally Posted by unix View Post
By the way using direct vapoursynth method is it faster than vspipe to ffmpeg, or it depends on the filters that using?
Usually the native vapoursynth demuxer is faster than piping, but different implementation of the demuxer can have a impact on speed, see post #47 and #48 for details.
__________________
Monochrome Anomaly

Last edited by Wolfberry; 29th May 2019 at 10:11.
Wolfberry is offline   Reply With Quote
Old 31st May 2019, 05:39   #84  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,047
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.
Quote:
Originally Posted by jackoneill View Post
By the way, did you need to patch VapourSynth to accomplish this?
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.

Last edited by qyot27; 31st May 2019 at 16:47.
qyot27 is offline   Reply With Quote
Old 9th July 2019, 12:18   #85  |  Link
Wolfberry
Helenium(Easter)
 
Wolfberry's Avatar
 
Join Date: Aug 2017
Location: Hsinchu, Taiwan
Posts: 102
ffmpeg-20190729-43891ea-win64-static

Code:
ffmpeg version N-94405-g43891ea8ab Copyright (c) 2000-2019 the FFmpeg developers

built with gcc 9.1.1 (Built by Wolfberry) 20190727

configuration:  --enable-amf --enable-avisynth --enable-bzlib --enable-chromaprint --enable-cuda --enable-d3d11va --enable-ffnvcodec --enable-frei0r --enable-gray --enable-iconv 
--enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libcdio --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi 
--enable-libgme --enable-liblensfun --enable-libmfx --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-librubberband --enable-libsnappy 
--enable-libsoxr --enable-libsrt --enable-libssh --enable-libtesseract --enable-libvidstab --enable-libvmaf --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 
--enable-libzimg --enable-libzmq --enable-lzma --enable-nvdec --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-openssl --enable-pocketsphinx --enable-pthreads --enable-sdl2 
--enable-vapoursynth --enable-zlib --enable-gpl --enable-version3

libavutil      56. 32.100 / 56. 32.100
libavcodec     58. 55.100 / 58. 55.100
libavformat    58. 30.100 / 58. 30.100
libavdevice    58.  9.100 / 58.  9.100
libavfilter     7. 58.100 /  7. 58.100
libswscale      5.  6.100 /  5.  6.100
libswresample   3.  6.100 /  3.  6.100
libpostproc    55.  6.100 / 55.  6.100
__________________
Monochrome Anomaly

Last edited by Wolfberry; 29th July 2019 at 13:24.
Wolfberry 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 04:33.


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