Introduction
The tagtraum FFmpeg package is a binary release of some of the libraries released by the FFmpeg™ project. Its purpose is to provide easy access to Windows and macOS binaries and sources for decoding audio via a Maven repository. Thus it serves as an upstream project for Java JNI projects wishing to interface with the native libraries (e.g. FFSampledSP). Codecs with known patent problems are disabled (but can be enabled). However, this obviously is no guarantee. Also, as the focus lies on decoding audio, most encoders are disabled. Note that as of version 1.12.0, mp3 has been enabled as decoder by default.
How to use
To access the native libraries and sources, add something like this to the dependencies section of your pom:
<dependency> <groupId>com.tagtraum</groupId> <artifactId>ffmpeg-x86_64-macos</artifactId> <!-- <artifactId>ffmpeg-aarch64-macos</artifactId> --> <!-- <artifactId>ffmpeg-x86_64-win</artifactId> --> <!-- <artifactId>ffmpeg-i386-win</artifactId> --> <!-- <artifactId>ffmpeg-x86_64-unix</artifactId> --> <version>4.0.11</version> </dependency>
Requirements
Both 32 bit and 64 bit are supported on Windows. aarch64 and x86_64 on macOS 10.8 or later. x86_64 on Linux.
License
FFmpeg Sources
You can find the FFmpeg sources used for this package here.
Configuration
FFmpeg was built with the following configuration:
./configure --enable-static --enable-pic --enable-small --disable-programs --disable-doc --disable-avfilter --disable-postproc --disable-swscale --disable-avdevice --disable-filters --disable-decoder=flash*,truemotion*,tmv,eacmv,eamad,eatgq,eatgv,eatqi,flic,h26*,msmpeg*,mpeg2*,mpeg4*,mpeg_vdpau,mpeg_xvmc,mpegvideo,msvideo*,vp*,aic,amv,asv*,aura,aura2,avr*,c93,clearvideo,cinepak,cljr,cllc,cpia,dirac,hevc,rtp*,srtp,vc1,swf,indeo*,v2*,v3*,v4* --disable-demuxer=h26*,msmpeg*,mpeg2*,mpeg4*,mpeg_vdpau,mpeg_xvmc,mpegvideo,vp*,aic,amv,asv*,aura,aura2,avr*,c93,clearvideo,cinepak,cljr,cllc,cpia,dirac,hevc,rtp*,srtp,vc1,swf,flic,flv,segafilm,v2*,v3*,v4*,tmv,filmstrip --disable-encoders --enable-encoder=pcm* --disable-parser=h2*,vc1,vp*,dirac,hevc,rv* --disable-protocol=rt*,srt*,gopher,ftp --disable-muxers --disable-indevs --disable-outdevs --disable-iconv --disable-dxva2
To build with a different configuration, please take a look at the developer page.