Wednesday, March 26, 2014

Install ffms 2.19.02 and avxsynth onto Ubuntu 12.04

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:

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/0

After 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.

No comments:

Post a Comment