avxsynth is a linux friendly port of avisynth (the sadly dead video editor that you could script). While I know there are other options available, we have a goodly amount of avisynth scripts already that we would like to work with while we transition to a more permanent, better solution. In order to run avxsynth, it says we need FFMS2.
I used the following pages to put this together:
- http://interknighterrant.blogspot.com/2014/03/replace-libav-with-ffmpeg-in-lm16.html
- https://github.com/avxsynth/avxsynth/wiki/System-Setup
- http://forum.doom9.org/showthread.php?p=1643184#post1643184 - Thanks qyot27!
Compilation and Installation
Preperation
First, follow the instructions at http://interknighterrant.blogspot.com/2014/03/replace-libav-with-ffmpeg-in-lm16.html to compile ffmpeg.
mkdir ~/Downloads/avxsynth cd ~/Downloads/avxsynth
Installation: FFMS2
git clone git://github.com/FFMS/ffms2.git cd ./ffms2 ./configure --enable-shared --with-pic make sudo checkinstall --pkgname=ffms2 --pkgversion="2.19.02-git" --backup=no --deldoc=yes --fstrans=no --default cd ../
Installation: avxsynth
git clone git://github.com/avxsynth/avxsynth.git cd avxsynth autoreconf -fiv ./configure --enable-silent-rules --with-pic make sudo checkinstall --pkgname=avxsynth --pkgversion="4.0.01" --backup=no --deldoc=yes --fstrans=no --default cd ../
Final Adjustments
Update libraries listings, just in case.
sudo ldconfig
Testing
cd ~/Videos sudo cp "/usr/share/example-content/Ubuntu_Free_Culture_Showcase/How fast.ogg" ~/Videos/test.ogg sudo chown YOURUSERNAME:YOURUSERNAME test.ogg ffmsindex -t -1 test.ogg
Writing index... done... 100%
FFMS2 success! Now to try avxsynth
rm test.ogg.ffindex printf "a=FFAudioSource(\"test.ogg\")\nv=FFVideoSource(\"test.ogg\")\nAudioDub(v,a)\nConvertToYV12()" >> test.avs ffplay test.avs
ffplay version 2.2.git Copyright (c) 2003-2014 the FFmpeg developers
  built on Mar 26 2014 19:46:03 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --extra-libs=-ldl --enable-gpl --enable-libass --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-x11grab --enable-version3 --enable-postproc --enable-avresample --enable-pic --enable-avisynth
  libavutil      52. 69.100 / 52. 69.100
  libavcodec     55. 54.100 / 55. 54.100
  libavformat    55. 35.101 / 55. 35.101
  libavdevice    55. 11.100 / 55. 11.100
  libavfilter     4.  3.100 /  4.  3.100
  libavresample   1.  2.  0 /  1.  2.  0
  libswscale      2.  5.102 /  2.  5.102
  libswresample   0. 18.100 /  0. 18.100
  libpostproc    52.  3.100 / 52.  3.100
[ogg @ 0xb1520180] Broken file, keyframe not correctly marked.0/0   
[ogg @ 0xb159db60] Broken file, keyframe not correctly marked.0/0   
    Last message repeated 2 times
[avisynth @ 0xb1501980] FFAudioSource: Seeking is severely broken
Input #0, avisynth, from 'test.avs':
  Duration: 00:00:29.28, start: 0.000000, bitrate: 0 kb/s
    Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 1280x720, 18.89 fps, 18.89 tbr, 18.89 tbn, 18.89 tbc
    Stream #0:1: Audio: pcm_f32le, 44100 Hz, 2 channels, flt, 2822 kb/s
    nan A-V:    nan fd=   0 aq=    0KB vq=    0KB sq=    0B f=0/0After a pretty short period of time (it will re-index), it plays fine! avxsynth success! Oddly enough, it won't stop playing after the movie has reached the end... but minor flaw in an otherwise successful process.
Un-install
To remove ffms and avxsynth:
sudo apt-get --purge remove ffms2 avxsynth
End Thoughts
The documentation for avxsynth is lacking in general. The most information that can be found is in that thread I linked to at Doom9's Forum. It has basic functionality of avisynth, a few plugins that have been ported, and a couple of additions. Stability wise, it seems like it has worked pretty stable (once you get it set up correctly). I like that I don't need to pipe the avs script in to ffmpeg or x264 anymore, it just works within the programs.
