TIVTC icon indicating copy to clipboard operation
TIVTC copied to clipboard

Linux support

Open ghost opened this issue 5 years ago • 7 comments

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

ghost avatar Jul 28 '20 23:07 ghost

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.

pinterf avatar Aug 05 '20 10:08 pinterf

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 avatar Jan 04 '21 05:01 ghost

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.

ghost avatar Jan 04 '21 08:01 ghost

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

pinterf avatar Jan 04 '21 09:01 pinterf

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.

ghost avatar Jan 04 '21 17:01 ghost

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

sl1pkn07 avatar Jan 06 '21 17:01 sl1pkn07

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

pinterf avatar Jan 07 '21 08:01 pinterf