SWFTools Frequently Asked Questions (FAQ)

1.) What's the price of swftools?
SWFTools is free of charge (donations are welcome, though), and is
released under the GPL (http://www.gnu.org/licenses/gpl.html).

2.) Where can I donate?
You can donate via PayPal by clicking on the "donate" button
on http://www.swftools.org/donate.html

3.) How to compile/link swftools on Unix/Linux/BSD?
Download swftools-0.x.x.tar.gz. Then type, on the

tar -zvxf swftools-0.x.x.tar
cd swftools-0.x.x
make install

(you will have to be root for the last step)

4.) What libraries do I need to compile swftools on Unix/Linux/BSD?
You need freetype and jpeglib to compile pdf2swf.

5.) when compiling the sourcecode version, configure doesn't find my jpeglib!
In case some of your libraries/include files are installed in /usr/local,
try the following:

rm -f config.cache
LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include" ./configure

Furthermore, a new installation of jpeglib (the following assumes it's in
/usr/local/lib) often requires doing a

ranlib /usr/local/lib/libjpeg.a
ldconfig /usr/local/lib

In order to install jpeglib, it's furthermore been remarked that you need
to do
make install-lib
make install-headers

If it still doesn't work, try removing the file "config.cache"
before running configure again.

6.) There are problems during compilation:
Error messages complain about "undefined reference to operator new(unsigned)"
as well as "undefined reference to __gxx_personality_v0".
Try running configure as

LDFLAGS=-lstdc++ ./configure

7.) How do I compile swftools on Mac OS X?
You need to get fink (http://fink.sourceforge.net), and install it.
After this, you need to install all the required libs (jpeg, freetype, lame):

fink install libjpeg libjpeg-shlibs freetype2 freetype2-shlibs lame lame-shlibs

Then, you have to inform configure of where they are:

LDFLAGS="-L/sw/lib" CPPFLAGS="-I/sw/include -I/sw/include/lame" ./configure
sudo make install

If this doesn't work, especially if you want to use the python library and
get weird exceptions, try to remove all versions of jpeglib, freetype and
lame from /usr/lib and /usr/local/lib, and then run configure / make / make install

If you also want to use the python interface, you may have to copy the
Imaging headers (Imaging.h, ImPlatform.h, ImConfig.h) to
before running configure.

8.) Is there a pdf2swf/avi2swf for Windows?
Windows versions of all SWF utilities are downloadable from
(There's a self-extracting .exe version of all versions since 0.6.1,
and a .zip or .rar archive of the newest development snapshot)

9.) Where's the source code of the Windows version?
It's the same as the Unix source code. If you want to compile
under Windows, it's recommended that you get the CVS version
of the sources.
You need MingW (http://www.mingw.org) to compile it.
When cross-compiling under Linux, e.g. the following generates the Windows .exe files:

CXX=i386-mingw32msvc-g++ CPP=i386-mingw32msvc-cpp CC=i386-mingw32msvc-gcc \
./configure --host=i586-mingw32msvc && make

For compiling on Windows itself, there's a HOWTO from Daichi Shinozaki:

10.) The fonts in the SWFs generated by pdf2swf are wrong!
Watch the output of pdf2swf closely.
You should see something like:

WARNING Font Myriad-Roman could not be loaded.
WARNING Try putting a TTF version of that font (named "Myriad-Roman.ttf") into /swftools/fonts

Provided you actually own the font in question (here: Myriad-Roman.ttf),
you can copy that fonts into your current directory and pass
the "-F ./" (--fontpath ./) option to pdf2swf.
If you use a font in several PDFs, you can also simply copy it
to (on Windows) C:\SWFTools\Fonts\, or (on Unix) /usr/local/share/swftools/fonts
to make it work all the time.

11.) Can png2swf handle transparency?
Yes. It supports PNG mode 2 transparency (256 color palettes with alpha) since version 0.4.2.
Mode 6 (32 bit RGBA truecolor) is also supported since version 0.4.4.

12.) How to do Flash MX compression with SWFTools?
Most tools support the -z flag for outputting compressed SWF.
Furthermore you can compress/uncompress SWF files using swfcombine:

swfcombine -dz file.swf -o file_new.swf

compresses, while

swfcombine -d file.swf -o file_new.swf


13.) avi2swf converts my avi files upside down!
Try using the -p (--flip) switch.

14.) How to extract images/sounds from myfile.swf using swfextract?
First list all extractable items:

swfextract myfile.swf

The result is something like:

Objects in file myfile.swf:
[-i] 3 Shapes: ID(s) 1-3
[-i] 5 MovieClips: ID(s) 4, 5, 8, 10, 12
[-j] 3 JPEGs: ID(s) 69, 116, 447
[-p] 1 PNG: ID(s) 318
[-s] 3 Sounds: ID(s) 28-30
[-f] 10 Frames: ID(s) 0-10

Now you can extract a shape using

swfextract -i 2 myfile.swf -o shape.swf

a sound using

swfextract -s 28 myfile.swf -o sound.wav

a PNG image file using

swfextract -p 318 myfile.swf -o file.png


15.) Is there a mailing list for SWFTools?
Yes there is. You can subscribe by going to


16.) Why didn't Matthias answer my swftools-related mail?
Currently, Matthias is getting much more mails than he can answer. It's frustrating,
but it's true.
He tries his best to at least *read* all mails he receives.
If you need an answer to something, it's usually more effective to post it on the
mailing list, though, as there are a lot of friendly users around there which may
have the one or other helpful tip concerning your problem.

16.) When will feature/bugfix/enhancement XY be implemented?
Setting deadlines in a non-commercial, spare-time project like swftools tools is hard,
and keeping them is even harder, if not impossible.

Therefore, do not ask about deadlines, and you won't get fuzzy, or even wrong, answers.

17.) How to compile avi2swf?
avi2swf isn't part of the swftools distribution anymore. If you want to convert avi files
to swf, please use either mencoder or ffmpeg:

mencoder file.avi -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames \
-ffourcc FLV1 -oac mp3lame -of lavf -ovc lavc \
-lavcopts vcodec=flv:acodec=mp3:vbitrate=500:abitrate=56 -srate 22050 \
-o file.swf


ffmpeg -i video.mpg -b -s y -pass 1 -passlogfile log_file video.flv
ffmpeg -i video.mpg -b -s y -pass 2 -passlogfile log_file video.flv
flvtool2 -UP video.flv

18.) How can I create transparent SWFs from PDFs?
Run pdf2swf as usual, and then, on the resulting file, execute:

swfextract -i 3- file.swf -o file.swf

19.) How can I convert SWF frames to bitmap?
There's a "swfrender" utility in the CVS, which isn't finished yet,
and will only work for *very* simple SWF files. (No Actionscript, no
gradient fills, no morph shapes, no blending modes, no filters, etc.)
Probably other Flash Open-Source projects (like Gnash) have some
more sophisticated utilities for this. (One user reported that
swfdec (http://swfdec.freedesktop.org/wiki/) and pyswfdec
(http://www.gnome.org/~gianmt) work good)
If you find other tools that work, I'd like to know about it.
Please mail me at kramm@quiss.org.