Xuggler 3.3: "Eliza"
Announcing Xuggler 3.3: Get It Here.
Table of Contents
Summary
Introducing Xuggler 3.3, "Eliza". The focus of Eliza was to upgrade some encoders, fix some bugs, but otherwise keep things stable. It turns out the underlying FFmpeg has had some major changes in it (including API changes) and this reelase is all about keeping up with the Jones.
Eliza contains the very latest x264 and Theora video encoders (by popular demand) as well as some features that make encoding H264 video a little easier (like extradata support).
We also added a few minor features (for example IContainerParameters can now have audio codecs pre-specified before opening a file), but otherwise kept the rest of the codebase stable.
Also this release marks a change for us to return to the LGPL license. Why? Well, read our blog for that, but we believe the community ends up with what they want most -- a totally free way to encode and decode video from Java.
As usual, read on for the details.
Release Notes
Latest x264 Encoder and Theora
The good news is you now have the very latest x264 and Theora encoders. Specifically x264 version 20091019-2245 and Theora 1.1.
The
bad news is that the x264 guys made some significant API changes and default
setting changes, so your old settings may require tweaking (in particular
calls to IStreamCoder#setProperty).
If you're looking for examples of properties to set while encoding H264
see the com.xuggle.xuggler.Converter code where we hard-code the highest quality
lossless single-pass X264 encoding settings. Also, check out the
contents of captive/ffmpeg/csrc/ffpresets to see a variety
of default settings FFmpeg uses when encoding with X264.
Raw Audio
Xuggler 3.3 can now read raw audio data from files. It couldn't really do that easily before.
Warnings
You must uninstall prior versions of Xuggler before installing this version.
This release of Xuggler is backwards compatible with the last release with the following exceptions:
-
As previously mentioned, you may have to change your X264 settings.
Known Issues
Critical
There are no known critical issues in this release.
Major
Users of this version of Xuggler should be aware of the following limitations (which will be addressed in a future Xuggler release):
- MediaWriter does not resample audio. To work around ensure the audio sample rate and channels you ask MediaWriter to encode is the same as what you set up your audio streams with. Tracking issue.
- MediaViewer is experimental and not very robust. It's included only to get feedback, but you should not use it in production environments. Tracking issue.
Minor
There are two bugs in the current version of FFmpeg that may impact you. Both have simple workarounds:
- Issue #92: Doing resize and changing color space from YUV to either BGR24 or ARGB AT THE SAME TIME produces erroneous black pixels. Workaround: do resize operations separately from colorspace conversions.
- Issue #93: YUV to ARGB Converter causes every 2nd line of pixels to be offset by one. Work around: use BGR24 converter.
What's Next?
We will continue to add to Xuggler, but our focus is 100% on internal projects using Xuggler. That means you should not expect to see new release bundles (turns out they take a lot of work), but we will keep the build server running.
Warning: At some point the FFmpeg is going to move to GIT for source control. If you're in the habit of building Xuggler from our tip of tree, you'll want to install GIT. We'll likely be forced to require GIT and SVN to build Xuggler once FFmpeg makes the move. No ETA on this yet, but there is a lot of chatter on the FFmpeg lists about it. By the way, the advantage of this is we should also then be able to auto-integrate the latest libx264 as well.
Build Information
Fine Print
By reading these release notes, you give us permission to scan your brainwaves and look for dark memories we can later awkwardly bring up at parties.
Source Control Versions
Xuggler 3.3.940.FINALHudson Good Build http://build.xuggle.com/job/xuggler_jdk5_stable/50/
- Dynamic Dependencies
* svn://svn.mplayerhq.hu/ffmpeg/trunk : 20334
* svn://svn.ffmpeg.org/mplayer/trunk/libswscale : 29701
* http://xuggle-ffmpeg.googlecode.com/svn/trunk : 825
* http://theyard.googlecode.com/svn/theyard/code/trunk/share/
gnu/cxxtest/cxxtest-3.10.1 : 170
* http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler : 940
* http://xuggle.googlecode.com/svn/trunk/build/java : 899
- Static Dependencies
* http://xuggle-ffmpeg.googlecode.com/svn/trunk/
* libx264: ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
x264-snapshot-20091019-2245.tar.bz2
* libmp3lame: http://downloads.sourceforge.net/lame/lame-398.tar.gz: 3.98
* libspeex: http://downloads.xiph.org/releases/speex/speex-1.2rc1.tar.gz: 1.2 RC1
* libfaac: http://downloads.sourceforge.net/faac/faac-1.28.zip: 1.28
* libogg: http://downloads.xiph.org/releases/ogg/libogg-1.1.3.tar.gz
* libvorbis: http://downloads.xiph.org/releases/vorbis/libvorbis-1.2.0.tar.gz
* libtheora: http://downloads.xiph.org/releases/theora/libtheora-1.1.0.tar.bz2
On Windows, here's what we built our installer with:
* Mingw gcc/g++ 4.2.4: http://www.tdragon.net/recentgcc/
* Msys 1.0.11
* mingw-runtime 3.15.1
* w32api 3.13
* gmake 3.81
* binutils 2.91
* yasm 0.7.2.2153
* Msys Perl 5.6
* Ant 1.7
* Java JDK 1.5
* MSFT C++ Visual Studio 2008
* NullSoft NSIS Installer 2.42
* Subversion 1.5
Integration
