Log in

View Full Version : AvxSynth: a Linux port of AviSynth


Pages : 1 2 [3] 4 5 6

osgZach
12th May 2012, 21:09
Just wanted to say I hope this project does not die. I would love to see it continue and be successful.
I don't have any meaningful talents to donate to the cause, but I just wanted to show my support for the project.
I completely understand what it is like to have something you believe in, while suffering from a lack of contributors / others who could help.

I would love to fire up a Linux distro one day and use it, when it is in a well-polished "For public consumption" state.

rogerdpack
15th May 2012, 05:53
Maybe it would be nice to make AvxSynth "cross platform" instead of just "linux only" so that devs from both sides could help out, etc.

Or at least wish that AviSynth would move to github :P
-roger-

ps auxw
15th May 2012, 15:16
There was also some vague idea about borrowing some code from Wine to load windows .dll plugins in a Linux version. 90% of Avisynth plugins are pure algorithm code with no system calls, these would be a doddle to host in a Linux address space.
From what I remember, the DLL loading code in mplayer (see the loader/ directory) looked somewhat reusable. It doesn't have a solution for 32/64bit mismatch though.

videophool
22nd May 2012, 16:48
Just wanted to say I hope this project does not die. I would love to see it continue and be successful.
I don't have any meaningful talents to donate to the cause, but I just wanted to show my support for the project.
I completely understand what it is like to have something you believe in, while suffering from a lack of contributors / others who could help.

I would love to fire up a Linux distro one day and use it, when it is in a well-polished "For public consumption" state.

We are still working on it. The current focus is a clean build and install, and fixing the worst bugs. Meanwhile, we would like to see more devs join the project.

digitall.h
28th May 2012, 22:46
Hello everybody, my first post in Doom9's Forum.
I began editing video 10 years ago, and learnt a lot about avisynth and video edition at Kvcd.net as member, and in Doom9 as visitor.
And I switched to a linux environment 6 years ago. I just keep visiting Windows to use natively avisynth.
That's the reason I find it so (:thanks:) interesting the avxsynth project.
I don't have programming skills, I cannot help as a dev. But once you find it ready to test, I will be very pleased to help in testing and improving avxsynth.

I wish you success.

batraxos
29th May 2012, 15:22
Hello everyone...
Awesome job on this project, it was indeed needed.
On my Windows box I ve got Avisynth passing video onto mencoder so I can batch transcode some videos.
My problem when I try the same with Avxsynth on my linux box, is that I only get Video and not Audio.
For some reason, AVXsynthserver only drops video frames on the stdin of mencoder.

Trying to troubleshoot the issue, I realised that axvframeserver , only passes video and not audio on Mplayer also.
My AVS script is a simple

FFVideoSource(pathtomyfile.avi)

If I use FFAudioSource I get only audio and no video.

Any ideas are much apreciated...

qyot27
29th May 2012, 22:11
Hello everyone...
Awesome job on this project, it was indeed needed.
On my Windows box I ve got Avisynth passing video onto mencoder so I can batch transcode some videos.
My problem when I try the same with Avxsynth on my linux box, is that I only get Video and not Audio.
For some reason, AVXsynthserver only drops video frames on the stdin of mencoder.

Trying to troubleshoot the issue, I realised that axvframeserver , only passes video and not audio on Mplayer also.
My AVS script is a simple

FFVideoSource(pathtomyfile.avi)

If I use FFAudioSource I get only audio and no video.

Any ideas are much apreciated...
A) That's how FFMS2 works, regardless of being used under AviSynth 2.5/2.6 or AvxSynth. The video and audio functions are totally separate. The solution is either to use AudioDub to combine them manually or (if AvxSynth doesn't have issues with .avsi files), to use the FFmpegSource2 wrapping function with the atrack= parameter.

B) There was a point where AvxSynth had issues with using AudioDub. I'm not sure if that's been fixed yet.





How easily could avxFrameServer be modified to also output yuv4mpeg streams? That would allow resolution and framerate (and colorspace?) to be preserved when piping to x264 and co. At least for the time being until AvxSynth-specific import is added and piping is no longer needed.

videophool
31st May 2012, 01:37
Hello everyone...
My problem when I try the same with Avxsynth on my linux box, is that I only get Video and not Audio.


Currently, the frame server will deliver audio or video, not both. Video gets priority.

raido
6th June 2012, 02:39
I followed the instructions here (http://code.google.com/p/avxsynth/wiki/SystemSetup) and everything works fine. However, I skipped the kdev setup steps. Were the kdev setup instructions included for debugging/development purposes?

videophool
7th June 2012, 18:52
I followed the instructions here (http://code.google.com/p/avxsynth/wiki/SystemSetup) and everything works fine. However, I skipped the kdev setup steps. Were the kdev setup instructions included for debugging/development purposes?

kdev is necessary if you want to build ant run avxedit, which provides a simple avsedit-like tool to develop and test scripts.

sl1pkn07
7th June 2012, 19:18
not at all. only need Qt libraries. the master configure/make build avxedit without install kdev

videophool
8th June 2012, 17:18
not at all. only need Qt libraries. the master configure/make build avxedit without install kdev

Yes you are right. I was thinking about QT, but the question was about kdev.

sl1pkn07
9th June 2012, 00:34
kdev is painfull and rapefathers/killmothers deprecated method XD

https://github.com/avxsynth/avxsynth/wiki/System-Setup update instrucctions xd

edit: only need libqt4-dev. libqt4-designer and libqt4-gui installed by libqt4-dev dependencies

http://packages.ubuntu.com/precise/libqt4-dev

v___v
11th June 2012, 22:29
hihihi, an acquaintance ported over (albeit more like "hacked over") fft3dfilter and successfully has it working with AvxSynth. Feel free to try it out and report any bugs.

Please note that this has been relatively untested. So your mileage may very.

Said acquaintance would have posted himself—but he just registered and is waiting for the 5 days to pass in order to post.

https://github.com/fundies/fft3dfilter-linux

ParadoxHeart
16th June 2012, 21:00
I knocked up a quick port to AVXSynth of Donald Graft's Decomb package. Includes 64-bit patches from squid_80. Builds on 64-bit linux with both GCC 4.6 and Clang 3.0, and includes assembler optimisations. It hasn't been made ready for building on 32-bit yet, so expect it to do bad things if you try it.

You need cmake and yasm in order to build it, and cmake must be passed the flag "-DCMAKE_ASM_NASM_COMPILER=yasm" in order for it to use yasm to build the assembler files.

Beyond integrating squid_80's patches, the changes largely revolve around the following (and was otherwise pretty painless to port):

1. Ensuring the correct headers are imported.
2. Ensuring the case in header import statements matches the file name.
3. Differences in what MCSV++ and g++ consider acceptable C++.

I've tested it with a YV12 source, but not with a YUY2 source yet.

http://mujintou.org.uk/projects/decomb.zip

sl1pkn07
16th June 2012, 22:00
paradox: this is normal?

[ 12%] Building ASM_NASM object CMakeFiles/decomb.dir/src/asmfuncsYUY2.asm.o
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:31: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:112: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:202: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:231: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:260: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:320: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:371: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:419: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:475: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:523: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:567: warning: (pad:1) trailing garbage after macro name ignored
/home/sl1pkn07/aplicaciones/avxplugins/decomb/src/asmfuncsYUY2.asm:610: warning: (pad:1) trailing garbage after macro name ignored

greetings

ParadoxHeart
17th June 2012, 01:01
Yes, squid_80 has an explanation of what that is about in this post: http://forum.doom9.org/showthread.php?p=728502#post728502

It doesn't appear to stop anything from working.

sl1pkn07
17th June 2012, 23:13
oks. thanks

Stephen R. Savage
18th June 2012, 20:11
Distribution packagers and end-users may be interested to know that AvxSynth now has a proper build procedure using GNU autotools. See https://github.com/avxsynth/avxsynth/wiki/System-Setup for instructions.

Additionally, it is excellent to see that plugins for original AviSynth can be ported and remain functional. Those curious may wish to investigate the modified versions of several popular plugins associated with the now-defunct 64-bit port of AviSynth (if JoshyD ever did upload the source -- perhaps he forgot): http://forum.doom9.org/showthread.php?t=152800

sl1pkn07
25th June 2012, 19:08
is possible run avxsynth in silent mode? without all error/warnings/info messages (of course. without pipe to /dev/null XD)

greetings

qyot27
26th June 2012, 22:07
On the System Setup page on Github, both FFmpeg and FFMS2 have full checkinstall commands. And while the instructions there are geared toward the release tarballs and therefore have simple version numbers to parse, AvxSynth itself is left with a plain sudo make install.

The below is the checkinstall line I've been using for AvxSynth:
sudo checkinstall --pkgname=avxsynth --pkgversion="1:$(grep "Version" avxsynth.pc | \
cut -f2 -d " ")+$(git rev-list HEAD | wc -l)-$(git rev-list HEAD -n 1 | cut -c 1-7)-$(date +%Y%m%d)" \
--backup=no --deldoc=yes --fstrans=no --default
which results in:
$ sudo apt-cache show avxsynth
Package: avxsynth
Status: install ok installed
Priority: extra
Section: checkinstall
Installed-Size: 11356
Architecture: i386
Version: 1:4.0+137-b2eb3c3-20120625-1
Provides: avxsynth
Description: Package created with checkinstall 1.6.2

Adub
26th June 2012, 22:38
Hmm, that's a useful command you got there qyot27. I'll probably steal it once I get my new i7 Ubuntu rig up.

sl1pkn07
26th June 2012, 23:00
@qyot27: ubuntu?

to build package in ubuntu/debian: "dpkg-buildpackage -b" in avxsynt folder.. avxsynth have all to build package without checkinstall

qyot27
27th June 2012, 12:01
I know about the buildpackage support, but I can't be bothered to use it. The only users who should really care about making repository-safe packages are those maintaining a repo, not the casual user that just wants it logged in the package manager.

It still doesn't change the fact that if it were so important to use the 'Debian way' to build the package (which it really isn't, aside from repo maintainers), then it still doesn't explain why it's not given as the final step on the installation page, with make install used instead. And considering said installation page assumes the use of an Ubuntu system (as that's the distro AvxSynth development is targeted to anyway), either packaging method would be valid and superior to a plain make install.

sl1pkn07
27th June 2012, 14:31
is it more difficult:

dpkg-buildpackage
cd ..
sudo dpkg -i libavxsynth* avxedit*

instead of:

autoreconf -i
./configure
make
sudo checkinstall --pkgname=avxsynth --pkgversion="1:$(grep "Version" avxsynth.pc | \
cut -f2 -d " ")+$(git rev-list HEAD | wc -l)-$(git rev-list HEAD -n 1 | cut -c 1-7)-$(date +%Y%m%d)" \
--backup=no --deldoc=yes --fstrans=no --default ?

Use checkinstall instead of make install, because if you use make install, when deleting sources you may need to uninstall 2 method:

Rebuild sources and make uninstall (in the same prefix) or delete files installed one by one.

Using checkinstall (and dpkg-buildpackage) is easier than removing/updating the build using the system package updater. (apt-get, dpkg, packagekit,synaptic, etc)

StainlessS
28th June 2012, 01:33
I like the IDEA of LINUX, and the demise of MS, but really, not gonna happen any time soon.
If only Linux could differentiate between eg a word processor program and some other.
Under Windows, you might have a program called eg Office stuff, under Linux
it will almost certainly be called giraffe or duck billed or whatever..

I hate Windows, and Linux, but not in equal measure.

sl1pkn07
28th June 2012, 01:37
openoffice, libreoffice calligra.....

StainlessS
28th June 2012, 01:46
Can you suggest a solution for those unfortunate giraffe fixated users amongst us.

Guest
28th June 2012, 01:51
Let's stay on topic, guys.

sl1pkn07
28th June 2012, 01:51
oh. sorry (the offtopic). giraffe is a circuit simulator?

ktechlab?

sl1pkn07
28th June 2012, 01:54
okidoki :)

StainlessS
28th June 2012, 02:10
sl1pkn07, Open source?
Maybe like Spice. Nice Spice simulator would be well good.

e1897876
26th July 2012, 16:37
Hello,

Does someone know if it is somehow possible to get the following AviSynth script working with AvxSynth (or which lines will work at least)? The functions (.avsi) used here are attached. I think, the video source could be modified as ffdshow tryouts doesn't exist under Linux.

setmtmode(5,0)
SetMemoryMax(512)
video=ffdshow_source().changefps(ffdshow_source(), linear=true)
A=video
setmtmode(2)
SetMemoryMax(712)
B=a.SPresso_JD()
C=a.SeeSaw_JD(B).LimitedSharpenFaster_JD(strength = 11)
return C
GetMTMode(false) > 0 ? distributor() : last

The other way round would be OK, too: will
- RemoveGrain-1.0
- masktools-v2.0a35
- mvtools-v2.5.11.3
- VariableBlur040
- warpsharppackage_25_dll_20031103
somehow be available with AvxSynth? That would be great!

If that should be a dead end, has someone an idea which combination of ported filters (Built-in-Functions (https://github.com/avxsynth/avxsynth/wiki/Built-in-Functions)) would offer similar functionality?

Thanks for helping and regards.

e1897876
2nd August 2012, 15:32
Really guys, no ideas?

sl1pkn07
2nd August 2012, 15:54
The other way round would be OK, too: will
- RemoveGrain-1.0
- masktools-v2.0a35
- mvtools-v2.5.11.3
- VariableBlur040
- warpsharppackage_25_dll_20031103
somehow be available with AvxSynth? That would be great!


only exist port for Removegrain and masktools, but don't work

to load video use ffmpegsource instead ffdshow (only windows)

all "set" modes don't exist in avxsynth

e1897876
2nd August 2012, 19:30
OK for now, thanks for those hints.

btb
14th October 2012, 08:30
AvxSynth working on OSX, for anyone interested

https://github.com/avxsynth/avxsynth/issues/83

videophool
17th October 2012, 15:43
AvxSynth working on OSX, for anyone interested

https://github.com/avxsynth/avxsynth/issues/83

Excellent contribution. Thanks.

Adub
6th November 2012, 22:59
Hmm, I'm currently doing some research on the innards of AvxSynth, specifically the Cache and InternalCache mechanisms. Is there any documentation anywhere about their internal use for the built in functions? Is the Cache used by default throughout the full filter chain, or is it a more pick and choose situation per filter?

For context, I'm going to start work on porting some of the built in functions to CUDA (specifically the ones with disabled MMX and SSE) for some academic research, and if I can modify the internal cache in such a way so that I can keep the frame data on the GPU as long as possible, the greatest performance gains will be achieved. Otherwise if we are sending the frames back and forth across the bus, we lose a lot of speed due to the extra transmission overhead.

mandarinka
7th November 2012, 02:09
If you care about unix environments, Vapoursynth is probably much more viable project to contribute to: http://forum.doom9.org/showthread.php?t=165771

TheFluff
7th November 2012, 14:08
What mandarinka said. The Avisynth internal caching is an incredible mess.

george84
10th November 2012, 18:36
I have ubuntu 12.04 with all the newest updates up to today.

I followed the instructions in https://github.com/avxsynth/avxsynth/wiki/System-Setup but encountered an error.

In ffmpeg
sudo checkinstall....

I get an error (last lines)

dpkg: warning: downgrading ffmpeg from 4:0.8.3-0ubuntu0.12.04.1 to 0.11.1-1.
(Reading database ... 244393 files and directories currently installed.)
Preparing to replace ffmpeg 4:0.8.3-0ubuntu0.12.04.1 (using .../ffmpeg_0.11.1-1_i386.deb) ...
Unpacking replacement ffmpeg ...
dpkg: dependency problems prevent configuration of ffmpeg:
libav-tools (4:0.8.3-0ubuntu0.12.04.1) breaks ffmpeg (<< 4:0.8~) and is installed.
Version of ffmpeg to be configured is 0.11.1-1.
dpkg: error processing ffmpeg (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
ffmpeg
~
~
~
~
~
~
~
~

This seems to be a version conflict.

Another minor docu problem:

In AVXSynth Build step 2, one should mention that directory has to be changed before this step.

Still I was able to successfully execute the final version test.

qyot27
10th November 2012, 22:32
It's just the Debian epoch in the checkinstall step. Add a 5: (or 7: for Quantal users, but you could just go with 7: for Precise, the only thing that matters is that the number is higher than the one used for the stuff in the official repositories) to the beginning of it so it won't conflict with the system packages. This is also required of using ffmpeg from git.

So instead of:
sudo checkinstall --pkgname=ffmpeg --pkgversion="0.11.1" --backup=no --deldoc=yes --fstrans=no --default
it needs to be
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:0.11.1" --backup=no --deldoc=yes --fstrans=no --default

george84
12th November 2012, 13:13
Thank you. That worked.

@xi@g@me
27th January 2013, 20:23
Hi guys,

thank you for porting AviSynth to linux !!!

I downloaded and installed it using the wiki, but it seems I can't use the FFVideoSource() function.

If I run Version() with AVXEdit, it works perfect. But if I run

FFVideoSource(source="video.avi")

(video.avi exists in the current folder), it says "unable to run script", with no additional info.

Is there something I missed ?

Thanks :)

qyot27
27th January 2013, 21:39
That error looks like either you're trying to run the script as a shell script (you don't do that, it wasn't designed that way) or you don't have FFMS2 installed correctly...or at all.

@xi@g@me
27th January 2013, 21:55
Hi qyot27,

I run the script using EVXEdit, not from the shell (in the other case I would have used avxFrameServer).

I also think the error come from ffms2. How can I check it is correctly installed ?

my ubuntu is the 64 bits version. Perhaps I have an incompability with the ffms2 plugin ? (64 vs. 32)

qyot27
28th January 2013, 00:35
The output of:
sudo apt-cache show libffms2-dev

plesken666
28th January 2013, 11:36
Hi

I've just compiled avxsynth on mandriva 2010.2:

1. ffmpeg (0.11 version) as static libraries

./configure --prefix=/root/avxsynth/ffmpeg
make
make install

2. ffms as static libraries

./configure --prefix=/root/avxsynth/ffms PKG_CONFIG_PATH=/root/avxsynth/ffmpeg/lib/pkgconfig
make
make install

3. AVXSynth

./configure --prefix=/usr ffms2_CFLAGS="-I/root/avxsynth/ffms/include" ffms2_LIBS="-L/root/avxsynth/ffms/lib -lffms2" libav_CFLAGS="-I/root/avxsynth/ffmpeg/include" libav_LIBS="-L/root/avxsynth/ffmpeg/lib -lavformat -lavcodec -lavdevice -lavfilter -lavutil -lswresample -lswscale -ldl -lva -ljack -lasound -lSDL -lm -pthread -lbz2 -lz -lrt" CXXFLAGS="-march=i686"
make
checkinstall --type=rpm make install
rpm -ivh /root/rpmbuild/RPMS/i586/avxsynth-4.0-1.i586.rpm

I've run a AVXEdit, and paste:

#src = Version()
src=FFVideoSource(source="/home/plesken/Wideo/DivX/Rezerwat.2007.PL.DVDrip.XviD.avi")
#ShowSMPTE(src)
ConvertToYV12


I've got an error message "Failed processing script from AVXSynth Editor".
What have I been doing wrong?
Is any option for debug?

Plesken

qyot27
28th January 2013, 15:23
You didn't load any video. The documentation on the AvxSynth Github Wiki isn't really clear about this (and gives a bad example because it doesn't flesh this out at all), but AviSynth syntax has an implicit last. You're assigning the video to a variable, rather than letting the implicit last deal with it, but then you don't call the variable, resulting in a script that won't work at all. You either need to:

A) Get rid of the src= assignment entirely, as it's redundant in this case (as is the source=).
B) Call the src variable before calling ConvertToYV12(), which should be unnecessary anyway if you're dealing with MPEG-4 ASP.

src=FFVideoSource("source.ext")
src.ConvertToYV12()
or
src=FFVideoSource("source.ext")
src
ConvertToYV12()
would both work. As would:
FFVideoSource("source.ext")
ConvertToYV12()
or in this case,
FFVideoSource("source.ext")