Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux support #14

Open
ghost opened this issue Jul 28, 2020 · 7 comments
Open

Linux support #14

ghost opened this issue Jul 28, 2020 · 7 comments

Comments

@ghost
Copy link

ghost commented Jul 28, 2020

Is it possible to build a TIVTC plugin for the Linux version of AviSynth+?
https://avs-plus.net/

@pinterf
Copy link
Owner

pinterf commented Aug 5, 2020

Not yet. Linux based Avisynth+ itself is a very new thing, filter sources and their build environment are - in general - not ready for linux (or even a gcc or clang) build. I myself won't have time or interest for that, volunteers welcomed.

@ghost
Copy link

ghost commented Jan 4, 2021

Thank you very much for porting the TIVTC plugin for my favorite Linux AviSynth+. Everything works, I checked it in Ubuntu 16.04 x86 (with GCC 10). At least mode=7, mode=2, mode=4 (2 pass) work.
Just a couple of clarifications. In the instructions, you need to replace cd TIVTC with cd TIVTC/src
And add the #include <cstdlib> line to the TIVTC/src/TIVTC/Cache.cpp file, i.e. it should look like this:

#include "Cache.h"
#include <memory>
#include <cstdlib>

Otherwise, a compilation error occurs.

By the way, linux vapoursynth cannot load linux avisynth plugins (core.avs.LoadPlugin: No attribute with the name avs exists). But this is a question for the author of vapoursynth...

I recommend everyone to use mode=2, it has higher precision. However, mode=2 uses non-linear frame access (this can cause other problems). So it's best to use two passes: mode=4 (metrics output) and then mode=2. In this case, linear access is used with maximum decimation accuracy.

@ghost
Copy link

ghost commented Jan 4, 2021

Linux mpv can open avisynth scripts with sound.

video = LWLibavVideoSource("input.mkv")
audio = LWLibavAudioSource("input.mkv", cache=false)
AudioDub(video, audio)
TDecimate(cycleR=1, cycle=6)

mpv input.avs

This allows to make fps correction while watching the video.

But most likely, if mpv is built with ffmpeg 4.3.1, which is built with avisynth support (like mine). That is, ffmpeg is responsible for avs decoding. There is no mention of avisynth in configure mpv.

@pinterf
Copy link
Owner

pinterf commented Jan 4, 2021

Thanks, fixed. Plus made some further header replacements, your problem was maybe specific for gcc10? It worked for me.

@ghost
Copy link

ghost commented Jan 4, 2021

your problem was maybe specific for gcc10?

Perhaps. gcc10 is compiled by me in /usr/local, since Ubuntu 16.04 ships with gcc5 (but gcc>=8 is required). And I used LD_LIBRARY_PATH=/usr/local/lib (with export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH). Because the old system libs are used by default. I'm going to check on Debian 10 where the system default is gcc8.

@sl1pkn07
Copy link

sl1pkn07 commented Jan 6, 2021

Hi

thanks for the plugin

can you make Retreive Ranges linux compatible?

RetrieveRanges.cpp:44:10: fatal error: windows.h: No such file or directory
   44 | #include <windows.h>
      |          ^~~~~~~~~~~
compilation terminated.

greetings

@pinterf
Copy link
Owner

pinterf commented Jan 7, 2021

Updated and simple makefile is added. (note: directory name has been fixed)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants