Installing the developer tools (
ipkg install optware-devel) will break the
wget binary. It claims it clashes with
wget-ssl or something. I then stupidly ran
ipkg remove wget, which then prevents you from downloading any packages at all.
Wget is still present, but it's linked to a missing library. Fortunately the solution is here:
http://forum.synology.com/enu/viewtopic ... 40&t=15087Once you copy the
wget binary from the Synology's software back into
/opt/bin it's fine. Then you can re-run
ipkg install optware-devel to get past the point where it failed.
Next we need to run
ipkg install lame because the FFmpeg compile depends on this.
Then using a few examples I saw of compiling on ARM and looking at the options used for the Windows-compiled FFmpeg that Zip included with Serviio I ran this configure command in the folder of the source code I got from the Serviio downloads page.
- Code:
./configure --enable-static --disable-shared --disable-ffplay --disable-ffserver --enable-memalign-hack --enable-libmp3lame --arch=arm --enable-runtime-cpudetect --target-os=linux --enable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-iwmmxt --disable-mmi --disable-neon
I ran
make (slow with loads of warnings but no actual errors), then I ran
make install. Seemed ok.
I've got it built but when I run ffmpeg from the command line it prefers the old one that's already in the path. Because I didn't supply a prefix in the configure options, the newly compiled one is in
/usr/local/bin. If I go there and run
./ffmpeg I get this error:
- Code:
./ffmpeg: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory
I've read that I need to use the command
ldd on the binary to list the dependencies but that's not installed, nor is it on ipkg.
The bzip2 ipkg package is installed, but that library is nowhere on my system.
EDIT - found and compiled libbz2 using the source here:
http://bzip.org/downloads.htmlFrom the readme you'll see you need
make -f Makefile-libbz2_so to build the library. I manually copied it over to
/lib and made the symlink to the filename FFmpeg is looking for.
Now it wants libz.

EDIT 2 - Got that from
http://www.zlib.net/Run
./configure, then
make. Don't bother installing it, it won't be detected. Manually copy the binary to /lib and create the symlinks to match what it made in the compilation folder.
And then... HOLY FRICKING COW! I DID IT!
FFmpeg version UNKNOWN, Copyright (c) 2000-2011 the FFmpeg developers
built on Feb 5 2011 01:38:10 with gcc 4.2.3
configuration: --enable-static --disable-shared --disable-shared --disable-ffplay --disable-ffserver --enable-memalign-hack --enable-libmp3lame --arch=arm --enable-runtime-cpudetect --target-os=linux --enable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-iwmmxt --disable-mmi --disable-neon
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 0 / 0.16. 0
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.92. 0 / 52.92. 0
libavdevice 52. 2. 3 / 52. 2. 3
libavfilter 1.72. 0 / 1.72. 0
libswscale 0.12. 0 / 0.12. 0
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
SynologyDS111>