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. |
23rd April 2015, 20:56 | #1062 | Link | |
Registered User
Join Date: Jun 2002
Location: On thin ice
Posts: 6,837
|
Has anybody a idea on this, is it likely a ffmpeg or AviSynth+ bug? I use AviSynth+ r1576 (x86/x64 installer) and ffmpeg-20150422-win64-static
Quote:
Last edited by stax76; 23rd April 2015 at 21:04. |
|
23rd April 2015, 21:44 | #1063 | Link | |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Quote:
Code:
#ifdef USING_AVISYNTH /* On Windows, FFmpeg supports AviSynth interface version 6 or higher. * This includes AviSynth 2.6 RC1 or higher, and AviSynth+ r1718 or higher, * and excludes 2.5 and the 2.6 alphas. Since AvxSynth identifies itself * as interface version 3 like 2.5.8, this needs to be special-cased. */ if (avs_library.avs_get_version(avs->clip) < 6) { av_log(s, AV_LOG_ERROR, "AviSynth version is too old. Please upgrade to either AviSynth 2.6 >= RC1 or AviSynth+ >= r1718.\n"); ret = AVERROR_UNKNOWN; goto fail; } #endif
__________________
Groucho's Avisynth Stuff |
|
23rd April 2015, 22:01 | #1065 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
What makes you think it's a bug? The devs have decided to only support interface version 6 and up. I'm sure they have a reason for that.
__________________
Groucho's Avisynth Stuff Last edited by Groucho2004; 23rd April 2015 at 22:06. |
24th April 2015, 03:47 | #1068 | Link | |
Registered User
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,079
|
ffmpeg dropping support for AviSynth 2.5x has already been a problem in earlier versions.
Quote:
Still the AviSynth SourceForge download page lists version 2.58 as the current stable release. Go figure... Cheers manolito Last edited by manolito; 24th April 2015 at 04:19. |
|
24th April 2015, 05:59 | #1069 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,420
|
The decision to drop support for anything below 2.6 RC1 was due to catastrophic header incompatibilities between 2.5 and 2.6 RC1* and the maintenance burden (and potential licensing minefield that could mean any additional 2.5 support would violate GPL) that would be incurred by trying to continue to support 2.5 while using properly updated 2.6 headers.
*technically, between 2.6a5 and RC1 too. The gory details: 2.6 RC1 changes several functions in avisynth_c.h from AVSC_INLINE to AVSC_API, functions that libavformat's AviSynth demuxer uses. These changes mean that using the up-to-date version of the header from either classic or Plus would cause libavformat's AviSynth demuxer to fail compilation. The only solution was to change those standalone calls into struct-sourced calls from LOAD_AVSC_FUNC, which allows for supporting the up-to-date headers but breaks all prior versions. 2.5 was supported through a compat header sourced from FFMS2, and only contained the pieces that had been adapted there (regarding the internal functionality of avs_get_row_size_p/avs_get_height_p that changed between 2.5 and the 2.6 alphas). Attempting to continue supporting 2.5 would require - similarly to what happened in AviSynth itself - moving the baked-in code from the old header into the compat header, swelling the latter with more things. But the compat header is under the MIT License, not the GPL. Moving GPL code into a non-GPL header is a no-no. So that would require trying to reverse engineer it. Further, the reverse engineered form would then require forcing more special-casing and code branching into the libavformat demuxer, which would work against the goal of it being [at least relatively] clean. And no one - not me, nor anyone else in the discussion on the FFmpeg-devel mailing list - were willing to or expressed any kind of interest in reverse engineering that for the sake of supporting a less stable, nearly 7 year old version of AviSynth when more stable and higher performance versions exist. Or for trying to support the 2.6 alphas when the support from the classic AviSynth devs for non-final versions has never lasted longer than the next alpha or RC release (see the CACHE_* changes in 2.6a4 requiring rebuilds of masktools-26). In short, it was the state of the AviSynth headers themselves that burned this particular bridge. The real preference is for using official headers rather than the transitional form header it used to use. The primary problem for Plus is that AviSynth+ 0.2 has yet to be formally released, so while we can say '2.6 RC1 or higher' for classic, users that go to avs-plus.net see the current stable version 0.1 (a.k.a. r1576), which is still in a pre-RC1 state and thus suffers from the same problem as classic 2.6a1-5 on this point. |
24th April 2015, 07:49 | #1070 | Link | |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Quote:
__________________
Groucho's Avisynth Stuff |
|
25th April 2015, 03:19 | #1071 | Link |
Registered User
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,079
|
@ qyot27
Thanks for the explanation, too. Looks like for the time being I will be stuck with versions before ffmpeg-20150324. Right now I mainly use the point release 2.5.2 from Dec_30_2014. Do you know if there are any significant improvements for MPEG2 encoding between this point release and the version from 2015/03/24 which make it worth upgrading? Cheers manolito |
26th April 2015, 06:58 | #1075 | Link | |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,420
|
Quote:
http://git.videolan.org/?p=ffmpeg.gi...it&s=mpegvideo There have been commits, but to what effect I don't know. |
|
26th April 2015, 11:58 | #1076 | Link |
random user
Join Date: May 2014
Location: #Neuland
Posts: 116
|
Hey, after the recent StaxRip64 talk I've repeated my test from here and here with QTGMC and this time with x64 AVS+:
medium thread count: Code:
SetFilterMTMode("DEFAULT_MT_MODE",2) SetFilterMTMode("LWLibavVideoSource",3) LWLibavVideoSource("sample.m2v") QTGMC(Preset="Medium") SelectEven() Prefetch(4) AVSMeter 1.9.8.0 (x64) AviSynth+ 0.1 (r1779, MT, x86_64) (0.1.0.0) Number of frames: 1754 Length (hh:mm:ss.ms): 00:01:10.160 Frame width: 720 Frame height: 576 Framerate: 25.000 (25/1) Colorspace: YV12 Frames processed: 1754 (0 - 1753) FPS (min | max | average): 4.496 | 182612 | 39.56 Memory usage (phys | virt): 377 | 385 MB Thread count: 67 CPU usage (average): 52% Time (elapsed): 00:00:44.339 # x86 result was: # FPS (min | max | average): 3.741 | 121742 | 35.30 # Memory usage (phys | virt): 350 | 366 MB # Thread count: 68 # CPU usage (average): 55% Code:
SetFilterMTMode("DEFAULT_MT_MODE",2) SetFilterMTMode("LWLibavVideoSource",3) LWLibavVideoSource("sample.m2v") QTGMC(Preset="Medium") SelectEven() Prefetch(10) AVSMeter 1.9.8.0 (x64) AviSynth+ 0.1 (r1779, MT, x86_64) (0.1.0.0) Number of frames: 1754 Length (hh:mm:ss.ms): 00:01:10.160 Frame width: 720 Frame height: 576 Framerate: 25.000 (25/1) Colorspace: YV12 Frame (current | last): 983 | 1753 FPS (cur | min | max | avg): 53.29 | 2.133 | 100437 | 54.22 Memory usage (phys | virt): 685 | 706 MB Thread count: 122 CPU usage (current | average): 94% | 95% Time (elapsed | estimated): 00:00:18.149 | 00:00:32.350 Press 'Esc' to cancel the process... # x86 result was: # FPS (min | max | average): 2.018 | 87337 | 48.62 # Memory usage (phys | virt): 703 | 731 MB # Thread count: 123 # CPU usage (average): 96%
__________________
BeHappy Audio Transcoder > <Doom9 forum> <Gleitz forum> <GitHub> MP4.tool GUI for MP4Box & L-SMASH muxer > https://www.mediafire.com/folder/3i6y6cbkyhblm/MP4.tool |
26th April 2015, 15:46 | #1077 | Link |
random user
Join Date: May 2014
Location: #Neuland
Posts: 116
|
I've cleaned up my plugins folder and leave only AVS+ core plugins and QTGMC core plugins (masktool, mvtools, rgtools, nnedi3), but it is still freezing, even with medium thread count.
And further the x86 version is now freezing too. Something strange is going on here, after the last M$ update round a few days ago the system wont booted so I had to recover. Maybe it is related to overclocking (FX-8320 @ 4100 MHz) but until now it was running fine for more than 1 year. However, the problem seems to be on my system, sorry for confusion.
__________________
BeHappy Audio Transcoder > <Doom9 forum> <Gleitz forum> <GitHub> MP4.tool GUI for MP4Box & L-SMASH muxer > https://www.mediafire.com/folder/3i6y6cbkyhblm/MP4.tool |
27th April 2015, 03:59 | #1079 | Link |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
What is the simplest way to properly activate MT with AviSynth+ ?
I have this script. I don't know if it's the most optimized but it works. How do I get that to work with AviSynth+ syntax? Code:
SetMTMode(3,4) PluginPath = "" AviSource("Input.avi", audio=false, pixel_type="YV12") SetMTMode(2) LoadPlugin(PluginPath+"ColorMatrix.dll") ColorMatrix(mode="Rec.601->Rec.709") LoadPlugin(PluginPath+"FFT3DFilter.dll") fft3dfilter(sigma=3, bt=5, bw=48, bh=48, ow=24, oh=24, ncpu=8) LoadPlugin(PluginPath+"nnedi3.dll") nnedi3_rpow2 (2) LoadPlugin(PluginPath+"eedi3.dll") eedi3_rpow2 (2) Spline36Resize(960, 720) fft3dfilter(bt=-1, sharpen=0.2, ncpu=8) Distributor()
__________________
FrameRateConverter | AvisynthShader | AvsFilterNet | Natural Grounding Player with Yin Media Encoder, 432hz Player, Powerliminals Player and Audio Video Muxer Last edited by MysteryX; 24th June 2015 at 06:13. |
27th April 2015, 07:49 | #1080 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,420
|
http://avisynth.nl/index.php/AviSynth%2B#MT_Notes
Also of note that using "" in SetFilterMTMode to mean the default was changed; the wiki just hasn't been updated. Personally, I'd format it differently: Code:
SetFilterMTMode("DEFAULT_MT_MODE",2) SetFilterMTMode("AviSource",3) PluginPath = "" LoadPlugin(PluginPath+"ColorMatrix.dll") LoadPlugin(PluginPath+"FFT3DFilter.dll") LoadPlugin(PluginPath+"nnedi3.dll") LoadPlugin(PluginPath+"eedi3.dll") AviSource("Input.avi", audio=false, pixel_type="YV12") ColorMatrix(mode="Rec.601->Rec.709") fft3dfilter(sigma=3, bt=5, bw=48, bh=48, ow=24, oh=24, ncpu=8) nnedi3_rpow2 (2) eedi3_rpow2 (2) Spline36Resize(960, 720) fft3dfilter(bt=-1, sharpen=0.2, ncpu=8) Prefetch(4) But, because the goal is that the user shouldn't have to worry about proper mode setting, the encouraged practice is to use the MtModes.avsi master file (linked to the gist because it's more straight-forward for downloading) and have it in your plugin autoload directory. If a plugin or filter you use isn't in that list, you're encouraged to report back which mode should be used for it so it could be added to the list. And, you could always add the SetFilterMTMode lines you come up with personally to that .avsi and never bother with them in-script, only using Prefetch at the end. |
|
|